18#ifndef itkQuadrilateralCell_h
19#define itkQuadrilateralCell_h
36template <
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;
92 SetPointIds(PointIdConstIterator first, PointIdConstIterator last)
override;
109 virtual CellFeatureCount
112 virtual CellFeatureCount
123 PointsContainer * points,
124 CoordRepType * closestPoint,
125 CoordRepType[CellDimension],
127 InterpolationWeightType * weight)
override;
139 std::array<PointIdentifier, NumberOfPoints> m_PointIds{ MakeFilled<std::array<PointIdentifier, NumberOfPoints>>(
143 InterpolationDerivs(
const CoordRepType pointCoords[CellDimension], CoordRepType derivs[NumberOfDerivatives]);
146 InterpolationWeightType weights[NumberOfPoints]);
149 const PointsContainer * points,
150 const CoordRepType pointCoords[PointDimension],
151 CoordRepType x[PointDimension],
152 InterpolationWeightType * weights);
156#ifndef ITK_MANUAL_INSTANTIATION
157# 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....