Go to the documentation of this file.
10 #ifndef vtk_m_cont_CellSetExtrude_h
11 #define vtk_m_cont_CellSetExtrude_h
30 template <
typename VisitTopology,
typename Inc
identTopology>
31 struct CellSetExtrudeConnectivityChooser;
34 struct CellSetExtrudeConnectivityChooser<
vtkm::TopologyElementTagCell,
41 struct CellSetExtrudeConnectivityChooser<
vtkm::TopologyElementTagPoint,
77 vtkm::Id GetNumberOfCells()
const override;
79 vtkm::Id GetNumberOfPoints()
const override;
81 vtkm::Id GetNumberOfFaces()
const override;
83 vtkm::Id GetNumberOfEdges()
const override;
93 std::shared_ptr<CellSet> NewInstance()
const override;
94 void DeepCopy(
const CellSet* src)
override;
96 void PrintSummary(std::ostream& out)
const override;
97 void ReleaseResourcesExecution()
override;
101 return this->Connectivity;
110 template <vtkm::IdComponent NumIndices>
115 template <
typename VisitTopology,
typename Inc
identTopology>
116 using ExecConnectivityType =
117 typename detail::CellSetExtrudeConnectivityChooser<VisitTopology,
131 void BuildReverseConnectivity();
148 template <
typename T>
152 bool periodic =
true)
159 template <
typename T>
162 const std::vector<vtkm::Int32>& nextNode,
163 bool periodic =
true)
172 template <
typename T>
175 std::vector<vtkm::Int32>&& nextNode,
176 bool periodic =
true)
197 struct SerializableTypeString<
vtkm::cont::CellSetExtrude>
201 static std::string name =
"CS_Extrude";
212 struct Serialization<
vtkm::cont::CellSetExtrude>
218 static VTKM_CONT void save(BinaryBuffer& bb,
const Type& cs)
220 vtkmdiy::save(bb, cs.GetNumberOfPointsPerPlane());
221 vtkmdiy::save(bb, cs.GetNumberOfPlanes());
222 vtkmdiy::save(bb, cs.GetIsPeriodic());
223 vtkmdiy::save(bb, cs.GetConnectivityArray());
224 vtkmdiy::save(bb, cs.GetNextNodeArray());
241 cs = Type{ conn, numberOfPointsPerPlane, numberOfPlanes, nextNode, isPeriodic };
248 #endif // vtk_m_cont_CellSetExtrude.h
A tag used to identify the point elements in a topology.
Definition: TopologyElementTag.h:34
Definition: ConnectivityExtrude.h:95
T load(const U &u, vtkm::Id v)
Definition: FetchTagArrayDirectIn.h:36
Groups connected points that have the same field value.
Definition: Atomic.h:19
auto Get(const vtkm::Tuple< Ts... > &tuple)
Retrieve the object from a vtkm::Tuple at the given index.
Definition: Tuple.h:81
vtkm::Int32 IdComponent
Base type to use to index small lists.
Definition: Types.h:194
vtkm::Int32 NumberOfPlanes
Definition: CellSetExtrude.h:137
vtkm::cont::ArrayHandle< vtkm::Int32 > RConnectivity
Definition: CellSetExtrude.h:142
vtkm::cont::ArrayHandleBasic< T > make_ArrayHandleMove(T *&array, vtkm::Id numberOfValues, vtkm::cont::internal::BufferInfo::Deleter deleter=internal::SimpleArrayDeleter< T >, vtkm::cont::internal::BufferInfo::Reallocater reallocater=internal::SimpleArrayReallocater< T >)
A convenience function to move a user-allocated array into an ArrayHandle.
Definition: ArrayHandleBasic.h:294
vtkm::Id GetNumberOfPointsPerPlane() const
Definition: ArrayHandleXGCCoordinates.h:336
Defines a 3-dimensional extruded mesh representation.
Definition: CellSetExtrude.h:56
Definition: Particle.h:351
bool IsPeriodic
Definition: CellSetExtrude.h:133
vtkm::cont::ArrayHandle< vtkm::Int32 > RCounts
Definition: CellSetExtrude.h:144
A token to hold the scope of an ArrayHandle or other object.
Definition: Token.h:35
vtkm::cont::ArrayHandle< vtkm::Int32 > ROffsets
Definition: CellSetExtrude.h:143
const vtkm::cont::ArrayHandle< vtkm::Int32 > & GetNextNodeArray() const
Definition: CellSetExtrude.h:106
vtkm::Id GetNumberOfPlanes() const
Definition: ArrayHandleXGCCoordinates.h:316
#define VTKM_CONT_EXPORT
Definition: vtkm_cont_export.h:44
vtkm::Int32 GetNumberOfPointsPerPlane() const
Definition: CellSetExtrude.h:104
#define VTKM_CONT
Definition: ExportMacros.h:57
bool GetIsPeriodic() const
Definition: CellSetExtrude.h:108
vtkm::Int64 Id
Base type to use to index arrays.
Definition: Types.h:227
Defines the topological structure of the data in a DataSet.
Definition: CellSet.h:28
Definition: ConnectivityExtrude.h:26
uint8_t UInt8
Base type to use for 8-bit unsigned integer numbers.
Definition: Types.h:169
bool ReverseConnectivityBuilt
Definition: CellSetExtrude.h:141
vtkm::Int32 NumberOfCellsPerPlane
Definition: CellSetExtrude.h:136
An object used to specify a device.
Definition: DeviceAdapterTag.h:58
Definition: ArrayHandleXGCCoordinates.h:288
vtkm::cont::ArrayHandle< vtkm::Int32 > Connectivity
Definition: CellSetExtrude.h:138
int32_t Int32
Base type to use for 32-bit signed integer numbers.
Definition: Types.h:181
CellSetExtrude make_CellSetExtrude(const vtkm::cont::ArrayHandle< vtkm::Int32 > &conn, const vtkm::cont::ArrayHandleXGCCoordinates< T > &coords, const vtkm::cont::ArrayHandle< vtkm::Int32 > &nextNode, bool periodic=true)
Definition: CellSetExtrude.h:149
const vtkm::cont::ArrayHandle< vtkm::Int32 > & GetConnectivityArray() const
Definition: CellSetExtrude.h:99
A tag used to identify the cell elements in a topology.
Definition: TopologyElementTag.h:24
vtkm::cont::ArrayHandleBasic< T > make_ArrayHandle(const T *array, vtkm::Id numberOfValues, vtkm::CopyFlag copy)
A convenience function for creating an ArrayHandle from a standard C array.
Definition: ArrayHandleBasic.h:270
typename detail::CellSetExtrudeConnectivityChooser< VisitTopology, IncidentTopology >::ExecConnectivityType ExecConnectivityType
Definition: CellSetExtrude.h:118
vtkm::cont::ArrayHandle< vtkm::Int32 > PrevNode
Definition: CellSetExtrude.h:145
vtkm::Int32 NumberOfPointsPerPlane
Definition: CellSetExtrude.h:135
vtkm::cont::ArrayHandle< vtkm::Int32 > NextNode
Definition: CellSetExtrude.h:139