18#ifndef itkQuadrilateralCell_h
19#define itkQuadrilateralCell_h
36template <
typename TCellInterface>
38 :
public TCellInterface
71 return CellGeometryEnum::QUADRILATERAL_CELL;
92 SetPointIds(PointIdConstIterator first, PointIdConstIterator last)
override;
109 virtual CellFeatureCount
112 virtual CellFeatureCount
123 PointsContainer * points,
124 CoordinateType * closestPoint,
127 InterpolationWeightType * weight)
override;
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"
Represents a line segment for a Mesh.
static constexpr T max(const T &)
QuadrilateralCellTopology()
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
static constexpr unsigned int NumberOfDerivatives
static constexpr unsigned int NumberOfPoints
bool EvaluatePosition(CoordinateType *x, PointsContainer *points, CoordinateType *closestPoint, CoordinateType[CellDimension], double *dist2, InterpolationWeightType *weight) override
bool GetBoundaryFeature(int dimension, CellFeatureIdentifier, CellAutoPointer &) override
void SetPointIds(PointIdConstIterator first) override
void SetPointIds(PointIdConstIterator first, PointIdConstIterator last) override
PointIdIterator PointIdsBegin() override
void EvaluateLocation(int &subId, const PointsContainer *points, const CoordinateType pointCoords[PointDimension], CoordinateType x[PointDimension], InterpolationWeightType *weights)
PointIdIterator PointIdsEnd() override
unsigned int GetDimension() const override
VertexCell< TCellInterface > VertexType
std::array< PointIdentifier, NumberOfPoints > m_PointIds
CellFeatureCount GetNumberOfBoundaryFeatures(int dimension) const override
LineCell< TCellInterface > EdgeType
void InterpolationDerivs(const CoordinateType pointCoords[CellDimension], CoordinateType derivs[NumberOfDerivatives])
PointIdConstIterator PointIdsEnd() const override
static constexpr unsigned int NumberOfVertices
virtual bool GetEdge(CellFeatureIdentifier, EdgeAutoPointer &)
static constexpr unsigned int CellDimension
QuadrilateralCell()=default
itkCellVisitMacro(CellGeometryEnum::QUADRILATERAL_CELL)
CellGeometryEnum GetType() const override
static constexpr unsigned int NumberOfEdges
virtual bool GetVertex(CellFeatureIdentifier, VertexAutoPointer &)
itkCellCommonTypedefs(QuadrilateralCell)
virtual CellFeatureCount GetNumberOfVertices() const
void InterpolationFunctions(const CoordinateType pointCoords[CellDimension], InterpolationWeightType weights[NumberOfPoints])
Represents a single vertex for a Mesh.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
constexpr TContainer MakeFilled(typename TContainer::const_reference value)
CommonEnums::CellGeometry CellGeometryEnum