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
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::RealPoint RealPoint
void principalCurvatures(const RealPoint &aPoint, double &k1, double &k2) const
bool isInside(const RealPoint &aPoint) const
RealPoint::Coordinate Ring
double operator()(const RealPoint &aPoint) const
Polynomial3 myPolynomial
The 3-polynomial defining the implicit shape.
ImplicitPolynomial3Shape & operator=(const ImplicitPolynomial3Shape &other)
RealPoint nearestPoint(const RealPoint &aPoint, const double accuracy=0.0001, const int maxIter=20, const double gamma=0.5) const
MPolynomial< 3, Ring > Polynomial3
~ImplicitPolynomial3Shape()
Space::RealVector RealVector
void principalDirections(const RealPoint &aPoint, RealVector &d1, RealVector &d2) const
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.
static const Dimension dimension
static constants to store the dimension.
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 ClosedIntegerHalfPlane< TSpace > &object)