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:
- <a href=
- <a href=
- <a href=
- <a href=
Definition at line 126 of file itkMesh.h.
|
using | BoundaryAssignmentsContainer = MapContainer< BoundaryAssignmentIdentifier, CellIdentifier > |
|
using | BoundaryAssignmentsContainerPointer = typename BoundaryAssignmentsContainer::Pointer |
|
using | BoundaryAssignmentsContainerVector = std::vector< BoundaryAssignmentsContainerPointer > |
|
using | BoundingBoxPointer = typename BoundingBoxType::Pointer |
|
using | BoundingBoxType = BoundingBox< PointIdentifier, Self::PointDimension, CoordRepType, PointsContainer > |
|
using | CellAutoPointer = typename CellType::CellAutoPointer |
|
using | CellDataContainer = typename MeshTraits::CellDataContainer |
|
using | CellDataContainerConstPointer = typename CellDataContainer::ConstPointer |
|
using | CellDataContainerIterator = typename CellDataContainer::ConstIterator |
|
using | CellDataContainerPointer = typename CellDataContainer::Pointer |
|
using | CellFeatureCount = CellFeatureIdentifier |
|
using | CellFeatureIdentifier = typename MeshTraits::CellFeatureIdentifier |
|
using | CellIdentifier = typename MeshTraits::CellIdentifier |
|
using | CellLinksContainer = typename MeshTraits::CellLinksContainer |
|
using | CellLinksContainerConstPointer = typename CellLinksContainer::ConstPointer |
|
using | CellLinksContainerIterator = typename CellLinksContainer::ConstIterator |
|
using | CellLinksContainerPointer = typename CellLinksContainer::Pointer |
|
using | CellMultiVisitorType = typename CellType::MultiVisitor |
|
using | CellPixelType = typename MeshTraits::CellPixelType |
|
using | CellsContainer = typename MeshTraits::CellsContainer |
|
using | CellsContainerConstIterator = typename CellsContainer::ConstIterator |
|
using | CellsContainerConstPointer = typename CellsContainer::ConstPointer |
|
using | CellsContainerIterator = typename CellsContainer::Iterator |
|
using | CellsContainerPointer = typename CellsContainer::Pointer |
|
using | CellsVectorContainer = typename itk::VectorContainer< IdentifierType > |
|
using | CellsVectorContainerPointer = typename CellsVectorContainer::Pointer |
|
using | CellTraits = typename MeshTraits::CellTraits |
|
using | CellType = CellInterface< CellPixelType, CellTraits > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | CoordRepType = typename MeshTraits::CoordRepType |
|
using | InterpolationWeightType = typename MeshTraits::InterpolationWeightType |
|
using | MeshClassCellsAllocationMethodEnum = MeshEnums::MeshClassCellsAllocationMethod |
|
using | MeshTraits = TMeshTraits |
|
using | OutputHexahedronCellType = itk::HexahedronCell< CellType > |
|
using | OutputLineCellType = itk::LineCell< CellType > |
|
using | OutputPolygonCellType = itk::PolygonCell< CellType > |
|
using | OutputPolyLineCellType = itk::PolyLineCell< CellType > |
|
using | OutputQuadraticEdgeCellType = itk::QuadraticEdgeCell< CellType > |
|
using | OutputQuadraticTriangleCellType = itk::QuadraticTriangleCell< CellType > |
|
using | OutputQuadrilateralCellType = itk::QuadrilateralCell< CellType > |
|
using | OutputTetrahedronCellType = itk::TetrahedronCell< CellType > |
|
using | OutputTriangleCellType = itk::TriangleCell< CellType > |
|
using | OutputVertexCellType = itk::VertexCell< CellType > |
|
using | PixelType = typename MeshTraits::PixelType |
|
using | PointCellLinksContainer = typename MeshTraits::PointCellLinksContainer |
|
using | PointCellLinksContainerIterator = typename PointCellLinksContainer::const_iterator |
|
using | PointDataContainer = typename MeshTraits::PointDataContainer |
|
using | PointDataContainerIterator = typename PointDataContainer::ConstIterator |
|
using | PointDataContainerPointer = typename PointDataContainer::Pointer |
|
using | Pointer = SmartPointer< Self > |
|
using | PointHashType = typename MeshTraits::PointHashType |
|
using | PointIdentifier = typename MeshTraits::PointIdentifier |
|
using | PointsContainer = typename MeshTraits::PointsContainer |
|
using | PointsContainerConstIterator = typename PointsContainer::ConstIterator |
|
using | PointsContainerIterator = typename PointsContainer::Iterator |
|
using | PointsContainerPointer = typename PointsContainer::Pointer |
|
using | PointType = typename MeshTraits::PointType |
|
using | Self = Mesh |
|
using | Superclass = PointSet< TPixelType, VDimension, TMeshTraits > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | MeshTraits = DefaultStaticMeshTraits< TPixelType, 3, 3 > |
|
using | PixelType = typename MeshTraits::PixelType |
|
using | PointDataContainer = typename MeshTraits::PointDataContainer |
|
using | PointDataContainerConstPointer = typename PointDataContainer::ConstPointer |
|
using | PointDataContainerIterator = typename PointDataContainer::ConstIterator |
|
using | PointDataContainerPointer = typename PointDataContainer::Pointer |
|
using | Pointer = SmartPointer< Self > |
|
using | PointIdentifier = typename MeshTraits::PointIdentifier |
|
using | PointType = typename MeshTraits::PointType |
|
using | Self = PointSet |
|
using | Superclass = PointSetBase< typename TMeshTraits::PointsContainer > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | CoordRepType = typename PointType::CoordRepType |
|
using | Pointer = SmartPointer< Self > |
|
using | PointIdentifier = typename TPointsContainer::ElementIdentifier |
|
using | PointsContainer = TMeshTraits::PointsContainer |
|
using | PointsContainerConstIterator = typename PointsContainer::ConstIterator |
|
using | PointsContainerConstPointer = typename PointsContainer::ConstPointer |
|
using | PointsContainerIterator = typename PointsContainer::Iterator |
|
using | PointsContainerPointer = typename PointsContainer::Pointer |
|
using | PointsVectorContainer = typename itk::VectorContainer< PointIdentifier, CoordRepType > |
|
using | PointsVectorContainerPointer = typename PointsVectorContainer::Pointer |
|
using | PointType = typename TPointsContainer::Element |
|
using | RegionType = long |
|
using | Self = PointSetBase |
|
using | Superclass = DataObject |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DataObjectIdentifierType = std::string |
|
using | DataObjectPointerArraySizeType = std::vector< Pointer >::size_type |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = DataObject |
|
using | Superclass = Object |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = Object |
|
using | Superclass = LightObject |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = LightObject |
|
|
virtual void | Accept (CellMultiVisitorType *mv) const |
|
void | BuildCellLinks () const |
|
void | CopyInformation (const DataObject *data) override |
|
void | DeleteUnusedCellData () |
|
bool | GetAssignedCellBoundaryIfOneExists (int dimension, CellIdentifier, CellFeatureIdentifier, CellAutoPointer &) const |
|
bool | GetBoundaryAssignment (int dimension, CellIdentifier cellId, CellFeatureIdentifier featureId, CellIdentifier *boundaryId) const |
|
BoundaryAssignmentsContainerPointer | GetBoundaryAssignments (int dimension) |
|
const BoundaryAssignmentsContainerPointer | GetBoundaryAssignments (int dimension) const |
|
const BoundingBoxType * | GetBoundingBox () const |
|
bool | GetCell (CellIdentifier, CellAutoPointer &) const |
|
bool | GetCellBoundaryFeature (int dimension, CellIdentifier, CellFeatureIdentifier, CellAutoPointer &) const |
|
CellIdentifier | GetCellBoundaryFeatureNeighbors (int dimension, CellIdentifier, CellFeatureIdentifier, std::set< CellIdentifier > *cellSet) |
|
CellDataContainer * | GetCellData () |
|
const CellDataContainer * | GetCellData () const |
|
bool | GetCellData (CellIdentifier, CellPixelType *) const |
|
CellLinksContainer * | GetCellLinks () |
|
const CellLinksContainer * | GetCellLinks () const |
|
CellIdentifier | GetCellNeighbors (CellIdentifier cellId, std::set< CellIdentifier > *cellSet) |
|
CellsContainer * | GetCells () |
|
const CellsContainer * | GetCells () const |
|
virtual CellsVectorContainer * | GetCellsArray () |
|
const char * | GetNameOfClass () const override |
|
CellFeatureCount | GetNumberOfCellBoundaryFeatures (int dimension, CellIdentifier) const |
|
CellIdentifier | GetNumberOfCells () const |
|
void | Graft (const DataObject *data) override |
|
void | Initialize () override |
|
void | PassStructure (Self *inputMesh) |
|
bool | RemoveBoundaryAssignment (int dimension, CellIdentifier cellId, CellFeatureIdentifier featureId) |
|
void | SetBoundaryAssignment (int dimension, CellIdentifier cellId, CellFeatureIdentifier featureId, CellIdentifier boundaryId) |
|
void | SetBoundaryAssignments (int dimension, BoundaryAssignmentsContainer *) |
|
void | SetCell (CellIdentifier, CellAutoPointer &) |
|
void | SetCellData (CellDataContainer *) |
|
void | SetCellData (CellIdentifier, CellPixelType) |
|
void | SetCellLinks (CellLinksContainer *) |
|
void | SetCells (CellsContainer *) |
|
virtual void | SetCellsArray (CellsVectorContainer *) |
|
virtual void | SetCellsArray (CellsVectorContainer *, int cellType) |
|
|
virtual void | SetCellsAllocationMethod (MeshClassCellsAllocationMethodEnum _arg) |
|
virtual const MeshClassCellsAllocationMethodEnum & | GetCellsAllocationMethod () const |
|
const char * | GetNameOfClass () const override |
|
PointDataContainer * | GetPointData () |
|
const PointDataContainer * | GetPointData () const |
|
bool | GetPointData (PointIdentifier, PixelType *) const |
|
void | Graft (const DataObject *data) override |
|
void | Initialize () override |
|
void | SetPointData (PointDataContainer *) |
|
void | SetPointData (PointIdentifier, PixelType) |
|
void | CopyInformation (const DataObject *data) override |
|
virtual RegionType | GetBufferedRegion () const |
|
virtual RegionType | GetMaximumNumberOfRegions () const |
|
const char * | GetNameOfClass () const override |
|
PointIdentifier | GetNumberOfPoints () const |
|
PointType | GetPoint (PointIdentifier) const |
|
bool | GetPoint (PointIdentifier, PointType *) const |
|
PointsContainer * | GetPoints () |
|
const PointsContainer * | GetPoints () const |
|
virtual RegionType | GetRequestedRegion () const |
|
void | Initialize () override |
|
| itkCloneMacro (Self) |
|
void | PassStructure (Self *inputPointSet) |
|
bool | RequestedRegionIsOutsideOfTheBufferedRegion () override |
|
virtual void | SetBufferedRegion (const RegionType ®ion) |
|
void | SetPoint (PointIdentifier, PointType) |
|
void | SetPoints (PointsContainer *) |
|
void | SetPoints (PointsVectorContainer *) |
|
void | SetPointsByCoordinates (const std::vector< CoordRepType > &coordinates) |
|
void | SetRequestedRegion (const DataObject *data) override |
|
virtual void | SetRequestedRegion (const RegionType ®ion) |
|
void | SetRequestedRegionToLargestPossibleRegion () override |
|
void | UpdateOutputInformation () override |
|
bool | VerifyRequestedRegion () override |
|
virtual void | CopyInformation (const DataObject *) |
|
virtual void | DataHasBeenGenerated () |
|
void | DisconnectPipeline () |
|
bool | GetDataReleased () const |
|
const char * | GetNameOfClass () const override |
|
virtual const bool & | GetReleaseDataFlag () const |
|
SmartPointer< ProcessObject > | GetSource () const |
|
DataObjectPointerArraySizeType | GetSourceOutputIndex () const |
|
const DataObjectIdentifierType & | GetSourceOutputName () const |
|
virtual ModifiedTimeType | GetUpdateMTime () const |
|
virtual void | Graft (const DataObject *) |
|
virtual void | Initialize () |
|
virtual void | PrepareForNewData () |
|
virtual void | PropagateRequestedRegion () |
|
void | ReleaseData () |
|
virtual void | ReleaseDataFlagOn () |
|
virtual bool | RequestedRegionIsOutsideOfTheBufferedRegion () |
|
virtual void | ResetPipeline () |
|
void | SetReleaseDataFlag (bool flag) |
|
virtual void | SetRequestedRegion (const DataObject *) |
|
virtual void | SetRequestedRegionToLargestPossibleRegion () |
|
bool | ShouldIReleaseData () const |
|
virtual void | Update () |
|
virtual void | UpdateOutputData () |
|
virtual void | UpdateOutputInformation () |
|
void | UpdateSource () const |
|
virtual bool | VerifyRequestedRegion () |
|
void | SetPipelineMTime (ModifiedTimeType time) |
|
virtual const ModifiedTimeType & | GetPipelineMTime () const |
|
virtual void | SetRealTimeStamp (RealTimeStamp _arg) |
|
virtual const RealTimeStamp & | GetRealTimeStamp () const |
|
unsigned long | AddObserver (const EventObject &event, Command *cmd) const |
|
unsigned long | AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) const |
|
LightObject::Pointer | CreateAnother () const override |
|
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 |
|
const char * | GetNameOfClass () const override |
|
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) const |
|
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 Pointer | CreateAnother () const |
|
virtual void | Delete () |
|
virtual const char * | GetNameOfClass () const |
|
virtual int | GetReferenceCount () const |
|
void | Print (std::ostream &os, Indent indent=0) const |
|
virtual void | Register () const |
|
virtual void | SetReferenceCount (int) |
|
virtual void | UnRegister () const noexcept |
|