18#ifndef itkQuadrilateralCell_h
19#define itkQuadrilateralCell_h
41template <
typename TCellInterface>
43 :
public TCellInterface
66 static constexpr unsigned int NumberOfPoints = 4;
67 static constexpr unsigned int NumberOfVertices = 4;
68 static constexpr unsigned int NumberOfEdges = 4;
69 static constexpr unsigned int CellDimension = 2;
70 static constexpr unsigned int NumberOfDerivatives = 8;
97 SetPointIds(PointIdConstIterator first, PointIdConstIterator last)
override;
114 virtual CellFeatureCount
117 virtual CellFeatureCount
128 PointsContainer * points,
129 CoordRepType * closestPoint,
130 CoordRepType[CellDimension],
132 InterpolationWeightType * weight)
override;
153 std::array<PointIdentifier, NumberOfPoints> m_PointIds{ MakeFilled<std::array<PointIdentifier, NumberOfPoints>>(
157 InterpolationDerivs(
const CoordRepType pointCoords[CellDimension], CoordRepType derivs[NumberOfDerivatives]);
160 InterpolationWeightType weights[NumberOfPoints]);
163 const PointsContainer * points,
164 const CoordRepType pointCoords[PointDimension],
165 CoordRepType x[PointDimension],
166 InterpolationWeightType * weights);
170#ifndef ITK_MANUAL_INSTANTIATION
171# include "itkQuadrilateralCell.hxx"
Represents a line segment for a Mesh.
static constexpr T max(const T &)
Holds data defining the topological connections of the vertices and edges of a QuadrilateralCell.
Represents a quadrilateral for a Mesh.
void MakeCopy(CellAutoPointer &) const override
itkCellInheritedTypedefs(TCellInterface)
~QuadrilateralCell() override=default
virtual CellFeatureCount GetNumberOfEdges() const
typename EdgeType::SelfAutoPointer EdgeAutoPointer
unsigned int GetNumberOfPoints() const override
void SetPointId(int localId, PointIdentifier) override
PointIdConstIterator PointIdsBegin() const override
typename VertexType::SelfAutoPointer VertexAutoPointer
bool EvaluatePosition(CoordRepType *x, PointsContainer *points, CoordRepType *closestPoint, CoordRepType[CellDimension], double *dist2, InterpolationWeightType *weight) override
bool GetBoundaryFeature(int dimension, CellFeatureIdentifier, CellAutoPointer &) override
void SetPointIds(PointIdConstIterator first) override
void InterpolationDerivs(const CoordRepType pointCoords[CellDimension], CoordRepType derivs[NumberOfDerivatives])
void SetPointIds(PointIdConstIterator first, PointIdConstIterator last) override
PointIdIterator PointIdsBegin() override
PointIdIterator PointIdsEnd() override
unsigned int GetDimension() const override
void InterpolationFunctions(const CoordRepType pointCoords[CellDimension], InterpolationWeightType weights[NumberOfPoints])
CellFeatureCount GetNumberOfBoundaryFeatures(int dimension) const override
PointIdConstIterator PointIdsEnd() const override
virtual bool GetEdge(CellFeatureIdentifier, EdgeAutoPointer &)
QuadrilateralCell()=default
itkCellVisitMacro(CellGeometryEnum::QUADRILATERAL_CELL)
CellGeometryEnum GetType() const override
virtual bool GetVertex(CellFeatureIdentifier, VertexAutoPointer &)
void EvaluateLocation(int &, const PointsContainer *points, const CoordRepType pointCoords[PointDimension], CoordRepType x[PointDimension], InterpolationWeightType *weights)
itkCellCommonTypedefs(QuadrilateralCell)
virtual CellFeatureCount GetNumberOfVertices() const
Represents a single vertex for a Mesh.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....