18 #ifndef itkQuadrilateralCell_h
19 #define itkQuadrilateralCell_h
38 template<
typename TCellInterface >
59 itkStaticConstMacro(NumberOfPoints,
unsigned int, 4);
60 itkStaticConstMacro(NumberOfVertices,
unsigned int, 4);
61 itkStaticConstMacro(NumberOfEdges,
unsigned int, 4);
62 itkStaticConstMacro(CellDimension,
unsigned int, 2);
63 itkStaticConstMacro(NumberOfDerivatives,
unsigned int, 8);
67 virtual CellGeometry
GetType(
void) const ITK_OVERRIDE
68 {
return Superclass::QUADRILATERAL_CELL; }
69 virtual void MakeCopy(CellAutoPointer &) const ITK_OVERRIDE;
72 virtual
unsigned int GetDimension(
void) const ITK_OVERRIDE;
74 virtual
unsigned int GetNumberOfPoints(
void) const ITK_OVERRIDE;
76 virtual CellFeatureCount GetNumberOfBoundaryFeatures(
int dimension) const ITK_OVERRIDE;
78 virtual
bool GetBoundaryFeature(
int dimension, CellFeatureIdentifier, CellAutoPointer &) ITK_OVERRIDE;
79 virtual
void SetPointIds(PointIdConstIterator first) ITK_OVERRIDE;
81 virtual
void SetPointIds(PointIdConstIterator first,
82 PointIdConstIterator last) ITK_OVERRIDE;
84 virtual
void SetPointId(
int localId, PointIdentifier) ITK_OVERRIDE;
85 virtual PointIdIterator PointIdsBegin(
void) ITK_OVERRIDE;
87 virtual PointIdConstIterator PointIdsBegin(
void) const ITK_OVERRIDE;
89 virtual PointIdIterator PointIdsEnd(
void) ITK_OVERRIDE;
91 virtual PointIdConstIterator PointIdsEnd(
void) const ITK_OVERRIDE;
94 virtual CellFeatureCount GetNumberOfVertices() const;
96 virtual CellFeatureCount GetNumberOfEdges() const;
98 virtual
bool GetVertex(CellFeatureIdentifier, VertexAutoPointer &);
99 virtual
bool GetEdge(CellFeatureIdentifier, EdgeAutoPointer &);
102 virtual
bool EvaluatePosition(CoordRepType * position,
103 PointsContainer * points,
104 CoordRepType * closestPoint,
105 CoordRepType[CellDimension],
107 InterpolationWeightType * weight) ITK_OVERRIDE;
115 for ( PointIdentifier i = 0; i < itkGetStaticConstMacro(NumberOfPoints); i++ )
126 PointIdentifier m_PointIds[NumberOfPoints];
128 void InterpolationDerivs(
const CoordRepType pointCoords[CellDimension], CoordRepType derivs[NumberOfDerivatives]);
129 void InterpolationFunctions(
const CoordRepType pointCoords[CellDimension], InterpolationWeightType weights[NumberOfPoints]);
130 void EvaluateLocation(
int &itkNotUsed(subId),
const PointsContainer * points,
const CoordRepType pointCoords[PointDimension],
131 CoordRepType x[PointDimension], InterpolationWeightType * weights);
138 #ifndef ITK_MANUAL_INSTANTIATION
139 #include "itkQuadrilateralCell.hxx"
Represents a line segment for a Mesh.
VertexType::SelfAutoPointer VertexAutoPointer
Holds data defining the topological connections of the vertices and edges of a QuadrilateralCell.
An abstract interface for cells.
static ITK_CONSTEXPR_FUNC T max(const T &)
#define itkCellCommonTypedefs(celltype)
EdgeType::SelfAutoPointer EdgeAutoPointer
LineCell< TCellInterface > EdgeType
~QuadrilateralCell() override
Represents a single vertex for a Mesh.
virtual CellGeometry GetType(void) const override
#define itkCellVisitMacro(TopologyId)
Represents a quadrilateral for a Mesh.
VertexCell< TCellInterface > VertexType
#define itkCellInheritedTypedefs(superclassArg)