31 #if defined(ImplicitPolynomial3Shape_RECURSES) 32 #error Recursive header files inclusion detected in ImplicitPolynomial3Shape.h 33 #else // defined(ImplicitPolynomial3Shape_RECURSES) 35 #define ImplicitPolynomial3Shape_RECURSES 37 #if !defined ImplicitPolynomial3Shape_h 39 #define ImplicitPolynomial3Shape_h 44 #include "DGtal/base/Common.h" 45 #include "DGtal/base/BasicFunctors.h" 46 #include "DGtal/base/CPredicate.h" 47 #include "DGtal/kernel/NumberTraits.h" 48 #include "DGtal/math/MPolynomial.h" 49 #include "DGtal/shapes/implicit/CImplicitFunction.h" 66 template <
typename TSpace >
108 void init(
const Polynomial3 & poly );
192 const double accuracy,
194 const double gamma )
const;
264 template <
typename T>
266 operator<< ( std::ostream & out, const ImplicitPolynomial3Shape<T> & object );
273 #include "DGtal/shapes/implicit/ImplicitPolynomial3Shape.ih" 278 #endif // !defined ImplicitPolynomial3Shape_h 280 #undef ImplicitPolynomial3Shape_RECURSES 281 #endif // else defined(ImplicitPolynomial3Shape_RECURSES)
static const Dimension dimension
static constants to store the dimension.
Polynomial3 myPolynomial
The 3-polynomial defining the implicit shape.
Component Coordinate
Type for Point elements.
BOOST_STATIC_ASSERT((Space::dimension==3))
RealPoint nearestPoint(const RealPoint &aPoint, const double accuracy, const int maxIter, const double gamma) const
RealPoint::Coordinate Ring
bool isInside(const RealPoint &aPoint) const
Aim: Implements basic operations that will be used in Point and Vector classes.
RealVector gradient(const RealPoint &aPoint) const
double gaussianCurvature(const RealPoint &aPoint) const
Polynomial3 myLowPolynome
void init(const Polynomial3 &poly)
Aim: model of CEuclideanOrientedShape concepts to create a shape from a polynomial.
double meanCurvature(const RealPoint &aPoint) const
TInteger Integer
Arithmetic ring induced by (+,-,*) and Integer numbers.
DGtal is the top-level namespace which contains all DGtal functions and types.
Space::RealVector RealVector
~ImplicitPolynomial3Shape()
MPolynomial< 3, Ring > Polynomial3
Space::RealPoint RealPoint
ImplicitPolynomial3Shape & operator=(const ImplicitPolynomial3Shape &other)
void selfDisplay(std::ostream &out) const
double operator()(const RealPoint &aPoint) const
void principalCurvatures(const RealPoint &aPoint, double &k1, double &k2) const
ImplicitPolynomial3Shape< TSpace > Self
Orientation orientation(const RealPoint &aPoint) const
ImplicitPolynomial3Shape()