|
void | CopyInformation (const DataObject *data) override |
|
virtual ::itk::LightObject::Pointer | CreateAnother () const |
|
void | DeleteUnusedCellData () |
|
BoundaryAssignmentsContainerPointer | GetBoundaryAssignments (int dimension) |
|
const BoundaryAssignmentsContainerPointer | GetBoundaryAssignments (int dimension) const |
|
const BoundingBoxType * | GetBoundingBox () const |
|
bool | GetCell (CellIdentifier, CellAutoPointer &) const |
|
CellDataContainer * | GetCellData () |
|
const CellDataContainer * | GetCellData () const |
|
CellLinksContainer * | GetCellLinks () |
|
const CellLinksContainer * | GetCellLinks () const |
|
CellsContainer * | GetCells () |
|
const CellsContainer * | GetCells () const |
|
virtual const char * | GetNameOfClass () const |
|
CellIdentifier | GetNumberOfCells () const |
|
void | Graft (const DataObject *data) override |
|
void | Initialize () override |
|
void | PassStructure (Self *inputMesh) |
|
void | SetBoundaryAssignments (int dimension, BoundaryAssignmentsContainer *) |
|
void | SetCell (CellIdentifier, CellAutoPointer &) |
|
void | SetCellData (CellDataContainer *) |
|
void | SetCellLinks (CellLinksContainer *) |
|
void | SetCells (CellsContainer *) |
|
virtual RegionType | GetMaximumNumberOfRegions () const |
|
PointIdentifier | GetNumberOfPoints () const |
|
PointDataContainer * | GetPointData () |
|
const PointDataContainer * | GetPointData () const |
|
PointsContainer * | GetPoints () |
|
const PointsContainer * | GetPoints () const |
|
void | PassStructure (Self *inputPointSet) |
|
void | SetPointData (PointDataContainer *) |
|
void | SetPoints (PointsContainer *) |
|
void | SetPoint (PointIdentifier, PointType) |
|
bool | GetPoint (PointIdentifier, PointType *) const |
|
PointType | GetPoint (PointIdentifier) const |
|
void | SetPointData (PointIdentifier, PixelType) |
|
bool | GetPointData (PointIdentifier, PixelType *) const |
|
void | UpdateOutputInformation () override |
|
void | SetRequestedRegionToLargestPossibleRegion () override |
|
bool | RequestedRegionIsOutsideOfTheBufferedRegion () override |
|
bool | VerifyRequestedRegion () override |
|
void | SetRequestedRegion (const DataObject *data) override |
|
virtual void | SetRequestedRegion (const RegionType ®ion) |
|
virtual RegionType | GetRequestedRegion () const |
|
virtual void | SetBufferedRegion (const RegionType ®ion) |
|
virtual RegionType | GetBufferedRegion () const |
|
void | DisconnectPipeline () |
|
bool | GetDataReleased () const |
|
virtual const bool & | GetReleaseDataFlag () const |
|
SmartPointer< ProcessObject > | GetSource () const |
|
DataObjectPointerArraySizeType | GetSourceOutputIndex () const |
|
const DataObjectIdentifierType & | GetSourceOutputName () const |
|
virtual void | PropagateRequestedRegion () |
|
void | ReleaseData () |
|
virtual void | ReleaseDataFlagOff () |
|
virtual void | ReleaseDataFlagOn () |
|
virtual void | ResetPipeline () |
|
void | SetReleaseDataFlag (bool flag) |
|
bool | ShouldIReleaseData () const |
|
virtual void | Update () |
|
virtual void | UpdateOutputData () |
|
void | SetPipelineMTime (ModifiedTimeType time) |
|
virtual const ModifiedTimeType & | GetPipelineMTime () const |
|
virtual ModifiedTimeType | GetUpdateMTime () const |
|
virtual void | SetRealTimeStamp (RealTimeStamp _arg) |
|
virtual const RealTimeStamp & | GetRealTimeStamp () const |
|
virtual void | PrepareForNewData () |
|
virtual void | DataHasBeenGenerated () |
|
unsigned long | AddObserver (const EventObject &event, Command *) |
|
unsigned long | AddObserver (const EventObject &event, Command *) const |
|
unsigned long | AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) const |
|
virtual void | DebugOff () const |
|
virtual void | DebugOn () const |
|
Command * | GetCommand (unsigned long tag) |
|
bool | GetDebug () const |
|
MetaDataDictionary & | GetMetaDataDictionary () |
|
const MetaDataDictionary & | GetMetaDataDictionary () const |
|
virtual ModifiedTimeType | GetMTime () const |
|
virtual const TimeStamp & | GetTimeStamp () const |
|
bool | HasObserver (const EventObject &event) const |
|
void | InvokeEvent (const EventObject &) |
|
void | InvokeEvent (const EventObject &) const |
|
virtual void | Modified () const |
|
void | Register () const override |
|
void | RemoveAllObservers () |
|
void | RemoveObserver (unsigned long tag) |
|
void | SetDebug (bool debugFlag) const |
|
void | SetReferenceCount (int) override |
|
void | UnRegister () const noexcept override |
|
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
|
void | SetMetaDataDictionary (MetaDataDictionary &&rrhs) |
|
virtual void | SetObjectName (std::string _arg) |
|
virtual const std::string & | GetObjectName () const |
|
Pointer | Clone () const |
|
virtual void | Delete () |
|
virtual int | GetReferenceCount () const |
|
void | Print (std::ostream &os, Indent indent=0) const |
|
|
BoundaryAssignmentsContainerVector | m_BoundaryAssignmentsContainers |
|
CellDataContainerPointer | m_CellDataContainer |
|
CellLinksContainerPointer | m_CellLinksContainer |
|
CellsContainerPointer | m_CellsContainer |
|
PointDataContainerPointer | m_PointDataContainer |
|
PointsContainerPointer | m_PointsContainer |
|
RegionType | m_MaximumNumberOfRegions |
|
RegionType | m_NumberOfRegions |
|
RegionType | m_RequestedNumberOfRegions |
|
RegionType | m_BufferedRegion |
|
RegionType | m_RequestedRegion |
|
std::atomic< int > | m_ReferenceCount |
|
BoundingBoxPointer | m_BoundingBox |
|
MeshClassCellsAllocationMethodEnum | m_CellsAllocationMethod |
|
void | SetCellData (CellIdentifier, CellPixelType) |
|
bool | GetCellData (CellIdentifier, CellPixelType *) const |
|
void | SetBoundaryAssignment (int dimension, CellIdentifier cellId, CellFeatureIdentifier featureId, CellIdentifier boundaryId) |
|
bool | GetBoundaryAssignment (int dimension, CellIdentifier cellId, CellFeatureIdentifier featureId, CellIdentifier *boundaryId) const |
|
bool | RemoveBoundaryAssignment (int dimension, CellIdentifier cellId, CellFeatureIdentifier featureId) |
|
CellFeatureCount | GetNumberOfCellBoundaryFeatures (int dimension, CellIdentifier) const |
|
bool | GetCellBoundaryFeature (int dimension, CellIdentifier, CellFeatureIdentifier, CellAutoPointer &) const |
|
CellIdentifier | GetCellBoundaryFeatureNeighbors (int dimension, CellIdentifier, CellFeatureIdentifier, std::set< CellIdentifier > *cellSet) |
|
CellIdentifier | GetCellNeighbors (CellIdentifier cellId, std::set< CellIdentifier > *cellSet) |
|
bool | GetAssignedCellBoundaryIfOneExists (int dimension, CellIdentifier, CellFeatureIdentifier, CellAutoPointer &) const |
|
void | BuildCellLinks () const |
|
virtual void | Accept (CellMultiVisitorType *mv) const |
|
virtual void | SetCellsAllocationMethod (MeshClassCellsAllocationMethodEnum _arg) |
|
virtual const MeshClassCellsAllocationMethodEnum & | GetCellsAllocationMethod () const |
|
| Mesh () |
|
| ~Mesh () override |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
void | ReleaseCellsMemory () |
|
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
class itk::Mesh< TPixelType, VDimension, TMeshTraits >
Implements the N-dimensional mesh structure.
- Overview
- Mesh implements the N-dimensional mesh structure for ITK. It provides an API to perform operations on points, cells, boundaries, etc., but does not tie down the underlying implementation and storage. A "MeshTraits" structure is used to define the container and identifier types that will be used to access the mesh. See DefaultStaticMeshTraits for the set of type definitions needed. All types that are defined in the "MeshTraits" structure will have duplicate type alias in the resulting mesh itself.
Mesh is an adaptive, evolving structure. Typically points and cells are created, with the cells referring to their defining points. If additional topological information is required, then BuildCellLinks() is called and links from the points back to the cells that use them are created. This allows implicit topological information about the faces and edges of the cells to be determined. (For example, a "face" neighbor to a cell can be determined by intersection the sets of cells that use the points defining the face. This is an inherent assumption on the manifold relationship of the cells in the mesh.) In some cases, either because the mesh is non-manifold, because we wish to explicitly store information with the faces and edges of the mesh, or because performance requirements demand that boundaries are explicitly represented (the set intersection does not need to be performed); then Mesh can be further extended by adding explicit boundary assignments.
- Usage
- Mesh has three template parameters. The first is the pixel type, or the type of data stored (optionally) with points, cells, and/or boundaries. The second is the geometric dimension of the points defining the mesh. This also limits the maximum topological dimension of the cells that can be inserted. The third template parameter is the "MeshTraits" structure controlling type information for the mesh. Most users will be happy with the defaults, and will not have to worry about this third argument.
One of the most important parts of using this mesh is how to create cells to insert into it. The cells for the mesh take two template parameters. The first is the pixel type, and should correspond exactly to that type given to the mesh. The second is a "CellTraits" which holds a sub-set of the "MeshTraits" structure definitions, and is also a member of them. Any cell which is to be inserted to a mesh should have MeshTraits::CellTraits as its second template parameter.
Template parameters for Mesh:
TPixelType = The type stored as data for an entity (cell, point, or boundary).
TMeshTraits = Type information structure for the mesh.
- References
- No reference information is available.
- ITK Sphinx Examples:
-
- Examples
- Examples/DataRepresentation/Mesh/AutomaticMesh.cxx, Examples/DataRepresentation/Mesh/Mesh1.cxx, Examples/DataRepresentation/Mesh/Mesh2.cxx, Examples/DataRepresentation/Mesh/Mesh3.cxx, Examples/DataRepresentation/Mesh/MeshCellsIteration.cxx, Examples/DataRepresentation/Mesh/MeshCellVisitor.cxx, Examples/DataRepresentation/Mesh/MeshCellVisitor2.cxx, Examples/DataRepresentation/Mesh/MeshKComplex.cxx, Examples/DataRepresentation/Mesh/MeshPolyLine.cxx, Examples/DataRepresentation/Mesh/MeshTraits.cxx, Examples/Filtering/SurfaceExtraction.cxx, Examples/SpatialObjects/MeshSpatialObject.cxx, SphinxExamples/src/Core/Common/ReadAPointSet/Code.cxx, SphinxExamples/src/Core/Mesh/AddPointsAndEdges/Code.cxx, SphinxExamples/src/Core/Mesh/CalculateAreaAndVolumeOfSimplexMesh/Code.cxx, SphinxExamples/src/Core/Mesh/ConvertMeshToUnstructeredGrid/Code.cxx, SphinxExamples/src/Core/Mesh/ConvertTriangleMeshToBinaryImage/Code.cxx, SphinxExamples/src/Core/Mesh/ExtractIsoSurface/Code.cxx, SphinxExamples/src/Core/Mesh/TranslateOneMesh/Code.cxx, SphinxExamples/src/Core/Mesh/WorkingWithPointAndCellData/Code.cxx, SphinxExamples/src/Core/Mesh/WriteMeshToVTP/Code.cxx, and SphinxExamples/src/IO/Mesh/ReadMesh/Code.cxx.
Definition at line 114 of file itkMesh.h.
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
Used for manipulating boundaries and boundary attributes. A BoundaryAssignmentsContainerVector is indexed by dimension. For each dimension, it points to a MapContainer indexed by a BoundaryAssignmentIdentifier, which encapsulates a cell identifier and a boundary feature identifier. The boundary feature identifier distinguishes different boundary features for a given cell at a given dimension.
Definition at line 263 of file itkMesh.h.
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
The bounding box (xmin,xmax, ymin,ymax, ...) of the mesh. The bounding box is used for searching, picking, display, etc.
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
void itk::Mesh< TPixelType, VDimension, TMeshTraits >::CopyInformation |
( |
const DataObject * |
data | ) |
|
|
overridevirtual |
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
virtual::itk::LightObject::Pointer itk::Mesh< TPixelType, VDimension, TMeshTraits >::CreateAnother |
( |
| ) |
const |
|
virtual |
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
Check if there is an explicitly assigned boundary feature for the given dimension and cell- and cell-feature-identifiers. If there is, a pointer to it is given back through boundary (if boundary != nullptr) and true
is returned. Otherwise, false
is returned.
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
For the given cellId, get the identifier of a particular boundary feature of the given dimension. The featureId determines which boundary feature of the specified dimension is returned. For instance, if dimension is 1 and featureId is 0, then GetBoundaryAssignment finds the 0th edge of the given cell. The return value indicates whether a feature of the appropriate dimension and featureId exists. If it does not, the BoundaryIdentifier pointer is left unchanged.
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
The bounding box (xmin,xmax, ymin,ymax, ...) of the mesh. The bounding box is used for searching, picking, display, etc.
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
The bounding box (xmin,xmax, ymin,ymax, ...) of the mesh. The bounding box is used for searching, picking, display, etc.
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
void itk::Mesh< TPixelType, VDimension, TMeshTraits >::PrintSelf |
( |
std::ostream & |
os, |
|
|
Indent |
indent |
|
) |
| const |
|
overrideprotectedvirtual |
The bounding box (xmin,xmax, ymin,ymax, ...) of the mesh. The bounding box is used for searching, picking, display, etc.
Reimplemented from itk::PointSet< TPixelType, VDimension, TMeshTraits >.
Reimplemented in itk::SimplexMesh< TPixelType, VDimension, TMeshTraits >.
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
The bounding box (xmin,xmax, ymin,ymax, ...) of the mesh. The bounding box is used for searching, picking, display, etc.
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
Explicitly assign boundaryId as a part of the boundary of cellId. The identifiers boundaryId and cellId must identify cell objects already in the mesh. The dimension of boundaryId must be specified by dimension, and a unique CellFeatureIdentifier featureId must be assigned for each distinct boundary feature of a given dimension. CellFeatureIdentifier is equivalent to IdentifierType
by default, and this type alias will not typically need to be changed. The UsingCells list of boundaryId is automatically updated to include cellId.
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
Access routines to fill the Cells container (m_CellsContainer), and get information from it. If SetCell is used to overwrite a cell currently in the mesh, it is the caller's responsibility to release the memory for the cell currently at the CellIdentifier position prior to calling SetCell.
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
Access m_CellDataContainer, which contains data associated with the mesh's cells. Optionally, this can be nullptr, indicating that no data are associated with the cells. The data for a cell can be accessed through its cell identifier.
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
Access m_CellsLinksContainer, which contains parent cell links for each point. Since a point can be used by multiple cells, each point identifier accesses another container which holds the cell identifiers
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
A vector of objects containing explicit cell boundary assignments. The vector is indexed by the topological dimension of the cell boundary. The container for each topological dimension holds boundary identifiers of the assigned boundaries. The containers are keyed by BoundaryAssignmentIdentifier objects (see above). The boundary identifiers can be used to access the boundaries themselves in the containers stored in the Boundaries vector. They can also be used to access the data stored by a particular boundary through the containers in the BoundaryData vector.
Definition at line 292 of file itkMesh.h.
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
The bounding box (xmin,xmax, ymin,ymax, ...) of the mesh. The bounding box is used for searching, picking, display, etc.
Definition at line 503 of file itkMesh.h.
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
An object containing data associated with the mesh's cells. Optionally, this can be nullptr, indicating that no data are associated with the cells. The data for a cell can be accessed through its cell identifier.
Definition at line 276 of file itkMesh.h.
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
An object containing parent cell links for each point. Since a point can be used by multiple cells, each point identifier accesses another container which holds the cell identifiers
Definition at line 281 of file itkMesh.h.
template<typename TPixelType, unsigned int VDimension = 3, typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
The bounding box (xmin,xmax, ymin,ymax, ...) of the mesh. The bounding box is used for searching, picking, display, etc.
Definition at line 506 of file itkMesh.h.