|
ITK
6.0.0
Insight Toolkit
|
Go to the documentation of this file.
18 #ifndef itkQuadEdgeMeshDecimationQuadricElementHelper_h
19 #define itkQuadEdgeMeshDecimationQuadricElementHelper_h
22 #include "vnl/vnl_vector_fixed.h"
23 #include "vnl/vnl_matrix.h"
24 #include "vnl/algo/vnl_matrix_inverse.h"
31 template <
typename TPo
int>
37 using CoordType =
typename PointType::CoordinateType;
44 using VNLVectorType = vnl_vector_fixed<CoordType, Self::PointDimension>;
105 const CoordType oError = inner_product(iP.GetVnlVector(), svd.recompose() * iP.GetVnlVector());
154 const auto y = (
m_B.as_vector() -
m_A * iP.GetVnlVector());
161 oP[dim] = iP[dim] + displacement[dim];
175 const CoordType & iWeight = static_cast<CoordType>(1.))
186 const CoordType d = -iN * iP.GetVectorFromOrigin();
Self & operator*=(const CoordType &iV)
CoordType m_SVDRelativeThreshold
CoefficientVectorType GetCoefficients() const
PointType ComputeOptimalLocation(const PointType &iP)
CoordType m_SVDAbsoluteThreshold
Self operator-(const Self &iRight) const
ImageBaseType::SpacingType VectorType
PointType ComputeOptimalLocation(const unsigned int)
TODO to be implemented!!!
A convenience class for computation of various triangle elements in 2D or 3D.
Self & operator+=(const Self &iRight)
typename PointType::VectorType VectorType
CoordType ComputeErrorAtOptimalLocation(const PointType &iP)
TODO this method should be really optimized!!!
CoefficientVectorType m_Coefficients
VNLMatrixType GetAMatrix()
static constexpr unsigned int PointDimension
vnl_vector_fixed< CoordType, Self::NumberOfCoefficients > CoefficientVectorType
void AddTriangle(const PointType &iP1, const PointType &iP2, const PointType &iP3, const CoordType &iWeight=static_cast< CoordType >(1.))
Self operator+(const Self &iRight) const
Self & operator-=(const Self &iRight)
CoordType ComputeError(const PointType &iP) const
TODO this method should be really optimized!!!
typename PointType::CoordinateType CoordType
QuadEdgeMeshDecimationQuadricElementHelper()
Self operator*(const CoordType &iV) const
QuadEdgeMeshDecimationQuadricElementHelper Self
void AddPoint(const PointType &iP, const VectorType &iN, const CoordType &iWeight=static_cast< CoordType >(1.))
VNLVectorType GetBVector()
QuadEdgeMeshDecimationQuadricElementHelper(const CoefficientVectorType &iCoefficients)
static VectorType ComputeNormal(const PointType &iA, const PointType &iB, const PointType &iC)
Compute Normal vector to the triangle formed by (iA,iB,iC)
~QuadEdgeMeshDecimationQuadricElementHelper()=default
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
vnl_vector_fixed< CoordType, Self::PointDimension > VNLVectorType
void ComputeAMatrixAndBVector()
TODO explicit specification for VDimension=3!!!
static constexpr unsigned int NumberOfCoefficients
Self & operator=(const Self &iRight)
unsigned int GetRank() const
static constexpr double e
vnl_matrix< CoordType > VNLMatrixType