VTK-m
2.2
|
Defines an irregular collection of cells. More...
#include <CastAndCall.h>
Classes | |
struct | ConnectivityChooser |
struct | Internals |
Public Types | |
using | SchedulingRangeType = vtkm::Id |
using | ShapesArrayType = typename CellPointIdsType::ShapesArrayType |
using | ConnectivityArrayType = typename CellPointIdsType::ConnectivityArrayType |
using | OffsetsArrayType = typename CellPointIdsType::OffsetsArrayType |
using | NumIndicesArrayType = typename ConnTypes::NumIndicesArrayType |
template<typename VisitTopology , typename IncidentTopology > | |
using | ExecConnectivityType = typename ConnectivityChooser< VisitTopology, IncidentTopology >::ExecConnectivityType |
Public Member Functions | |
CellSetExplicit () | |
CellSetExplicit (const Thisclass &src) | |
CellSetExplicit (Thisclass &&src) noexcept | |
Thisclass & | operator= (const Thisclass &src) |
Thisclass & | operator= (Thisclass &&src) noexcept |
~CellSetExplicit () override | |
vtkm::Id | GetNumberOfCells () const override |
vtkm::Id | GetNumberOfPoints () const override |
vtkm::Id | GetNumberOfFaces () const override |
vtkm::Id | GetNumberOfEdges () const override |
void | PrintSummary (std::ostream &out) const override |
void | ReleaseResourcesExecution () override |
std::shared_ptr< CellSet > | NewInstance () const override |
void | DeepCopy (const CellSet *src) override |
vtkm::Id | GetSchedulingRange (vtkm::TopologyElementTagCell) const |
vtkm::Id | GetSchedulingRange (vtkm::TopologyElementTagPoint) const |
vtkm::IdComponent | GetNumberOfPointsInCell (vtkm::Id cellid) const override |
void | GetCellPointIds (vtkm::Id id, vtkm::Id *ptids) const override |
vtkm::cont::ArrayHandle< vtkm::UInt8, ShapesStorageTag >::ReadPortalType | ShapesReadPortal () const |
Returns an array portal that can be used to get the shape id of each cell. More... | |
vtkm::UInt8 | GetCellShape (vtkm::Id cellid) const override |
template<vtkm::IdComponent NumIndices> | |
void | GetIndices (vtkm::Id index, vtkm::Vec< vtkm::Id, NumIndices > &ids) const |
Retrieves the indices of the points incident to the given cell. More... | |
void | GetIndices (vtkm::Id index, vtkm::cont::ArrayHandle< vtkm::Id > &ids) const |
Retrieves the indices of the points incident to the given cell. More... | |
void | PrepareToAddCells (vtkm::Id numCells, vtkm::Id connectivityMaxLen) |
Start adding cells one at a time. More... | |
template<typename IdVecType > | |
void | AddCell (vtkm::UInt8 cellType, vtkm::IdComponent numVertices, const IdVecType &ids) |
Add a cell. More... | |
void | CompleteAddingCells (vtkm::Id numPoints) |
Finish adding cells one at a time. More... | |
void | Fill (vtkm::Id numPoints, const vtkm::cont::ArrayHandle< vtkm::UInt8, ShapesStorageTag > &cellTypes, const vtkm::cont::ArrayHandle< vtkm::Id, ConnectivityStorageTag > &connectivity, const vtkm::cont::ArrayHandle< vtkm::Id, OffsetsStorageTag > &offsets) |
Set all the cells of the mesh. More... | |
template<typename VisitTopology , typename IncidentTopology > | |
ExecConnectivityType< VisitTopology, IncidentTopology > | PrepareForInput (vtkm::cont::DeviceAdapterId device, VisitTopology visitTopology, IncidentTopology incidentTopology, vtkm::cont::Token &token) const |
Prepares the data for a particular device and returns the execution object for it. More... | |
template<typename VisitTopology , typename IncidentTopology > | |
const ConnectivityChooser< VisitTopology, IncidentTopology >::ShapesArrayType & | GetShapesArray (VisitTopology, IncidentTopology) const |
Returns the vtkm::cont::ArrayHandle holding the shape information. More... | |
template<typename VisitTopology , typename IncidentTopology > | |
const ConnectivityChooser< VisitTopology, IncidentTopology >::ConnectivityArrayType & | GetConnectivityArray (VisitTopology, IncidentTopology) const |
Returns the vtkm::cont::ArrayHandle containing the connectivity information. More... | |
template<typename VisitTopology , typename IncidentTopology > | |
const ConnectivityChooser< VisitTopology, IncidentTopology >::OffsetsArrayType & | GetOffsetsArray (VisitTopology, IncidentTopology) const |
Returns the vtkm::cont::ArrayHandle containing the offsets into theconnectivity information. More... | |
template<typename VisitTopology , typename IncidentTopology > | |
ConnectivityChooser< VisitTopology, IncidentTopology >::NumIndicesArrayType | GetNumIndicesArray (VisitTopology, IncidentTopology) const |
template<typename VisitTopology , typename IncidentTopology > | |
bool | HasConnectivity (VisitTopology visit, IncidentTopology incident) const |
Returns whether the CellSetExplicit has information for the given visit and incident topology elements. More... | |
template<typename VisitTopology , typename IncidentTopology > | |
void | ResetConnectivity (VisitTopology visit, IncidentTopology incident) |
Protected Attributes | |
std::shared_ptr< Internals > | Data |
Private Types | |
using | Thisclass = CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag > |
using | ConnTypes = ConnectivityChooser< vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint > |
using | RConnTypes = ConnectivityChooser< vtkm::TopologyElementTagPoint, vtkm::TopologyElementTagCell > |
using | CellPointIdsType = typename ConnTypes::ConnectivityType |
using | PointCellIdsType = typename RConnTypes::ConnectivityType |
Private Member Functions | |
const CellPointIdsType & | GetConnectivity (vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint) const |
const CellPointIdsType & | GetConnectivity (vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint) |
const PointCellIdsType & | GetConnectivity (vtkm::TopologyElementTagPoint, vtkm::TopologyElementTagCell) const |
const PointCellIdsType & | GetConnectivity (vtkm::TopologyElementTagPoint, vtkm::TopologyElementTagCell) |
Defines an irregular collection of cells.
The cells can be of different types and connected in arbitrary ways. This is done by explicitly providing for each cell a sequence of points that defines the cell.
|
private |
using vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::ConnectivityArrayType = typename CellPointIdsType::ConnectivityArrayType |
|
private |
using vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::ExecConnectivityType = typename ConnectivityChooser<VisitTopology, IncidentTopology>::ExecConnectivityType |
using vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::NumIndicesArrayType = typename ConnTypes::NumIndicesArrayType |
using vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::OffsetsArrayType = typename CellPointIdsType::OffsetsArrayType |
|
private |
|
private |
using vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::SchedulingRangeType = vtkm::Id |
using vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::ShapesArrayType = typename CellPointIdsType::ShapesArrayType |
|
private |
vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::CellSetExplicit | ( | ) |
vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::CellSetExplicit | ( | const Thisclass & | src | ) |
|
noexcept |
|
override |
void vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::AddCell | ( | vtkm::UInt8 | cellType, |
vtkm::IdComponent | numVertices, | ||
const IdVecType & | ids | ||
) |
Add a cell.
This can only be called after AddCell
.
|
inlineprotected |
|
inlineprotected |
void vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::CompleteAddingCells | ( | vtkm::Id | numPoints | ) |
Finish adding cells one at a time.
|
override |
void vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::Fill | ( | vtkm::Id | numPoints, |
const vtkm::cont::ArrayHandle< vtkm::UInt8, ShapesStorageTag > & | cellTypes, | ||
const vtkm::cont::ArrayHandle< vtkm::Id, ConnectivityStorageTag > & | connectivity, | ||
const vtkm::cont::ArrayHandle< vtkm::Id, OffsetsStorageTag > & | offsets | ||
) |
Set all the cells of the mesh.
This method can be used to fill the memory from another system without copying data.
|
override |
|
override |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
const ConnectivityChooser<VisitTopology, IncidentTopology>::ConnectivityArrayType& vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::GetConnectivityArray | ( | VisitTopology | , |
IncidentTopology | |||
) | const |
Returns the vtkm::cont::ArrayHandle
containing the connectivity information.
Returns the vtkm::cont::ArrayHandle
holding the shape information. The incident array corresponding to vtkm::TopologyElementTagCell
for the VisitTopology
and vtkm::TopologyElementTagPoint
for the IncidentTopology
is the same as that provided when filling the explicit cell set. ExplicitCellSet
is capable of providing the inverse connections (cells incident on each point) on request.
void vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::GetIndices | ( | vtkm::Id | index, |
vtkm::cont::ArrayHandle< vtkm::Id > & | ids | ||
) | const |
Retrieves the indices of the points incident to the given cell.
void vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::GetIndices | ( | vtkm::Id | index, |
vtkm::Vec< vtkm::Id, NumIndices > & | ids | ||
) | const |
Retrieves the indices of the points incident to the given cell.
If the provided vtkm::Vec
does not have enough components, the result will be truncated.
|
override |
|
override |
|
override |
|
override |
|
override |
ConnectivityChooser<VisitTopology, IncidentTopology>::NumIndicesArrayType vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::GetNumIndicesArray | ( | VisitTopology | , |
IncidentTopology | |||
) | const |
const ConnectivityChooser<VisitTopology, IncidentTopology>::OffsetsArrayType& vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::GetOffsetsArray | ( | VisitTopology | , |
IncidentTopology | |||
) | const |
Returns the vtkm::cont::ArrayHandle
containing the offsets into theconnectivity information.
Returns the vtkm::cont::ArrayHandle
holding the offset information. The offset array corresponding to vtkm::TopologyElementTagCell
for the VisitTopology
and vtkm::TopologyElementTagPoint
for the IncidentTopology
is the same as that provided when filling the explicit cell set. ExplicitCellSet
is capable of providing the inverse connections (cells incident on each point) on request.
vtkm::Id vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::GetSchedulingRange | ( | vtkm::TopologyElementTagCell | ) | const |
vtkm::Id vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::GetSchedulingRange | ( | vtkm::TopologyElementTagPoint | ) | const |
const ConnectivityChooser<VisitTopology, IncidentTopology>::ShapesArrayType& vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::GetShapesArray | ( | VisitTopology | , |
IncidentTopology | |||
) | const |
Returns the vtkm::cont::ArrayHandle
holding the shape information.
The shapes array corresponding to vtkm::TopologyElementTagCell
for the VisitTopology
and vtkm::TopologyElementTagPoint
for the IncidentTopology
is the same as that provided when filling the explicit cell set. ExplicitCellSet
is capable of providing the inverse connections (cells incident on each point) on request.
|
inline |
Returns whether the CellSetExplicit
has information for the given visit and incident topology elements.
If the connectivity is not available, it will be automatically created if requested, but that will take time.
|
inlineprotected |
|
inlineprotected |
|
override |
Thisclass& vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::operator= | ( | const Thisclass & | src | ) |
|
noexcept |
ExecConnectivityType<VisitTopology, IncidentTopology> vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::PrepareForInput | ( | vtkm::cont::DeviceAdapterId | device, |
VisitTopology | visitTopology, | ||
IncidentTopology | incidentTopology, | ||
vtkm::cont::Token & | token | ||
) | const |
Prepares the data for a particular device and returns the execution object for it.
device | Specifies the device on which the cell set will ve available. |
visitTopology | Specifies the "visit" topology element. This is the element that will be indexed in the resulting connectivity object. This is typically vtkm::TopologyElementTagPoint or vtkm::TopologyElementTagCell . |
incidentTopology | Specifies the "incident" topology element. This is the element that will incident to the elements that are visited. This is typically vtkm::TopologyElementTagPoint or vtkm::TopologyElementTagCell . |
token | Provides a vtkm::cont::Token object that will define the span which the return execution object must be valid. |
void vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::PrepareToAddCells | ( | vtkm::Id | numCells, |
vtkm::Id | connectivityMaxLen | ||
) |
Start adding cells one at a time.
After this method is called, AddCell
is called repeatedly to add each cell. Once all cells are added, call CompleteAddingCells
.
|
override |
|
override |
|
inline |
|
inlineprotected |
|
inlineprotected |
vtkm::cont::ArrayHandle<vtkm::UInt8, ShapesStorageTag>::ReadPortalType vtkm::cont::CellSetExplicit< ShapesStorageTag, ConnectivityStorageTag, OffsetsStorageTag >::ShapesReadPortal | ( | ) | const |
Returns an array portal that can be used to get the shape id of each cell.
Using the array portal returned from this method to get many shape ids is likely significantly faster than calling GetCellShape()
for each cell.
|
protected |