18 #ifndef itkQuadrilateralCell_h
19 #define itkQuadrilateralCell_h
38 template <
typename TCellInterface>
40 :
public TCellInterface
63 static constexpr
unsigned int NumberOfPoints = 4;
64 static constexpr
unsigned int NumberOfVertices = 4;
65 static constexpr
unsigned int NumberOfEdges = 4;
66 static constexpr
unsigned int CellDimension = 2;
67 static constexpr
unsigned int NumberOfDerivatives = 8;
76 MakeCopy(CellAutoPointer &)
const override;
80 GetDimension()
const override;
83 GetNumberOfPoints()
const override;
86 GetNumberOfBoundaryFeatures(
int dimension)
const override;
89 GetBoundaryFeature(
int dimension, CellFeatureIdentifier, CellAutoPointer &)
override;
91 SetPointIds(PointIdConstIterator first)
override;
94 SetPointIds(PointIdConstIterator first, PointIdConstIterator last)
override;
97 SetPointId(
int localId, PointIdentifier)
override;
99 PointIdsBegin()
override;
102 PointIdsBegin()
const override;
105 PointIdsEnd()
override;
108 PointIdsEnd()
const override;
111 virtual CellFeatureCount
112 GetNumberOfVertices()
const;
114 virtual CellFeatureCount
115 GetNumberOfEdges()
const;
118 GetVertex(CellFeatureIdentifier, VertexAutoPointer &);
120 GetEdge(CellFeatureIdentifier, EdgeAutoPointer &);
124 EvaluatePosition(CoordRepType * x,
125 PointsContainer * points,
126 CoordRepType * closestPoint,
127 CoordRepType[CellDimension],
129 InterpolationWeightType * weight)
override;
137 for (PointIdentifier i = 0; i < Self::NumberOfPoints; i++)
144 #if defined(__GNUC__)
152 ~QuadrilateralCell()
override =
default;
157 PointIdentifier m_PointIds[NumberOfPoints];
160 InterpolationDerivs(
const CoordRepType pointCoords[CellDimension], CoordRepType derivs[NumberOfDerivatives]);
162 InterpolationFunctions(
const CoordRepType pointCoords[CellDimension],
163 InterpolationWeightType weights[NumberOfPoints]);
165 EvaluateLocation(
int & itkNotUsed(subId),
166 const PointsContainer * points,
167 const CoordRepType pointCoords[PointDimension],
168 CoordRepType x[PointDimension],
169 InterpolationWeightType * weights);
173 #ifndef ITK_MANUAL_INSTANTIATION
174 # include "itkQuadrilateralCell.hxx"