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 * position,
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__) && (__GNUC__ > 5) || defined(__clang__)
152 PointIdentifier m_PointIds[NumberOfPoints];
155 InterpolationDerivs(
const CoordRepType pointCoords[CellDimension], CoordRepType derivs[NumberOfDerivatives]);
157 InterpolationFunctions(
const CoordRepType pointCoords[CellDimension],
158 InterpolationWeightType weights[NumberOfPoints]);
160 EvaluateLocation(
int & itkNotUsed(subId),
161 const PointsContainer * points,
162 const CoordRepType pointCoords[PointDimension],
163 CoordRepType x[PointDimension],
164 InterpolationWeightType * weights);
168 #ifndef ITK_MANUAL_INSTANTIATION
169 # include "itkQuadrilateralCell.hxx"