DGtal
0.6.devel
|
#include <ImplicitPolynomial3Shape.h>
Public Types | |
typedef ImplicitPolynomial3Shape < TSpace > | Self |
typedef TSpace | Space |
typedef Space::RealPoint | RealPoint |
typedef Space::RealVector | RealVector |
typedef RealPoint::Coordinate | Ring |
typedef Space::Integer | Integer |
typedef MPolynomial< 3, Ring > | Polynomial3 |
typedef Ring | Value |
Public Member Functions | |
BOOST_STATIC_ASSERT ((Space::dimension==3)) | |
ImplicitPolynomial3Shape (const Polynomial3 &poly) | |
ImplicitPolynomial3Shape & | operator= (const ImplicitPolynomial3Shape &other) |
~ImplicitPolynomial3Shape () | |
void | init (const Polynomial3 &poly) |
double | operator() (const RealPoint &aPoint) const |
bool | isInside (const RealPoint &aPoint) const |
Orientation | orientation (const RealPoint &aPoint) const |
RealVector | gradient (const RealPoint &aPoint) const |
double | meanCurvature (const RealPoint &aPoint) const |
double | gaussianCurvature (const RealPoint &aPoint) const |
RealPoint | nearestPoint (const RealPoint &aPoint, const double accuracy, const int maxIter, const double gamma) const |
void | selfDisplay (std::ostream &out) const |
bool | isValid () const |
Protected Member Functions | |
ImplicitPolynomial3Shape () |
Aim: model of CEuclideanOrientedShape concepts to create a shape from a polynomial.
Description of template class 'ImplicitPolynomial3Shape'
Model of CImplicitFunction
TSpace | the Digital space definition. |
Definition at line 67 of file ImplicitPolynomial3Shape.h.
typedef Space::Integer DGtal::ImplicitPolynomial3Shape< TSpace >::Integer |
Definition at line 76 of file ImplicitPolynomial3Shape.h.
typedef MPolynomial< 3, Ring > DGtal::ImplicitPolynomial3Shape< TSpace >::Polynomial3 |
Definition at line 77 of file ImplicitPolynomial3Shape.h.
typedef Space::RealPoint DGtal::ImplicitPolynomial3Shape< TSpace >::RealPoint |
Definition at line 73 of file ImplicitPolynomial3Shape.h.
typedef Space::RealVector DGtal::ImplicitPolynomial3Shape< TSpace >::RealVector |
Definition at line 74 of file ImplicitPolynomial3Shape.h.
typedef RealPoint::Coordinate DGtal::ImplicitPolynomial3Shape< TSpace >::Ring |
Definition at line 75 of file ImplicitPolynomial3Shape.h.
typedef ImplicitPolynomial3Shape<TSpace> DGtal::ImplicitPolynomial3Shape< TSpace >::Self |
Definition at line 71 of file ImplicitPolynomial3Shape.h.
typedef TSpace DGtal::ImplicitPolynomial3Shape< TSpace >::Space |
Definition at line 72 of file ImplicitPolynomial3Shape.h.
typedef Ring DGtal::ImplicitPolynomial3Shape< TSpace >::Value |
Definition at line 78 of file ImplicitPolynomial3Shape.h.
|
inline |
Constructor from an arbitrary polynomial.
poly | any multivariate polynomial (the number of variables is the dimension of the space) |
Definition at line 51 of file ImplicitPolynomial3Shape.ih.
|
inline |
|
protected |
Constructor. Forbidden by default (protected to avoid g++ warnings).
DGtal::ImplicitPolynomial3Shape< TSpace >::BOOST_STATIC_ASSERT | ( | (Space::dimension==3) | ) |
|
inline |
Gaussian curvature estimation at aPoint
aPoint | any point in the Euclidean space. |
Definition at line 200 of file ImplicitPolynomial3Shape.ih.
|
inline |
aPoint | any point in the Euclidean space. |
Definition at line 154 of file ImplicitPolynomial3Shape.ih.
|
inline |
Initialize from an arbitrary polynomial.
poly | any multivariate polynomial (the number of variables is the dimension of the space) |
Definition at line 89 of file ImplicitPolynomial3Shape.ih.
|
inline |
aPoint | any point in the Euclidean space. |
Definition at line 130 of file ImplicitPolynomial3Shape.ih.
|
inline |
Checks the validity/consistency of the object.
Definition at line 298 of file ImplicitPolynomial3Shape.ih.
|
inline |
Mean curvature estimation. This computation is based on the hessian formula of the mean curvature k=(∇F ∗ H (F ) ∗ ∇F T − |∇F |^2 *Trace(H (F ))/2|∇F |^3
aPoint | any point in the Euclidean space. |
aPoint | any point in the Euclidean space. This computation is based on the hessian formula of the mean curvature k=-(∇F ∗ H (F ) ∗ ∇F T − |∇F |^2 *Trace(H (F ))/2|∇F |^3 we define it as positive for a sphere |
Definition at line 182 of file ImplicitPolynomial3Shape.ih.
|
inline |
Perform a gradient descent in order to move a point aPoint closer to the implicit surface. More precisely, we use a sequence: x_n = x_(n-1) - gamma.gradient(x_(n-1). The descent is stopped if maxIter is reached or if |x_n - x_(n-1)| < accuracy.
aPoint | any point in the Euclidean space. |
accuracy | distance criterion to stop the descent. |
maxIter | fixes the maximum number of steps. |
gamma | coefficient associated with the gradient. |
aPoint | any point in the Euclidean space. |
accuracy | refers to the precision |
maxIter | refers to the maximum iterations the fonction user authorises |
gamma | refers to the step This function is very useful for mean and gaussian curvature computation (If the set step is big) .For a small one ( <0.5) it's less usefull |
Definition at line 249 of file ImplicitPolynomial3Shape.ih.
|
inline |
aPoint | any point in the Euclidean space. |
Definition at line 121 of file ImplicitPolynomial3Shape.ih.
|
inline |
Assignment.
other | the object to copy. |
Definition at line 60 of file ImplicitPolynomial3Shape.ih.
References DGtal::ImplicitPolynomial3Shape< TSpace >::myFx, DGtal::ImplicitPolynomial3Shape< TSpace >::myFxx, DGtal::ImplicitPolynomial3Shape< TSpace >::myFxy, DGtal::ImplicitPolynomial3Shape< TSpace >::myFxz, DGtal::ImplicitPolynomial3Shape< TSpace >::myFy, DGtal::ImplicitPolynomial3Shape< TSpace >::myFyx, DGtal::ImplicitPolynomial3Shape< TSpace >::myFyy, DGtal::ImplicitPolynomial3Shape< TSpace >::myFyz, DGtal::ImplicitPolynomial3Shape< TSpace >::myFz, DGtal::ImplicitPolynomial3Shape< TSpace >::myFzx, DGtal::ImplicitPolynomial3Shape< TSpace >::myFzy, DGtal::ImplicitPolynomial3Shape< TSpace >::myFzz, and DGtal::ImplicitPolynomial3Shape< TSpace >::myPolynomial.
|
inline |
aPoint | any point in the Euclidean space. |
Definition at line 139 of file ImplicitPolynomial3Shape.ih.
References DGtal::INSIDE, DGtal::ON, and DGtal::OUTSIDE.
|
inline |
Writes/Displays the object on an output stream.
out | the output stream where the object is written. |
Definition at line 286 of file ImplicitPolynomial3Shape.ih.
|
private |
Definition at line 210 of file ImplicitPolynomial3Shape.h.
Referenced by DGtal::ImplicitPolynomial3Shape< TSpace >::operator=().
|
private |
Definition at line 214 of file ImplicitPolynomial3Shape.h.
Referenced by DGtal::ImplicitPolynomial3Shape< TSpace >::operator=().
|
private |
Definition at line 215 of file ImplicitPolynomial3Shape.h.
Referenced by DGtal::ImplicitPolynomial3Shape< TSpace >::operator=().
|
private |
Definition at line 216 of file ImplicitPolynomial3Shape.h.
Referenced by DGtal::ImplicitPolynomial3Shape< TSpace >::operator=().
|
private |
Definition at line 211 of file ImplicitPolynomial3Shape.h.
Referenced by DGtal::ImplicitPolynomial3Shape< TSpace >::operator=().
|
private |
Definition at line 218 of file ImplicitPolynomial3Shape.h.
Referenced by DGtal::ImplicitPolynomial3Shape< TSpace >::operator=().
|
private |
Definition at line 219 of file ImplicitPolynomial3Shape.h.
Referenced by DGtal::ImplicitPolynomial3Shape< TSpace >::operator=().
|
private |
Definition at line 220 of file ImplicitPolynomial3Shape.h.
Referenced by DGtal::ImplicitPolynomial3Shape< TSpace >::operator=().
|
private |
Definition at line 212 of file ImplicitPolynomial3Shape.h.
Referenced by DGtal::ImplicitPolynomial3Shape< TSpace >::operator=().
|
private |
Definition at line 222 of file ImplicitPolynomial3Shape.h.
Referenced by DGtal::ImplicitPolynomial3Shape< TSpace >::operator=().
|
private |
Definition at line 223 of file ImplicitPolynomial3Shape.h.
Referenced by DGtal::ImplicitPolynomial3Shape< TSpace >::operator=().
|
private |
Definition at line 224 of file ImplicitPolynomial3Shape.h.
Referenced by DGtal::ImplicitPolynomial3Shape< TSpace >::operator=().
|
private |
Definition at line 229 of file ImplicitPolynomial3Shape.h.
|
private |
The 3-polynomial defining the implicit shape.
Definition at line 207 of file ImplicitPolynomial3Shape.h.
Referenced by DGtal::ImplicitPolynomial3Shape< TSpace >::operator=().
|
private |
Definition at line 228 of file ImplicitPolynomial3Shape.h.