Go to the documentation of this file.
10 #ifndef vtk_m_cont_CellSetStructured_h
11 #define vtk_m_cont_CellSetStructured_h
13 #include <vtkm/cont/vtkm_cont_export.h>
26 template <vtkm::IdComponent DIMENSION>
31 using InternalsType = vtkm::internal::ConnectivityStructuredInternals<DIMENSION>;
51 this->Structure.SetPointDimensions(dimensions);
56 this->Structure.SetGlobalPointDimensions(dimensions);
61 this->Structure.SetGlobalPointIndexStart(start);
68 return this->Structure.GetGlobalPointDimensions();
75 return this->Structure.GetGlobalCellDimensions();
80 return this->Structure.GetGlobalPointIndexStart();
85 return this->Structure.GetNumberOfPointsInCell();
90 return static_cast<vtkm::UInt8>(this->Structure.GetCellShape());
95 auto asVec = this->Structure.GetPointsOfCell(
id);
104 return std::make_shared<CellSetStructured>();
115 this->Structure = other->Structure;
118 template <
typename TopologyElement>
122 return this->Structure.GetSchedulingRange(TopologyElement());
125 template <
typename VisitTopology,
typename Inc
identTopology>
126 using ExecConnectivityType =
129 template <
typename VisitTopology,
typename Inc
identTopology>
140 out <<
" StructuredCellSet:\n";
141 this->Structure.PrintSummary(out);
153 , Structure(src.Structure)
165 , Structure(std::move(src.Structure))
171 this->Structure = std::move(src.Structure);
179 #ifndef vtkm_cont_CellSetStructured_cxx
195 template <vtkm::IdComponent DIMENSION>
196 struct SerializableTypeString<vtkm::cont::CellSetStructured<DIMENSION>>
200 static std::string name =
"CS_Structured<" + std::to_string(DIMENSION) +
">";
210 template <vtkm::IdComponent DIMENSION>
211 struct Serialization<
vtkm::cont::CellSetStructured<DIMENSION>>
217 static VTKM_CONT void save(BinaryBuffer& bb,
const Type& cs)
219 vtkmdiy::save(bb, cs.GetPointDimensions());
220 vtkmdiy::save(bb, cs.GetGlobalPointDimensions());
221 vtkmdiy::save(bb, cs.GetGlobalPointIndexStart());
226 typename Type::SchedulingRangeType dims, gdims, start;
232 cs.SetPointDimensions(dims);
233 cs.SetGlobalPointDimensions(gdims);
234 cs.SetGlobalPointIndexStart(start);
241 #endif //vtk_m_cont_CellSetStructured_h
vtkm::IdComponent GetNumberOfPointsInCell(vtkm::Id vtkmNotUsed(cellIndex)=0) const override
Definition: CellSetStructured.h:83
void PrintSummary(std::ostream &out) const override
Definition: CellSetStructured.h:138
CellSetStructured(const CellSetStructured &src)
Definition: CellSetStructured.h:151
vtkm::Id GetNumberOfCells() const override
Definition: CellSetStructured.h:38
Groups connected points that have the same field value.
Definition: Atomic.h:19
InternalsType Structure
Definition: CellSetStructured.h:176
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Get(const vtkm::Tuple< Ts... > &tuple) -> decltype(tuple.template Get< Index >())
Retrieve the object from a vtkm::Tuple at the given index.
Definition: Tuple.h:83
vtkm::Int32 IdComponent
Represents a component ID (index of component in a vector).
Definition: Types.h:168
Definition: CastAndCall.h:32
vtkm::Id GetNumberOfFaces() const override
Definition: CellSetStructured.h:42
std::shared_ptr< CellSet > NewInstance() const override
Definition: CellSetStructured.h:102
CellSetStructured(CellSetStructured &&src) noexcept
Definition: CellSetStructured.h:163
#define VTKM_IS_TOPOLOGY_ELEMENT_TAG(type)
Definition: TopologyElementTag.h:92
This class is thrown when VTK-m encounters data of a type that is incompatible with the current opera...
Definition: ErrorBadType.h:25
void DeepCopy(const CellSet *src) override
Definition: CellSetStructured.h:107
Definition: Particle.h:331
vtkm::Int32 Id
Represents an ID (index into arrays).
Definition: Types.h:191
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC T load(const U &u, vtkm::Id v)
Definition: FetchTagArrayDirectIn.h:36
CellSetStructured & operator=(const CellSetStructured &src)
Definition: CellSetStructured.h:157
vtkm::Id GetNumberOfEdges() const override
Definition: CellSetStructured.h:44
A token to hold the scope of an ArrayHandle or other object.
Definition: Token.h:35
vtkm::Id GetNumberOfPoints() const override
Definition: CellSetStructured.h:40
vtkm::UInt8 GetCellShape(vtkm::Id vtkmNotUsed(cellIndex)=0) const override
Definition: CellSetStructured.h:88
vtkm::internal::ConnectivityStructuredInternals< DIMENSION > InternalsType
Definition: CellSetStructured.h:31
SchedulingRangeType GetSchedulingRange(TopologyElement) const
Definition: CellSetStructured.h:119
#define VTKM_CONT
Definition: ExportMacros.h:57
typename InternalsType::SchedulingRangeType SchedulingRangeType
Definition: CellSetStructured.h:36
uint8_t UInt8
Definition: Types.h:157
#define vtkmNotUsed(parameter_name)
Simple macro to identify a parameter as unused.
Definition: ExportMacros.h:128
void GetCellPointIds(vtkm::Id id, vtkm::Id *ptids) const override
Definition: CellSetStructured.h:93
Definition: ConnectivityStructured.h:24
Definition: DeviceAdapterTag.h:52
SchedulingRangeType GetPointDimensions() const
Definition: CellSetStructured.h:64
void SetPointDimensions(SchedulingRangeType dimensions)
Definition: CellSetStructured.h:49
SchedulingRangeType GetGlobalCellDimensions() const
Definition: CellSetStructured.h:73
SchedulingRangeType GetCellDimensions() const
Definition: CellSetStructured.h:71
void SetGlobalPointDimensions(SchedulingRangeType dimensions)
Definition: CellSetStructured.h:54
void ReleaseResourcesExecution() override
Definition: CellSetStructured.h:47
ExecConnectivityType< VisitTopology, IncidentTopology > PrepareForInput(vtkm::cont::DeviceAdapterId, VisitTopology, IncidentTopology, vtkm::cont::Token &) const
Definition: CellSetStructured.h:130
CellSetStructured & operator=(CellSetStructured &&src) noexcept
Definition: CellSetStructured.h:169
#define VTKM_ALWAYS_EXPORT
Definition: ExportMacros.h:92
void SetGlobalPointIndexStart(SchedulingRangeType start)
Definition: CellSetStructured.h:59
SchedulingRangeType GetGlobalPointIndexStart() const
Definition: CellSetStructured.h:78
SchedulingRangeType GetGlobalPointDimensions() const
Definition: CellSetStructured.h:66
~CellSetStructured() override
Definition: CellSetStructured.h:147