ITK  6.0.0
Insight Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Attributes | Private Member Functions | Private Attributes | List of all members
itk::QuadEdgeMeshPolygonCell< TCellInterface > Class Template Reference

#include <itkQuadEdgeMeshPolygonCell.h>

Detailed Description

template<typename TCellInterface>
class itk::QuadEdgeMeshPolygonCell< TCellInterface >

Class that connects the QE with itk

Parameters
TCellInterfaceBasic type for the itk*Cell. This usually comes from the MeshTraits.
Author
Alexandre Gouaillard, Leonardo Florez-Valencia, Eric Boix

This implementation was contributed as a paper to the Insight Journal https://doi.org/10.54294/4mx7kk

Definition at line 39 of file itkQuadEdgeMeshPolygonCell.h.

+ Inheritance diagram for itk::QuadEdgeMeshPolygonCell< TCellInterface >:
+ Collaboration diagram for itk::QuadEdgeMeshPolygonCell< TCellInterface >:

Public Types

using CellFeatureCount = typename Superclass::CellFeatureIdentifier
 
using CellTraits = typename Superclass::CellTraits
 
using CellType = typename Superclass::CellType
 
using ConstRawPointer = const Self *
 
using ConstSelfAutoPointer = AutoPointer< const Self >
 
using DualDataType = typename QuadEdgeType::DualDataType
 
using EdgeCellListType = std::vector< EdgeCellType * >
 
using EdgeCellType = QuadEdgeMeshLineCell< CellType >
 
using FaceRefType = typename QuadEdgeType::DualOriginRefType
 
using MultiVisitor = typename CellType::MultiVisitor
 
using PointIdConstIterator = typename CellTraits::PointIdConstIterator
 
using PointIdInternalConstIterator = typename CellTraits::PointIdInternalConstIterator
 
using PointIdInternalIterator = typename CellTraits::PointIdInternalIterator
 
using PointIdIterator = typename CellTraits::PointIdIterator
 
using PrimalDataType = typename QuadEdgeType::PrimalDataType
 
using QEDual = typename QuadEdgeType::DualType
 
using QuadEdgeType = typename CellTraits::QuadEdgeType
 
using RawPointer = Self *
 
using Self = QuadEdgeMeshPolygonCell
 
using SelfAutoPointer = AutoPointer< Self >
 
using Superclass = TCellInterface
 
using VertexRefType = typename QuadEdgeType::OriginRefType
 

Public Member Functions

void Accept (CellIdentifier cellId, MultiVisitor *mv) override
 
bool GetBoundaryFeature (int dimension, CellFeatureIdentifier cellId, CellAutoPointer &cell) override
 
unsigned int GetDimension () const override
 
const char * GetNameOfClass () const override
 
CellFeatureCount GetNumberOfBoundaryFeatures (int dimension) const override
 
unsigned int GetNumberOfPoints () const override
 
virtual PointIdentifier GetPointId (int localId) const
 
CellGeometryEnum GetType () const override
 
virtual PointIdInternalConstIterator InternalGetPointIds () const
 
virtual PointIdInternalIterator InternalPointIdsBegin ()
 
virtual PointIdInternalConstIterator InternalPointIdsBegin () const
 
virtual PointIdInternalIterator InternalPointIdsEnd ()
 
virtual PointIdInternalConstIterator InternalPointIdsEnd () const
 
virtual void InternalSetPointIds (PointIdInternalConstIterator first)
 
virtual void InternalSetPointIds (PointIdInternalConstIterator first, PointIdInternalConstIterator last)
 
SelfAutoPointer New ()
 
PointIdConstIterator PointIdsBegin () const override
 
PointIdIterator PointIdsBegin () override
 
PointIdConstIterator PointIdsEnd () const override
 
PointIdIterator PointIdsEnd () override
 
void SetPointId (int localId, PointIdentifier pId) override
 
void SetPointIds (PointIdConstIterator first) override
 
void SetPointIds (PointIdConstIterator first, PointIdConstIterator last) override
 
 QuadEdgeMeshPolygonCell (PointIdentifier nPoints=0)
 
 QuadEdgeMeshPolygonCell (QuadEdgeType *e)
 
 ~QuadEdgeMeshPolygonCell () override
 
void SetIdent (CellIdentifier cid)
 
CellIdentifier GetIdent ()
 
QuadEdgeTypeGetEdgeRingEntry () const
 
void SetEdgeRingEntry (QuadEdgeType *entry)
 
void MakeCopy (CellAutoPointer &cell) const override
 

Static Public Member Functions

static constexpr CellGeometryEnum GetTopologyId ()
 

Static Public Attributes

static constexpr unsigned int CellDimension = 2
 
static constexpr unsigned int PointDimension = Superclass::PointDimension
 

Protected Types

using PointIDListType = std::vector< PointIdentifier >
 

Protected Attributes

PointIDListType m_PointIds {}
 

Private Member Functions

void MakePointIds () const
 

Private Attributes

EdgeCellListType m_EdgeCellList {}
 
QuadEdgeTypem_EdgeRingEntry {}
 
CellIdentifier m_Ident {}
 

Member Typedef Documentation

◆ CellFeatureCount

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::CellFeatureCount = typename Superclass::CellFeatureIdentifier

Definition at line 66 of file itkQuadEdgeMeshPolygonCell.h.

◆ CellTraits

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::CellTraits = typename Superclass::CellTraits

Definition at line 60 of file itkQuadEdgeMeshPolygonCell.h.

◆ CellType

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::CellType = typename Superclass::CellType

Definition at line 55 of file itkQuadEdgeMeshPolygonCell.h.

◆ ConstRawPointer

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::ConstRawPointer = const Self *

Definition at line 50 of file itkQuadEdgeMeshPolygonCell.h.

◆ ConstSelfAutoPointer

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::ConstSelfAutoPointer = AutoPointer<const Self>

Definition at line 47 of file itkQuadEdgeMeshPolygonCell.h.

◆ DualDataType

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::DualDataType = typename QuadEdgeType::DualDataType

Definition at line 92 of file itkQuadEdgeMeshPolygonCell.h.

◆ EdgeCellListType

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::EdgeCellListType = std::vector<EdgeCellType *>

Definition at line 79 of file itkQuadEdgeMeshPolygonCell.h.

◆ EdgeCellType

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::EdgeCellType = QuadEdgeMeshLineCell<CellType>

Definition at line 78 of file itkQuadEdgeMeshPolygonCell.h.

◆ FaceRefType

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::FaceRefType = typename QuadEdgeType::DualOriginRefType

Definition at line 90 of file itkQuadEdgeMeshPolygonCell.h.

◆ MultiVisitor

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::MultiVisitor = typename CellType::MultiVisitor

Multivisitor type.

Definition at line 76 of file itkQuadEdgeMeshPolygonCell.h.

◆ PointIdConstIterator

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::PointIdConstIterator = typename CellTraits::PointIdConstIterator

Definition at line 83 of file itkQuadEdgeMeshPolygonCell.h.

◆ PointIdInternalConstIterator

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::PointIdInternalConstIterator = typename CellTraits::PointIdInternalConstIterator

Definition at line 85 of file itkQuadEdgeMeshPolygonCell.h.

◆ PointIdInternalIterator

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::PointIdInternalIterator = typename CellTraits::PointIdInternalIterator

Definition at line 84 of file itkQuadEdgeMeshPolygonCell.h.

◆ PointIdIterator

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::PointIdIterator = typename CellTraits::PointIdIterator

Definition at line 82 of file itkQuadEdgeMeshPolygonCell.h.

◆ PointIDListType

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::PointIDListType = std::vector<PointIdentifier>
protected

Definition at line 286 of file itkQuadEdgeMeshPolygonCell.h.

◆ PrimalDataType

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::PrimalDataType = typename QuadEdgeType::PrimalDataType

Definition at line 91 of file itkQuadEdgeMeshPolygonCell.h.

◆ QEDual

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::QEDual = typename QuadEdgeType::DualType

Definition at line 93 of file itkQuadEdgeMeshPolygonCell.h.

◆ QuadEdgeType

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::QuadEdgeType = typename CellTraits::QuadEdgeType

QE types.

Definition at line 88 of file itkQuadEdgeMeshPolygonCell.h.

◆ RawPointer

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::RawPointer = Self *

Definition at line 49 of file itkQuadEdgeMeshPolygonCell.h.

◆ Self

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::Self = QuadEdgeMeshPolygonCell

Standard class type aliases.

Definition at line 46 of file itkQuadEdgeMeshPolygonCell.h.

◆ SelfAutoPointer

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::SelfAutoPointer = AutoPointer<Self>

Definition at line 48 of file itkQuadEdgeMeshPolygonCell.h.

◆ Superclass

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::Superclass = TCellInterface

Definition at line 53 of file itkQuadEdgeMeshPolygonCell.h.

◆ VertexRefType

template<typename TCellInterface >
using itk::QuadEdgeMeshPolygonCell< TCellInterface >::VertexRefType = typename QuadEdgeType::OriginRefType

Definition at line 89 of file itkQuadEdgeMeshPolygonCell.h.

Constructor & Destructor Documentation

◆ QuadEdgeMeshPolygonCell() [1/2]

template<typename TCellInterface >
itk::QuadEdgeMeshPolygonCell< TCellInterface >::QuadEdgeMeshPolygonCell ( PointIdentifier  nPoints = 0)

Object memory management methods.

◆ QuadEdgeMeshPolygonCell() [2/2]

template<typename TCellInterface >
itk::QuadEdgeMeshPolygonCell< TCellInterface >::QuadEdgeMeshPolygonCell ( QuadEdgeType e)

Object memory management methods.

◆ ~QuadEdgeMeshPolygonCell()

template<typename TCellInterface >
itk::QuadEdgeMeshPolygonCell< TCellInterface >::~QuadEdgeMeshPolygonCell ( )
override

Object memory management methods.

Member Function Documentation

◆ Accept()

template<typename TCellInterface >
void itk::QuadEdgeMeshPolygonCell< TCellInterface >::Accept ( CellIdentifier  cellId,
MultiVisitor mv 
)
override

TCellInterface abstract methods definition.

◆ GetBoundaryFeature()

template<typename TCellInterface >
bool itk::QuadEdgeMeshPolygonCell< TCellInterface >::GetBoundaryFeature ( int  dimension,
CellFeatureIdentifier  cellId,
CellAutoPointer &  cell 
)
override

◆ GetDimension()

template<typename TCellInterface >
unsigned int itk::QuadEdgeMeshPolygonCell< TCellInterface >::GetDimension ( ) const
inlineoverride

Definition at line 153 of file itkQuadEdgeMeshPolygonCell.h.

◆ GetEdgeRingEntry()

template<typename TCellInterface >
QuadEdgeType * itk::QuadEdgeMeshPolygonCell< TCellInterface >::GetEdgeRingEntry ( ) const
inline

◆ GetIdent()

template<typename TCellInterface >
CellIdentifier itk::QuadEdgeMeshPolygonCell< TCellInterface >::GetIdent ( )
inline

Accessors for m_Ident.

Definition at line 112 of file itkQuadEdgeMeshPolygonCell.h.

◆ GetNameOfClass()

template<typename TCellInterface >
const char * itk::QuadEdgeMeshPolygonCell< TCellInterface >::GetNameOfClass ( ) const
override

◆ GetNumberOfBoundaryFeatures()

template<typename TCellInterface >
CellFeatureCount itk::QuadEdgeMeshPolygonCell< TCellInterface >::GetNumberOfBoundaryFeatures ( int  dimension) const
override

◆ GetNumberOfPoints()

template<typename TCellInterface >
unsigned int itk::QuadEdgeMeshPolygonCell< TCellInterface >::GetNumberOfPoints ( ) const
override

◆ GetPointId()

template<typename TCellInterface >
virtual PointIdentifier itk::QuadEdgeMeshPolygonCell< TCellInterface >::GetPointId ( int  localId) const
virtual

◆ GetTopologyId()

template<typename TCellInterface >
static constexpr CellGeometryEnum itk::QuadEdgeMeshPolygonCell< TCellInterface >::GetTopologyId ( )
inlinestaticconstexpr

itk topology related methods.

Definition at line 147 of file itkQuadEdgeMeshPolygonCell.h.

References itk::CommonEnums::POLYGON_CELL.

◆ GetType()

template<typename TCellInterface >
CellGeometryEnum itk::QuadEdgeMeshPolygonCell< TCellInterface >::GetType ( ) const
inlineoverride

Definition at line 140 of file itkQuadEdgeMeshPolygonCell.h.

References itk::CommonEnums::POLYGON_CELL.

◆ InternalGetPointIds()

template<typename TCellInterface >
virtual PointIdInternalConstIterator itk::QuadEdgeMeshPolygonCell< TCellInterface >::InternalGetPointIds ( ) const
virtual

◆ InternalPointIdsBegin() [1/2]

template<typename TCellInterface >
virtual PointIdInternalIterator itk::QuadEdgeMeshPolygonCell< TCellInterface >::InternalPointIdsBegin ( )
virtual

◆ InternalPointIdsBegin() [2/2]

template<typename TCellInterface >
virtual PointIdInternalConstIterator itk::QuadEdgeMeshPolygonCell< TCellInterface >::InternalPointIdsBegin ( ) const
virtual

◆ InternalPointIdsEnd() [1/2]

template<typename TCellInterface >
virtual PointIdInternalIterator itk::QuadEdgeMeshPolygonCell< TCellInterface >::InternalPointIdsEnd ( )
virtual

◆ InternalPointIdsEnd() [2/2]

template<typename TCellInterface >
virtual PointIdInternalConstIterator itk::QuadEdgeMeshPolygonCell< TCellInterface >::InternalPointIdsEnd ( ) const
virtual

◆ InternalSetPointIds() [1/2]

template<typename TCellInterface >
virtual void itk::QuadEdgeMeshPolygonCell< TCellInterface >::InternalSetPointIds ( PointIdInternalConstIterator  first)
virtual

QuadEdge internal flavor of cell API

◆ InternalSetPointIds() [2/2]

template<typename TCellInterface >
virtual void itk::QuadEdgeMeshPolygonCell< TCellInterface >::InternalSetPointIds ( PointIdInternalConstIterator  first,
PointIdInternalConstIterator  last 
)
virtual

◆ MakeCopy()

template<typename TCellInterface >
void itk::QuadEdgeMeshPolygonCell< TCellInterface >::MakeCopy ( CellAutoPointer &  cell) const
inlineoverride

Useless methods.

Definition at line 169 of file itkQuadEdgeMeshPolygonCell.h.

◆ MakePointIds()

template<typename TCellInterface >
void itk::QuadEdgeMeshPolygonCell< TCellInterface >::MakePointIds ( ) const
inlineprivate

Definition at line 291 of file itkQuadEdgeMeshPolygonCell.h.

◆ New()

template<typename TCellInterface >
SelfAutoPointer itk::QuadEdgeMeshPolygonCell< TCellInterface >::New ( )

Implement the standard CellInterface.

◆ PointIdsBegin() [1/2]

template<typename TCellInterface >
PointIdConstIterator itk::QuadEdgeMeshPolygonCell< TCellInterface >::PointIdsBegin ( ) const
inlineoverride

Definition at line 235 of file itkQuadEdgeMeshPolygonCell.h.

◆ PointIdsBegin() [2/2]

template<typename TCellInterface >
PointIdIterator itk::QuadEdgeMeshPolygonCell< TCellInterface >::PointIdsBegin ( )
inlineoverride

Definition at line 206 of file itkQuadEdgeMeshPolygonCell.h.

◆ PointIdsEnd() [1/2]

template<typename TCellInterface >
PointIdConstIterator itk::QuadEdgeMeshPolygonCell< TCellInterface >::PointIdsEnd ( ) const
inlineoverride

Definition at line 250 of file itkQuadEdgeMeshPolygonCell.h.

◆ PointIdsEnd() [2/2]

template<typename TCellInterface >
PointIdIterator itk::QuadEdgeMeshPolygonCell< TCellInterface >::PointIdsEnd ( )
inlineoverride

Definition at line 221 of file itkQuadEdgeMeshPolygonCell.h.

◆ SetEdgeRingEntry()

template<typename TCellInterface >
void itk::QuadEdgeMeshPolygonCell< TCellInterface >::SetEdgeRingEntry ( QuadEdgeType entry)
inline

Lnext ring entry accessors.

Definition at line 125 of file itkQuadEdgeMeshPolygonCell.h.

◆ SetIdent()

template<typename TCellInterface >
void itk::QuadEdgeMeshPolygonCell< TCellInterface >::SetIdent ( CellIdentifier  cid)
inline

Accessors for m_Ident.

Definition at line 107 of file itkQuadEdgeMeshPolygonCell.h.

◆ SetPointId()

template<typename TCellInterface >
void itk::QuadEdgeMeshPolygonCell< TCellInterface >::SetPointId ( int  localId,
PointIdentifier  pId 
)
override

◆ SetPointIds() [1/2]

template<typename TCellInterface >
void itk::QuadEdgeMeshPolygonCell< TCellInterface >::SetPointIds ( PointIdConstIterator  first)
override

ITK Cell API - Iterator-related methods.

◆ SetPointIds() [2/2]

template<typename TCellInterface >
void itk::QuadEdgeMeshPolygonCell< TCellInterface >::SetPointIds ( PointIdConstIterator  first,
PointIdConstIterator  last 
)
override

Member Data Documentation

◆ CellDimension

template<typename TCellInterface >
constexpr unsigned int itk::QuadEdgeMeshPolygonCell< TCellInterface >::CellDimension = 2
staticconstexpr

Definition at line 73 of file itkQuadEdgeMeshPolygonCell.h.

◆ m_EdgeCellList

template<typename TCellInterface >
EdgeCellListType itk::QuadEdgeMeshPolygonCell< TCellInterface >::m_EdgeCellList {}
private

List of EdgeCells created by the constructor for proper deletion

Definition at line 318 of file itkQuadEdgeMeshPolygonCell.h.

◆ m_EdgeRingEntry

template<typename TCellInterface >
QuadEdgeType* itk::QuadEdgeMeshPolygonCell< TCellInterface >::m_EdgeRingEntry {}
private

Entry point into the edge ring.

Definition at line 313 of file itkQuadEdgeMeshPolygonCell.h.

◆ m_Ident

template<typename TCellInterface >
CellIdentifier itk::QuadEdgeMeshPolygonCell< TCellInterface >::m_Ident {}
private

In order to have constant time access at the itk level instead of doing a search in the Mesh::Cell container.

Definition at line 308 of file itkQuadEdgeMeshPolygonCell.h.

◆ m_PointIds

template<typename TCellInterface >
PointIDListType itk::QuadEdgeMeshPolygonCell< TCellInterface >::m_PointIds {}
mutableprotected

Definition at line 287 of file itkQuadEdgeMeshPolygonCell.h.

◆ PointDimension

template<typename TCellInterface >
constexpr unsigned int itk::QuadEdgeMeshPolygonCell< TCellInterface >::PointDimension = Superclass::PointDimension
staticconstexpr

Definition at line 72 of file itkQuadEdgeMeshPolygonCell.h.


The documentation for this class was generated from the following file: