Go to the documentation of this file.
18 #ifndef viskores_cont_CellSetExtrude_h
19 #define viskores_cont_CellSetExtrude_h
38 template <
typename VisitTopology,
typename Inc
identTopology>
39 struct CellSetExtrudeConnectivityChooser;
42 struct CellSetExtrudeConnectivityChooser<
viskores::TopologyElementTagCell,
49 struct CellSetExtrudeConnectivityChooser<
viskores::TopologyElementTagPoint,
101 std::shared_ptr<CellSet> NewInstance()
const override;
102 void DeepCopy(
const CellSet* src)
override;
104 void PrintSummary(std::ostream& out)
const override;
105 void ReleaseResourcesExecution()
override;
109 return this->Connectivity;
116 return this->NextNode;
121 template <viskores::IdComponent NumIndices>
128 template <
typename VisitTopology,
typename Inc
identTopology>
129 using ExecConnectivityType =
130 typename detail::CellSetExtrudeConnectivityChooser<VisitTopology,
144 void BuildReverseConnectivity();
161 template <
typename T>
165 bool periodic =
true)
172 template <
typename T>
175 const std::vector<viskores::Int32>& nextNode,
176 bool periodic =
true)
185 template <
typename T>
188 std::vector<viskores::Int32>&& nextNode,
189 bool periodic =
true)
210 struct SerializableTypeString<
viskores::cont::CellSetExtrude>
214 static std::string name =
"CS_Extrude";
225 struct Serialization<
viskores::cont::CellSetExtrude>
231 static VISKORES_CONT void save(BinaryBuffer& bb,
const Type& cs)
233 viskoresdiy::save(bb, cs.GetNumberOfPointsPerPlane());
234 viskoresdiy::save(bb, cs.GetNumberOfPlanes());
235 viskoresdiy::save(bb, cs.GetIsPeriodic());
236 viskoresdiy::save(bb, cs.GetConnectivityArray());
237 viskoresdiy::save(bb, cs.GetNextNodeArray());
254 cs = Type{ conn, numberOfPointsPerPlane, numberOfPlanes, nextNode, isPeriodic };
261 #endif // viskores_cont_CellSetExtrude.h
T load(const U &u, viskores::Id v)
Definition: FetchTagArrayDirectIn.h:44
viskores::cont::ArrayHandle< viskores::Int32 > NextNode
Definition: CellSetExtrude.h:152
Definition: ConnectivityExtrude.h:34
A tag used to identify the cell elements in a topology.
Definition: TopologyElementTag.h:32
viskores::Int32 NumberOfPlanes
Definition: CellSetExtrude.h:150
CellSetExtrude make_CellSetExtrude(const viskores::cont::ArrayHandle< viskores::Int32 > &conn, const viskores::cont::ArrayHandleXGCCoordinates< T > &coords, const viskores::cont::ArrayHandle< viskores::Int32 > &nextNode, bool periodic=true)
Definition: CellSetExtrude.h:162
viskores::Int32 NumberOfPointsPerPlane
Definition: CellSetExtrude.h:148
bool GetIsPeriodic() const
Definition: CellSetExtrude.h:119
viskores::Int32 IdComponent
Base type to use to index small lists.
Definition: Types.h:202
viskores::cont::ArrayHandleBasic< T > make_ArrayHandleMove(T *&array, viskores::Id numberOfValues, viskores::cont::internal::BufferInfo::Deleter deleter=internal::SimpleArrayDeleter< T >, viskores::cont::internal::BufferInfo::Reallocater reallocater=internal::SimpleArrayReallocater< T >)
A convenience function to move a user-allocated array into an ArrayHandle.
Definition: ArrayHandleBasic.h:310
Definition: Particle.h:373
A tag used to identify the point elements in a topology.
Definition: TopologyElementTag.h:42
Definition: ConnectivityExtrude.h:104
viskores::Int64 Id
Base type to use to index arrays.
Definition: Types.h:235
viskores::cont::ArrayHandle< viskores::Int32 > ROffsets
Definition: CellSetExtrude.h:156
const viskores::cont::ArrayHandle< viskores::Int32 > & GetNextNodeArray() const
Definition: CellSetExtrude.h:114
#define VISKORES_CONT
Definition: ExportMacros.h:65
const viskores::cont::ArrayHandle< viskores::Int32 > & GetConnectivityArray() const
Definition: CellSetExtrude.h:107
Groups connected points that have the same field value.
Definition: Atomic.h:27
bool ReverseConnectivityBuilt
Definition: CellSetExtrude.h:154
viskores::Id GetNumberOfPointsPerPlane() const
Definition: ArrayHandleXGCCoordinates.h:347
typename detail::CellSetExtrudeConnectivityChooser< VisitTopology, IncidentTopology >::ExecConnectivityType ExecConnectivityType
Definition: CellSetExtrude.h:131
viskores::cont::ArrayHandle< viskores::Int32 > Connectivity
Definition: CellSetExtrude.h:151
bool IsPeriodic
Definition: CellSetExtrude.h:146
viskores::cont::ArrayHandle< viskores::Int32 > RCounts
Definition: CellSetExtrude.h:157
viskores::cont::ArrayHandle< viskores::Int32 > RConnectivity
Definition: CellSetExtrude.h:155
uint8_t UInt8
Base type to use for 8-bit unsigned integer numbers.
Definition: Types.h:177
An object used to specify a device.
Definition: DeviceAdapterTag.h:66
int32_t Int32
Base type to use for 32-bit signed integer numbers.
Definition: Types.h:189
Definition: ArrayHandleXGCCoordinates.h:298
viskores::Int32 GetNumberOfPointsPerPlane() const
Definition: CellSetExtrude.h:112
auto Get(const viskores::Tuple< Ts... > &tuple)
Retrieve the object from a viskores::Tuple at the given index.
Definition: Tuple.h:89
viskores::Int32 NumberOfCellsPerPlane
Definition: CellSetExtrude.h:149
viskores::cont::ArrayHandle< viskores::Int32 > PrevNode
Definition: CellSetExtrude.h:158
viskores::Id GetNumberOfPlanes() const
Definition: ArrayHandleXGCCoordinates.h:327
Defines a 3-dimensional extruded mesh representation.
Definition: CellSetExtrude.h:64
viskores::cont::ArrayHandleBasic< T > make_ArrayHandle(const T *array, viskores::Id numberOfValues, viskores::CopyFlag copy)
A convenience function for creating an ArrayHandle from a standard C array.
Definition: ArrayHandleBasic.h:285
A token to hold the scope of an ArrayHandle or other object.
Definition: Token.h:43
Defines the topological structure of the data in a DataSet.
Definition: CellSet.h:36