Go to the documentation of this file.
12 #ifndef vtk_m_worklet_contour_flyingedges_h
13 #define vtk_m_worklet_contour_flyingedges_h
28 namespace flying_edges
33 template <
typename T,
typename S>
43 template <
typename ValueType,
44 typename StorageTagField,
45 typename StorageTagVertices,
46 typename StorageTagNormals,
47 typename CoordinateType,
52 const std::vector<ValueType>& isovalues,
64 origin = portal.GetOrigin();
65 spacing = portal.GetSpacing();
78 auto metaDataSums = vtkm::cont::make_ArrayHandleGroupVec<3>(metaDataLinearSums);
88 for (std::size_t i = 0; i < isovalues.size(); ++i)
92 ValueType isoval = isovalues[i];
147 detail::extend_by(triangle_topology, 3 * sumTris);
148 detail::extend_by(sharedState.
CellIdMap, sumTris);
162 pdims, origin, spacing, multiContourCellOffset, multiContourPointOffset);
164 detail::extend_by(points, newPointSize);
167 detail::extend_by(normals, newPointSize);
#define VTKM_LOG_SCOPE(level,...)
Definition: Logging.h:265
VTKM_CONT vtkm::Id GetNumberOfValues() const
Returns the number of entries in the array.
Definition: ArrayHandle.h:448
Groups connected points that have the same field value.
Definition: Atomic.h:19
VTKM_CONT void Allocate(vtkm::Id numberOfValues, vtkm::CopyFlag preserve, vtkm::cont::Token &token) const
Allocates an array large enough to hold the given number of values.
Definition: ArrayHandle.h:465
vtkm::cont::ArrayHandle< vtkm::FloatDefault > InterpolationWeights
Definition: CommonState.h:33
Definition: FlyingEdgesPass4.h:28
bool GenerateNormals
Definition: CommonState.h:32
Definition: CastAndCall.h:34
VTKM_CONT T ArrayGetValue(vtkm::Id id, const vtkm::cont::ArrayHandle< T, S > &data)
Obtain a small set of values from an ArrayHandle with minimal device transfers.
Definition: ArrayGetValues.h:264
Definition: FlyingEdgesPass1.h:148
vtkm::cont::CellSetSingleType execute(const vtkm::cont::CellSetStructured< 3 > &cells, const vtkm::cont::ArrayHandleUniformPointCoordinates &coordinateSystem, const std::vector< ValueType > &isovalues, const vtkm::cont::ArrayHandle< ValueType, StorageTagField > &inputField, vtkm::cont::ArrayHandle< vtkm::Vec< CoordinateType, 3 >, StorageTagVertices > &points, vtkm::cont::ArrayHandle< vtkm::Vec< NormalType, 3 >, StorageTagNormals > &normals, vtkm::worklet::contour::CommonState &sharedState)
Definition: FlyingEdges.h:49
vtkm::Int32 Id
Represents an ID (index into arrays).
Definition: Types.h:191
VTKM_CONT bool TryExecuteOnDevice(vtkm::cont::DeviceAdapterId devId, Functor &&functor)
Try to execute a functor on a specific device selected at runtime.
Definition: TryExecute.h:178
static VTKM_CONT T ScanExclusive(vtkm::cont::DeviceAdapterId devId, const vtkm::cont::ArrayHandle< T, CIn > &input, vtkm::cont::ArrayHandle< T, COut > &output)
Definition: Algorithm.h:816
Definition: CommonState.h:24
Allows launching any worklet without a dispatcher.
Definition: Invoker.h:41
@ CELL_SHAPE_TRIANGLE
Definition: CellShape.h:41
Definition: FlyingEdgesPass2.h:26
SchedulingRangeType GetPointDimensions() const
Definition: CellSetStructured.h:64
A short fixed-length array.
Definition: Types.h:767
vtkm::cont::ArrayHandle< vtkm::Id > CellIdMap
Definition: CommonState.h:35
VTKM_CONT ReadPortalType ReadPortal() const
Get an array portal that can be used in the control environment.
Definition: ArrayHandle.h:414
static VTKM_CONT void ScanExtended(vtkm::cont::DeviceAdapterId devId, const vtkm::cont::ArrayHandle< T, CIn > &input, vtkm::cont::ArrayHandle< T, COut > &output)
Definition: Algorithm.h:901
vtkm::cont::DeviceAdapterId GetDevice() const
Get the device adapter that this Invoker is bound too.
Definition: Invoker.h:123
VTKM_CONT void Fill(vtkm::Id numPoints, vtkm::UInt8 shapeId, vtkm::IdComponent numberOfPointsPerCell, const vtkm::cont::ArrayHandle< vtkm::Id, ConnectivityStorageTag > &connectivity)
Definition: CellSetSingleType.h:186
vtkm::cont::ArrayHandle< vtkm::Id2 > InterpolationEdgeIds
Definition: CommonState.h:34
Definition: FlyingEdgesPass1.h:70
VTKM_CONT void ReleaseResources() const
Releases all resources in both the control and execution environments.
Definition: ArrayHandle.h:559
@ Perf
General timing data and algorithm flow information, such as filter execution, worklet dispatches,...