20 #ifndef vtkmCellSetExplicit_h 21 #define vtkmCellSetExplicit_h 23 #ifndef VTK_WRAPPING_CXX 27 #include <vtkm/CellShape.h> 28 #include <vtkm/TopologyElementTag.h> 29 #include <vtkm/cont/ArrayHandle.h> 30 #include <vtkm/cont/CellSet.h> 32 #include <vtkm/cont/serial/DeviceAdapterSerial.h> 33 #include <vtkm/cont/cuda/DeviceAdapterCuda.h> 34 #include <vtkm/cont/tbb/DeviceAdapterTBB.h> 45 : CellSet(
name), Shapes(), Connectivity(), IndexOffsets(),
46 ReverseConnectivityBuilt(false),RConn(), RNumIndices(), RIndexOffsets(),
57 this->CellSet::operator=(src);
58 this->Shapes = src.Shapes;
59 this->Connectivity = src.Connectivity;
60 this->IndexOffsets = src.IndexOffsets;
61 this->ReverseConnectivityBuilt = src.ReverseConnectivityBuilt;
62 this->RConn = src.RConn;
63 this->RNumIndices = src.RNumIndices;
64 this->RIndexOffsets = src.RIndexOffsets;
65 this->NumberOfPoints = src.NumberOfPoints;
71 return this->Shapes.GetNumberOfValues();
76 return this->NumberOfPoints;
86 return this->GetNumberOfCells();
91 return this->GetNumberOfPoints();
94 vtkm::IdComponent GetNumberOfPointsInCell(vtkm::Id
index)
const;
96 vtkm::Id GetCellShape(vtkm::Id
index)
const;
101 vtkm::Id numberOfPoints,
102 const vtkm::cont::ArrayHandle<vtkm::UInt8,
104 const vtkm::cont::ArrayHandle<vtkm::Id, tovtkm::vtkCellArrayContainerTag>&
106 const vtkm::cont::ArrayHandle<vtkm::Id, tovtkm::vtkAOSArrayContainerTag>&
109 template <
typename DeviceAdapter,
typename FromTopology,
typename ToTopology>
112 template <
typename DeviceAdapter>
118 template <
typename DeviceAdapter>
124 template <
typename Device>
126 PrepareForInput(Device, vtkm::TopologyElementTagPoint,
127 vtkm::TopologyElementTagCell)
const;
129 template <
typename Device>
131 PrepareForInput(Device, vtkm::TopologyElementTagCell,
132 vtkm::TopologyElementTagPoint)
const;
134 const vtkm::cont::ArrayHandle<vtkm::UInt8, tovtkm::vtkAOSArrayContainerTag>&
136 vtkm::TopologyElementTagCell)
const 141 const vtkm::cont::ArrayHandle<vtkm::Id, tovtkm::vtkCellArrayContainerTag>&
143 vtkm::TopologyElementTagCell)
const 145 return this->Connectivity;
148 const vtkm::cont::ArrayHandle<vtkm::Id, tovtkm::vtkAOSArrayContainerTag>&
150 vtkm::TopologyElementTagCell)
const 152 return this->IndexOffsets;
155 virtual void PrintSummary(std::ostream& out)
const;
158 vtkm::cont::ArrayHandle<vtkm::UInt8, tovtkm::vtkAOSArrayContainerTag> Shapes;
159 vtkm::cont::ArrayHandle<vtkm::Id, tovtkm::vtkCellArrayContainerTag>
161 vtkm::cont::ArrayHandle<vtkm::Id, tovtkm::vtkAOSArrayContainerTag>
168 mutable bool ReverseConnectivityBuilt;
169 mutable vtkm::cont::ArrayHandle<vtkm::Id> RConn;
170 mutable vtkm::cont::ArrayHandle<vtkm::IdComponent> RNumIndices;
171 mutable vtkm::cont::ArrayHandle<vtkm::Id> RIndexOffsets;
172 mutable vtkm::Id NumberOfPoints;
177 extern template VTKACCELERATORSVTKM_TEMPLATE_EXPORT
180 vtkm::TopologyElementTagPoint, vtkm::TopologyElementTagCell)
const;
182 extern template VTKACCELERATORSVTKM_TEMPLATE_EXPORT
185 vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint)
const;
187 #ifdef VTKM_ENABLE_TBB 188 extern template VTKACCELERATORSVTKM_TEMPLATE_EXPORT
191 vtkm::TopologyElementTagPoint, vtkm::TopologyElementTagCell)
const;
193 extern template VTKACCELERATORSVTKM_TEMPLATE_EXPORT
196 vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint)
const;
199 #if defined(VTKM_ENABLE_CUDA) && defined(VTKM_CUDA) 200 extern template VTKACCELERATORSVTKM_TEMPLATE_EXPORT
203 vtkm::TopologyElementTagPoint, vtkm::TopologyElementTagCell)
const;
205 extern template VTKACCELERATORSVTKM_TEMPLATE_EXPORT
208 vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint)
const;
vtkmCellSetExplicitAOS(const std::string &name=std::string())
vtkm::exec::ConnectivityVTKAOS< DeviceAdapter > ExecObjectType
const vtkm::cont::ArrayHandle< vtkm::Id, tovtkm::vtkCellArrayContainerTag > & GetConnectivityArray(vtkm::TopologyElementTagPoint, vtkm::TopologyElementTagCell) const
const vtkm::cont::ArrayHandle< vtkm::UInt8, tovtkm::vtkAOSArrayContainerTag > & GetShapesArray(vtkm::TopologyElementTagPoint, vtkm::TopologyElementTagCell) const
vtkm::Id GetNumberOfCells() const
virtual vtkm::Id GetNumberOfFaces() const
vtkm::exec::ReverseConnectivityVTK< DeviceAdapter > ExecObjectType
vtkm::Id GetNumberOfPoints() const
vtkm::exec::ConnectivityVTKAOS< Device > PrepareForInput(Device, vtkm::TopologyElementTagPoint, vtkm::TopologyElementTagCell) const
vtkm::Id GetSchedulingRange(vtkm::TopologyElementTagCell) const
const vtkm::cont::ArrayHandle< vtkm::Id, tovtkm::vtkAOSArrayContainerTag > & GetIndexOffsetArray(vtkm::TopologyElementTagPoint, vtkm::TopologyElementTagCell) const
virtual vtkm::Id GetNumberOfEdges() const
vtkmCellSetExplicitAOS & operator=(const vtkmCellSetExplicitAOS &src)
vtkm::Id GetSchedulingRange(vtkm::TopologyElementTagPoint) const
virtual ~vtkmCellSetExplicitAOS()