DGtal 1.3.0
|
Aim: A class that contains the chord-based algorithm for recognizing pieces of digital planes of given axis width [ Gerard, Debled-Rennesson, Zimmermann, 2005 ]. When the width is 1, it corresponds to naive planes. The axis is specified at initialization of the object. More...
#include <DGtal/geometry/surfaces/ChordNaivePlaneComputer.h>
Data Structures | |
struct | State |
Public Types | |
typedef TSpace | Space |
typedef TInputPoint | InputPoint |
typedef TInternalScalar | InternalScalar |
typedef InputPoint | InputVector |
typedef InputVector::Component | Component |
typedef InputPoint::Coordinate | Coordinate |
typedef PointVector< 3, InternalScalar > | InternalVector |
typedef std::set< InputPoint > | InputPointSet |
typedef InputPointSet::size_type | Size |
typedef InputPointSet::const_iterator | ConstIterator |
typedef InputPointSet::iterator | Iterator |
typedef Space::Point | Point |
typedef ParallelStrip< Space, true, true > | Primitive |
typedef InputPointSet::const_iterator | const_iterator |
typedef InputPointSet::const_pointer | const_pointer |
typedef InputPointSet::const_reference | const_reference |
typedef InputPointSet::value_type | value_type |
typedef InputPointSet::difference_type | difference_type |
typedef InputPointSet::size_type | size_type |
Public Member Functions | |
~ChordNaivePlaneComputer () | |
ChordNaivePlaneComputer () | |
ChordNaivePlaneComputer (const ChordNaivePlaneComputer &other) | |
ChordNaivePlaneComputer & | operator= (const ChordNaivePlaneComputer &other) |
void | clear () |
void | init (Dimension axis, InternalScalar widthNumerator=NumberTraits< InternalScalar >::ONE, InternalScalar widthDenominator=NumberTraits< InternalScalar >::ONE) |
Size | size () const |
bool | empty () const |
ConstIterator | begin () const |
ConstIterator | end () const |
Size | max_size () const |
Size | maxSize () const |
bool | operator() (const Point &p) const |
bool | extendAsIs (const InputPoint &p) |
bool | extend (const InputPoint &p) |
bool | isExtendable (const InputPoint &p) const |
template<typename TInputIterator > | |
bool | extend (TInputIterator itB, TInputIterator itE) |
template<typename TInputIterator > | |
bool | isExtendable (TInputIterator itB, TInputIterator itE) const |
template<typename TInputIterator > | |
bool | satisfies (TInputIterator itB, TInputIterator itE) const |
template<typename TInputIterator > | |
std::pair< InternalScalar, InternalScalar > | axisWidth (TInputIterator itB, TInputIterator itE) const |
Primitive | primitive () const |
template<typename Vector3D > | |
void | getNormal (Vector3D &normal) const |
const InternalVector & | exactNormal () const |
template<typename Vector3D > | |
void | getUnitNormal (Vector3D &normal) const |
void | getBounds (double &min, double &max) const |
const InputPoint & | minimalPoint () const |
const InputPoint & | maximalPoint () const |
void | selfDisplay (std::ostream &out) const |
bool | isValid () const |
Static Public Member Functions | |
template<typename TInputIterator > | |
static std::pair< InternalScalar, InternalScalar > | computeAxisWidth (Dimension axis, TInputIterator itB, TInputIterator itE) |
template<typename TVector1 , typename TVector2 > | |
static InternalScalar | internalDot (const TVector1 &u, const TVector2 &v) |
template<typename TVector1 , typename TVector2 > | |
static void | internalCross (InternalVector &n, const TVector1 &u, const TVector2 &v) |
Private Member Functions | |
BOOST_CONCEPT_ASSERT ((concepts::CSpace< TSpace >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CSignedNumber< TInternalScalar >)) | |
BOOST_STATIC_ASSERT ((TSpace::dimension==3)) | |
BOOST_STATIC_ASSERT ((TInputPoint::dimension==3)) | |
template<typename TInputIterator > | |
void | computeMinMax (State &state, TInputIterator itB, TInputIterator itE) const |
template<typename TInputIterator > | |
bool | updateMinMax (State &state, TInputIterator itB, TInputIterator itE) const |
bool | checkPlaneWidth (const State &state) const |
bool | setUp1 (const InputPoint &p1) |
void | setUpNormal (State &state) const |
void | setUpNormal1 (State &state) const |
void | setUpNormal2 (State &state) const |
void | setUpNormal3 (State &state) const |
int | signDelta (const InputPoint &A, const InputPoint &B, const InputPoint &C) const |
int | signDelta (const InputPoint &A, const InputPoint &C) const |
bool | newCurrentTriangle (State &state, const InputPoint &M) const |
template<typename TInputIterator > | |
unsigned int | findTriangle (State &state, TInputIterator itB, TInputIterator itE) const |
template<typename TInputIterator > | |
unsigned int | findTriangle1 (State &state, TInputIterator itB, TInputIterator itE) const |
template<typename TInputIterator > | |
unsigned int | findTriangle2 (State &state, TInputIterator itB, TInputIterator itE) const |
template<typename TInputIterator1 , typename TInputIterator2 > | |
unsigned int | findMixedTriangle (State &state, TInputIterator1 itB1, TInputIterator1 itE1, TInputIterator2 itB2, TInputIterator2 itE2) const |
bool | alignedAlongAxis (const InputPoint &p1, const InputPoint &p2) const |
void | computeHeight (State &state) const |
void | computeNormal (State &state) const |
template<typename TInputIterator > | |
bool | satisfies (State &state, TInputIterator itB, TInputIterator itE) const |
template<typename TInputIterator > | |
std::pair< InternalScalar, InternalScalar > | axisWidth (State &state, TInputIterator itB, TInputIterator itE) const |
bool | checkWidth (const State &state) const |
void | selfDisplay (std::ostream &out, const State &state) const |
Private Attributes | |
Dimension | z |
Dimension | x |
Dimension | y |
InternalScalar | myWidth0 |
InternalScalar | myWidth1 |
InputPointSet | myPointSet |
State | myState |
State | _state |
InternalScalar | _d |
Aim: A class that contains the chord-based algorithm for recognizing pieces of digital planes of given axis width [ Gerard, Debled-Rennesson, Zimmermann, 2005 ]. When the width is 1, it corresponds to naive planes. The axis is specified at initialization of the object.
Description of template class 'ChordNaivePlaneComputer'.
This class is an implementation of Gerard, Debled-Rennesson, Zimmermann, 2005: An elementary digital plane recognition algorithm, [57].
As a (3D) geometric primitive computer, it obeys the concept CAdditivePrimitiveComputer. It is copy constructible, assignable. It has methods extend(), extend( InputIterator,
InputIterator) and isExtendable(), isExtendable(InputIterator, InputIterator). The object stores all the distinct points p
such that 'extend(p
)' was successful. It is thus a model of boost::ForwardContainer (non mutable). It is iterable (inner type ConstIterator, begin(), end()). You may clear() it.
It is also a model of concepts::CPointPredicate (returns 'true' iff a point is within the current bounds).
We discuss only this question between ChordNaivePlaneComputer (1) and COBANaivePlaneComputer (2) (see also Comparative evaluation of COBA and Chord algorithm):
A small example to show how to check if some points form a subset of a naive plane.
Model of boost::DefaultConstructible, boost::CopyConstructible, boost::Assignable, boost::ForwardContainer, concepts::CAdditivePrimitiveComputer, concepts::CPointPredicate.
TSpace | specifies the digital space (provides dimension and types for the primitive) |
TInputPoint | specifies the type of the input points (digital or not). Usually, you may choose TInputPoint = TSpace::Point, but this is not compulsory. You may for instance wish to manipulate floating-point value points. This is possible, but you have to choose the type TInternalScalar accordingly. |
TInternalScalar | specifies the type of scalar used in internal computations, generally a more precise type than TInputPoint::Component. For instance, for digital points, the type should be able to hold integers of order \((2*D)^2\) if D is the diameter of the set of digital points. |
Definition at line 157 of file ChordNaivePlaneComputer.h.
typedef InputVector::Component DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::Component |
Definition at line 171 of file ChordNaivePlaneComputer.h.
typedef InputPointSet::const_iterator DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::const_iterator |
Definition at line 184 of file ChordNaivePlaneComputer.h.
typedef InputPointSet::const_pointer DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::const_pointer |
Definition at line 185 of file ChordNaivePlaneComputer.h.
typedef InputPointSet::const_reference DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::const_reference |
Definition at line 186 of file ChordNaivePlaneComputer.h.
typedef InputPointSet::const_iterator DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::ConstIterator |
Definition at line 177 of file ChordNaivePlaneComputer.h.
typedef InputPoint::Coordinate DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::Coordinate |
Definition at line 172 of file ChordNaivePlaneComputer.h.
typedef InputPointSet::difference_type DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::difference_type |
Definition at line 188 of file ChordNaivePlaneComputer.h.
typedef TInputPoint DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::InputPoint |
Definition at line 168 of file ChordNaivePlaneComputer.h.
typedef std::set< InputPoint > DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::InputPointSet |
Definition at line 175 of file ChordNaivePlaneComputer.h.
typedef InputPoint DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::InputVector |
Definition at line 170 of file ChordNaivePlaneComputer.h.
typedef TInternalScalar DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::InternalScalar |
Definition at line 169 of file ChordNaivePlaneComputer.h.
typedef PointVector<3,InternalScalar> DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::InternalVector |
Definition at line 173 of file ChordNaivePlaneComputer.h.
typedef InputPointSet::iterator DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::Iterator |
Definition at line 178 of file ChordNaivePlaneComputer.h.
typedef Space::Point DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::Point |
Definition at line 179 of file ChordNaivePlaneComputer.h.
typedef ParallelStrip<Space,true,true> DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::Primitive |
Definition at line 180 of file ChordNaivePlaneComputer.h.
typedef InputPointSet::size_type DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::Size |
Definition at line 176 of file ChordNaivePlaneComputer.h.
typedef InputPointSet::size_type DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::size_type |
Definition at line 189 of file ChordNaivePlaneComputer.h.
typedef TSpace DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::Space |
Definition at line 167 of file ChordNaivePlaneComputer.h.
typedef InputPointSet::value_type DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::value_type |
Definition at line 187 of file ChordNaivePlaneComputer.h.
DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::~ChordNaivePlaneComputer | ( | ) |
Destructor.
DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::ChordNaivePlaneComputer | ( | ) |
Constructor. The object is not valid and should be initialized.
DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::ChordNaivePlaneComputer | ( | const ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar > & | other | ) |
Copy constructor.
other | the object to clone. |
|
private |
p1 | any point. |
p2 | any point. |
|
private |
Useful to compute the axis width of a given range of points.
TInputIterator | any model of InputIterator on InputPoint. |
[out] | state | the resulting state, if you need to have a look. |
[in] | itB | an iterator on the first element of the range of 3D points. |
[in] | itE | an iterator after the last element of the range of 3D points. |
std::pair< InternalScalar, InternalScalar > DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::axisWidth | ( | TInputIterator | itB, |
TInputIterator | itE | ||
) | const |
Useful to compute the axis width of a given range of points (public version).
TInputIterator | any model of InputIterator on InputPoint. |
[in] | itB | an iterator on the first element of the range of 3D points. |
[in] | itE | an iterator after the last element of the range of 3D points. |
ConstIterator DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::begin | ( | ) | const |
|
private |
|
private |
|
private |
|
private |
|
private |
state | the state where the normal state.N, the scalars state.min and state.max are used in computations. |
|
private |
[in,out] | state | the current state of the algorithm (fields state.min, state.max, state.height are used) |
void DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::clear | ( | ) |
Clear the object, free memory. The plane keeps its main axis, diameter and width, but contains no point.
|
static |
Useful to compute the axis width of a given range of points (public static version).
TInputIterator | any model of InputIterator on InputPoint. |
[in] | axis | the main axis (0,1,2) for x, y or z. |
[in] | itB | an iterator on the first element of the range of 3D points. |
[in] | itE | an iterator after the last element of the range of 3D points. |
|
private |
[in,out] | state | the field state.height is updated and contains the main axis height of the current triangle. |
|
private |
Computes the min and max values/arguments of the scalar product between the normal state.N and the points in the range [itB,itE). Overwrites state.min, state.max at the start.
TInputIterator | any model of InputIterator. |
state | (modified) the state where the normal N is used in computation and where fields state.min, state.max, state.ptMin, state.ptMax are updated. |
itB | an input iterator on the first point of the range. |
itE | an input iterator after the last point of the range. |
|
private |
Computes a new normal according to the given values of state.A, state.B, state.C.
[in,out] | state | the field state.normal is updated and contains the new normal. |
bool DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::empty | ( | ) | const |
ConstIterator DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::end | ( | ) | const |
const InternalVector & DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::exactNormal | ( | ) | const |
bool DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::extend | ( | const InputPoint & | p | ) |
Adds the point p and checks if we have still a digital plane of specified width. The plane parameters may be updated so as to include the new point.
p | any 3D point (in the specified diameter). |
bool DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::extend | ( | TInputIterator | itB, |
TInputIterator | itE | ||
) |
Adds the range of points [it, itE) and checks if we have still a digital plane of specified width. The plane parameters may be updated so as to include all the new points. All points pointed by iterators should be in the diameter of this object.
TInputIterator | any model of InputIterator on InputPoint. |
[in] | itB | an iterator on the first element of the range of 3D points. |
[in] | itE | an iterator after the last element of the range of 3D points. |
bool DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::extendAsIs | ( | const InputPoint & | p | ) |
Adds the point p to this plane if it is within the current bounds. The plane parameters are not updated.
p | any 3D point (in the specified diameter). |
|
private |
|
private |
TInputIterator | any model of boost::InputIterator on InputPoint. |
Initializes the Chord algorithm by determining an initial triangle of the convex chord set (S+(-S)) if S is the set of points. If points have special alignment with the main axis, it may not return a triangle.
[in] | itB | the beginning of the range of input points. |
[in] | itE | the end of the range of input points. |
[out] | state | contains the points forming a triangle not containing the main axis (state.A, state.B, state.C) if one was found, otherwise a segment not containing the main axis (state.A, state.B), otherwise the first point (state.A). |
|
private |
|
private |
void DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::getBounds | ( | double & | min, |
double & | max | ||
) | const |
If n is the unit normal to the current plane, then n.x >= min and n.x <= max are the two half-planes defining it.
min | the lower bound (corresponding to the unit vector). |
max | the upper bound (corresponding to the unit vector). |
void DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::getNormal | ( | Vector3D & | normal | ) | const |
Vector3D | any type T such that T.operator[](int i) returns a reference to a double. i ranges in 0,1,2. |
[in,out] | normal | the current normal vector |
void DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::getUnitNormal | ( | Vector3D & | normal | ) | const |
Vector3D | any type T such that T.operator[](int i) returns a reference to a double. i ranges in 0,1,2. |
[in,out] | normal | the current unit normal vector |
void DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::init | ( | Dimension | axis, |
InternalScalar | widthNumerator = NumberTraits< InternalScalar >::ONE , |
||
InternalScalar | widthDenominator = NumberTraits< InternalScalar >::ONE |
||
) |
All these parameters cannot be changed during the process. After this call, the object is in a consistent state and can accept new points for recognition. Calls clear so that the object is ready to be extended.
axis | the main axis (0,1,2) for x, y or z. |
widthNumerator | the maximal axis-width (x,y,or z) for the plane is defined as the rational number widthNumerator / widthDenominator (default is 1/1, i.e. naive plane). |
widthDenominator | the maximal axis-width (x,y,or z) for the plane is defined as the rational number widthNumerator / widthDenominator (default is 1/1, i.e. naive plane). |
Referenced by main().
|
static |
Cross product with potentially better precision.
[out] | n | the vector that stores the cross product of u and v. |
u | any vector | |
v | any vector |
|
static |
Inner product with potentially better precision.
u | any vector |
v | any vector |
bool DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::isExtendable | ( | const InputPoint & | p | ) | const |
Checks if we have still a digital plane of specified width when adding point p. The object is left unchanged whatever the returned value. The invariant is 'this->isExtendable( p ) == true <=> this->extend( p ) == true'.
p | any 3D point (in the specified diameter). |
bool DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::isExtendable | ( | TInputIterator | itB, |
TInputIterator | itE | ||
) | const |
Checks if we have still a digital plane of specified width when adding the range of points [it, itE). The object is left unchanged whatever the returned value. All points pointed by iterators should be in the diameter of this object. The invariant is 'this->isExtendable( it, itE ) == true <=> this->extend( it, itE ) == true'.
TInputIterator | any model of InputIterator on InputPoint. |
[in] | itB | an iterator on the first element of the range of 3D points. |
[in] | itE | an iterator after the last element of the range of 3D points. |
bool DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::isValid | ( | ) | const |
Checks the validity/consistency of the object.
Size DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::max_size | ( | ) | const |
NB: std version.
const InputPoint & DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::maximalPoint | ( | ) | const |
Size DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::maxSize | ( | ) | const |
same as max_size
const InputPoint & DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::minimalPoint | ( | ) | const |
|
private |
Puts in (A,B,C) the new current triangle. We choose the triangle of the tetrahedron A,B,C,M having the highest intersection with Oz.
state | the current state of the algorithm, state.A, state.B and state.C should represent the current triangle. |
M | should be the vector P2-P1, where P2 is the point maximizing the dot product with the normal and P1 is the point minimizing the same dot product. |
bool DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::operator() | ( | const Point & | p | ) | const |
Checks if the point p is in the current digital plane. Therefore, a ChordNaivePlaneComputer is a model of concepts::CPointPredicate.
p | any 3D point. |
ChordNaivePlaneComputer & DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::operator= | ( | const ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar > & | other | ) |
Assignment.
other | the object to copy. |
Primitive DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::primitive | ( | ) | const |
|
private |
Useful to check if a given set of points has a valid axis width.
TInputIterator | any model of InputIterator on InputPoint. |
[out] | state | the resulting state, if you need to have a look. |
[in] | itB | an iterator on the first element of the range of 3D points. |
[in] | itE | an iterator after the last element of the range of 3D points. |
bool DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::satisfies | ( | TInputIterator | itB, |
TInputIterator | itE | ||
) | const |
Useful to check if a given set of points has a valid axis width (public version).
TInputIterator | any model of InputIterator on InputPoint. |
[in] | itB | an iterator on the first element of the range of 3D points. |
[in] | itE | an iterator after the last element of the range of 3D points. |
void DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::selfDisplay | ( | std::ostream & | out | ) | const |
Writes/Displays the object on an output stream.
out | the output stream where the object is written. |
|
private |
Writes/Displays the object on an output stream (debug purposes).
out | the output stream where the object is written. |
state | a given state for the display. |
|
private |
Sets up a consistent state with only one point.
p1 | any point. |
|
private |
Sets up a consistent initial normal direction given the output of findTriangle (state.nbValid, state.A, state.B, state.C).
[in,out] | state | the modified state. |
|
private |
Sets up a consistent initial normal direction given the output of findTriangle (state.nbValid == 1).
[in,out] | state | the modified state. |
|
private |
Sets up a consistent initial normal direction given the output of findTriangle (state.nbValid == 2, state.A).
[in,out] | state | the modified state. |
|
private |
Sets up a consistent initial normal direction given the output of findTriangle (state.nbValid == 3, state.A, state.B, state.C).
[in,out] | state | the modified state. |
|
private |
Computes the orientation of vectors AB and AC viewed from the main axis vector. It is the sign of the 2D determinant of AB and AC.
A | any point. |
B | any point. |
C | any point. |
|
private |
Computes the orientation of vectors AO and AC viewed from the main axis vector. It is the sign of the 2D determinant of AO and AC, where O is the origin.
A | any point. |
C | any point. |
Size DGtal::ChordNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::size | ( | ) | const |
|
private |
Updates the min and max values/arguments of the scalar product between the normal state.N and the points in the range [itB,itE). Do not overwrite state.min, state.max at the start.
TInputIterator | any model of InputIterator. |
state | (modified) the state where the normal N is used in computation and where fields state.min, state.max, state.ptMin, state.ptMax are updated. |
itB | an input iterator on the first point of the range. |
itE | an input iterator after the last point of the range. |
|
mutableprivate |
temporary variable used in some computations.
Definition at line 539 of file ChordNaivePlaneComputer.h.
|
mutableprivate |
Temporary state used in computations.
Definition at line 538 of file ChordNaivePlaneComputer.h.
|
mutableprivate |
the set of points within the plane, mutable since its state may temporarily be changed during some computations.
Definition at line 536 of file ChordNaivePlaneComputer.h.
|
private |
the current state that defines the plane being recognized.
Definition at line 537 of file ChordNaivePlaneComputer.h.
|
private |
the plane width as a positive rational number myWidth0/myWidth1
Definition at line 534 of file ChordNaivePlaneComputer.h.
|
private |
the plane width as a positive rational number myWidth0/myWidth1
Definition at line 535 of file ChordNaivePlaneComputer.h.
|
private |
Definition at line 533 of file ChordNaivePlaneComputer.h.
|
private |
the two other axes used in all subsequent computations.
Definition at line 533 of file ChordNaivePlaneComputer.h.
|
private |
the main axis used in all subsequent computations.
Definition at line 532 of file ChordNaivePlaneComputer.h.