18 #ifndef itkQuadrilateralCell_h
19 #define itkQuadrilateralCell_h
36 template <
typename TCellInterface>
38 :
public TCellInterface
61 static constexpr
unsigned int NumberOfPoints = 4;
62 static constexpr
unsigned int NumberOfVertices = 4;
63 static constexpr
unsigned int NumberOfEdges = 4;
64 static constexpr
unsigned int CellDimension = 2;
65 static constexpr
unsigned int NumberOfDerivatives = 8;
74 MakeCopy(CellAutoPointer &)
const override;
78 GetDimension()
const override;
81 GetNumberOfPoints()
const override;
84 GetNumberOfBoundaryFeatures(
int dimension)
const override;
87 GetBoundaryFeature(
int dimension, CellFeatureIdentifier, CellAutoPointer &)
override;
89 SetPointIds(PointIdConstIterator first)
override;
92 SetPointIds(PointIdConstIterator first, PointIdConstIterator last)
override;
95 SetPointId(
int localId, PointIdentifier)
override;
97 PointIdsBegin()
override;
100 PointIdsBegin()
const override;
103 PointIdsEnd()
override;
106 PointIdsEnd()
const override;
109 virtual CellFeatureCount
110 GetNumberOfVertices()
const;
112 virtual CellFeatureCount
113 GetNumberOfEdges()
const;
116 GetVertex(CellFeatureIdentifier, VertexAutoPointer &);
118 GetEdge(CellFeatureIdentifier, EdgeAutoPointer &);
122 EvaluatePosition(CoordinateType * x,
123 PointsContainer * points,
124 CoordinateType * closestPoint,
125 CoordinateType[CellDimension],
127 InterpolationWeightType * weight)
override;
139 std::array<PointIdentifier, NumberOfPoints> m_PointIds{ MakeFilled<std::array<PointIdentifier, NumberOfPoints>>(
143 InterpolationDerivs(
const CoordinateType pointCoords[CellDimension], CoordinateType derivs[NumberOfDerivatives]);
145 InterpolationFunctions(
const CoordinateType pointCoords[CellDimension],
146 InterpolationWeightType weights[NumberOfPoints]);
148 EvaluateLocation(
int & itkNotUsed(subId),
149 const PointsContainer * points,
150 const CoordinateType pointCoords[PointDimension],
151 CoordinateType x[PointDimension],
152 InterpolationWeightType * weights);
156 #ifndef ITK_MANUAL_INSTANTIATION
157 # include "itkQuadrilateralCell.hxx"