31 #if defined(ImplicitPolynomial3Shape_RECURSES)
32 #error Recursive header files inclusion detected in ImplicitPolynomial3Shape.h
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 >
182 double & k1,
double & k2 )
const;
215 const double accuracy = 0.0001,
216 const int maxIter = 20,
217 const double gamma = 0.5 )
const;
287 template <
typename T>
296 #include "DGtal/shapes/implicit/ImplicitPolynomial3Shape.ih"
303 #undef ImplicitPolynomial3Shape_RECURSES
Aim: model of CEuclideanOrientedShape concepts to create a shape from a polynomial.
RealVector gradient(const RealPoint &aPoint) const
ImplicitPolynomial3Shape(const Polynomial3 &poly)
Orientation orientation(const RealPoint &aPoint) const
Space::RealPoint RealPoint
BOOST_STATIC_ASSERT((Space::dimension==3))
void selfDisplay(std::ostream &out) const
ImplicitPolynomial3Shape< TSpace > Self
double gaussianCurvature(const RealPoint &aPoint) const
double meanCurvature(const RealPoint &aPoint) const
Space::RealVector RealVector
MPolynomial< 3, Ring > Polynomial3
void principalCurvatures(const RealPoint &aPoint, double &k1, double &k2) const
bool isInside(const RealPoint &aPoint) const
double operator()(const RealPoint &aPoint) const
Polynomial3 myPolynomial
The 3-polynomial defining the implicit shape.
RealPoint nearestPoint(const RealPoint &aPoint, const double accuracy=0.0001, const int maxIter=20, const double gamma=0.5) const
~ImplicitPolynomial3Shape()
RealPoint::Coordinate Ring
void principalDirections(const RealPoint &aPoint, RealVector &d1, RealVector &d2) const
ImplicitPolynomial3Shape & operator=(const ImplicitPolynomial3Shape &other)
Polynomial3 myLowPolynome
ImplicitPolynomial3Shape()
void init(const Polynomial3 &poly)
Aim: Implements basic operations that will be used in Point and Vector classes.
Component Coordinate
Type for Point elements.
TInteger Integer
Arithmetic ring induced by (+,-,*) and Integer numbers.
DGtal is the top-level namespace which contains all DGtal functions and types.
std::ostream & operator<<(std::ostream &out, const ATu0v1< TKSpace, TLinearAlgebra > &object)