DGtal 1.4.0
Loading...
Searching...
No Matches
DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar > Class Template Reference

Aim: A class that recognizes pieces of digital planes of given axis width. When the width is 1, it corresponds to naive planes. Contrary to ChordNaivePlaneComputer, the axis is not specified at initialization of the object. This class uses three instances of ChordNaivePlaneComputer, one per axis. More...

#include <DGtal/geometry/surfaces/ChordGenericNaivePlaneComputer.h>

Public Types

typedef TSpace Space
 
typedef TInputPoint InputPoint
 
typedef TInternalScalar InternalScalar
 
typedef InputPoint InputVector
 
typedef InputVector::Component Component
 
typedef InputPoint::Coordinate Coordinate
 
typedef InternalScalar InternalVector[3]
 
typedef Space::Point Point
 
typedef ChordNaivePlaneComputer< Space, InputPoint, InternalScalarChordComputer
 
typedef ChordComputer::Primitive Primitive
 
typedef std::set< InputPointInputPointSet
 
typedef InputPointSet::size_type Size
 
typedef InputPointSet::const_iterator ConstIterator
 
typedef InputPointSet::iterator Iterator
 
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

 ~ChordGenericNaivePlaneComputer ()
 
 ChordGenericNaivePlaneComputer ()
 
 ChordGenericNaivePlaneComputer (const ChordGenericNaivePlaneComputer &other)
 
ChordGenericNaivePlaneComputeroperator= (const ChordGenericNaivePlaneComputer &other)
 
Dimension active () const
 
void clear ()
 
void init (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 it, TInputIterator itE)
 
template<typename TInputIterator >
bool isExtendable (TInputIterator it, TInputIterator itE) const
 
Primitive primitive () const
 
template<typename Vector3D >
void getNormal (Vector3D &normal) const
 
template<typename Vector3D >
void getUnitNormal (Vector3D &normal) const
 
void getBounds (double &min, double &max) const
 
const InputPointminimalPoint () const
 
const InputPointmaximalPoint () const
 
void selfDisplay (std::ostream &out) const
 
bool isValid () const
 

Private Types

typedef std::vector< Dimension >::iterator AxisIterator
 
typedef std::vector< Dimension >::const_iterator AxisConstIterator
 

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))
 

Private Attributes

std::vector< DimensionmyAxes
 
ChordComputer myComputers [3]
 
std::vector< Dimension_axesToErase
 

Detailed Description

template<typename TSpace, typename TInputPoint, typename TInternalScalar>
class DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >

Aim: A class that recognizes pieces of digital planes of given axis width. When the width is 1, it corresponds to naive planes. Contrary to ChordNaivePlaneComputer, the axis is not specified at initialization of the object. This class uses three instances of ChordNaivePlaneComputer, one per axis.

Description of template class 'ChordGenericNaivePlaneComputer'

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).

Note on complexity: See ChordNaivePlaneComputer and Comparative evaluation of COBA and Chord algorithm. Although it uses three instances of ChordNaivePlaneComputer, the recognition is not three times slower. Indeed, recognition stops quickly on bad axes.

Template Parameters
TSpacespecifies the digital space (provides dimension and types for the primitive)
TInputPointspecifies 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.
TInternalScalarspecifies 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.
typedef SpaceND<3,int> Z3;
plane.init( 1, 1 ); // width is 1/1 => naive
plane.extend( Point( 10, 0, 0 ) ); // return 'true'
plane.extend( Point( 0, 8, 0 ) ); // return 'true'
plane.extend( Point( 0, 0, 6 ) ); // return 'true'
plane.extend( Point( 5, 5, 5 ) ); // return 'false'
//There is no naive plane going through the 3 first points and the last one.
void init(Dimension axis, InternalInteger diameter, InternalInteger widthNumerator=NumberTraits< InternalInteger >::ONE, InternalInteger widthDenominator=NumberTraits< InternalInteger >::ONE)
bool extend(const Point &p)
Aim: A class that recognizes pieces of digital planes of given axis width. When the width is 1,...
COBANaivePlaneComputer< Z3, InternalInteger > NaivePlaneComputer

Model of boost::DefaultConstructible, boost::CopyConstructible, boost::Assignable, boost::ForwardContainer, concepts::CAdditivePrimitiveComputer, concepts::CPointPredicate.

Examples
examples/tutorial-examples/polyhedralizer.cpp, and tutorial-examples/polyhedralizer.cpp.

Definition at line 118 of file ChordGenericNaivePlaneComputer.h.

Member Typedef Documentation

◆ AxisConstIterator

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef std::vector<Dimension>::const_iterator DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::AxisConstIterator
private

Definition at line 155 of file ChordGenericNaivePlaneComputer.h.

◆ AxisIterator

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef std::vector<Dimension>::iterator DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::AxisIterator
private

Definition at line 154 of file ChordGenericNaivePlaneComputer.h.

◆ ChordComputer

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef ChordNaivePlaneComputer< Space, InputPoint, InternalScalar > DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::ChordComputer

Definition at line 135 of file ChordGenericNaivePlaneComputer.h.

◆ Component

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef InputVector::Component DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::Component

Definition at line 131 of file ChordGenericNaivePlaneComputer.h.

◆ const_iterator

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef InputPointSet::const_iterator DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::const_iterator

Definition at line 145 of file ChordGenericNaivePlaneComputer.h.

◆ const_pointer

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef InputPointSet::const_pointer DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::const_pointer

Definition at line 146 of file ChordGenericNaivePlaneComputer.h.

◆ const_reference

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef InputPointSet::const_reference DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::const_reference

Definition at line 147 of file ChordGenericNaivePlaneComputer.h.

◆ ConstIterator

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef InputPointSet::const_iterator DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::ConstIterator

Definition at line 140 of file ChordGenericNaivePlaneComputer.h.

◆ Coordinate

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef InputPoint::Coordinate DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::Coordinate

Definition at line 132 of file ChordGenericNaivePlaneComputer.h.

◆ difference_type

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef InputPointSet::difference_type DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::difference_type

Definition at line 149 of file ChordGenericNaivePlaneComputer.h.

◆ InputPoint

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef TInputPoint DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::InputPoint

Definition at line 128 of file ChordGenericNaivePlaneComputer.h.

◆ InputPointSet

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef std::set< InputPoint > DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::InputPointSet

Definition at line 138 of file ChordGenericNaivePlaneComputer.h.

◆ InputVector

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef InputPoint DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::InputVector

Definition at line 130 of file ChordGenericNaivePlaneComputer.h.

◆ InternalScalar

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef TInternalScalar DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::InternalScalar

Definition at line 129 of file ChordGenericNaivePlaneComputer.h.

◆ InternalVector

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef InternalScalar DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::InternalVector[3]

Definition at line 133 of file ChordGenericNaivePlaneComputer.h.

◆ Iterator

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef InputPointSet::iterator DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::Iterator

Definition at line 141 of file ChordGenericNaivePlaneComputer.h.

◆ Point

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef Space::Point DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::Point

Definition at line 134 of file ChordGenericNaivePlaneComputer.h.

◆ Primitive

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef ChordComputer::Primitive DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::Primitive

Definition at line 136 of file ChordGenericNaivePlaneComputer.h.

◆ Size

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef InputPointSet::size_type DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::Size

Definition at line 139 of file ChordGenericNaivePlaneComputer.h.

◆ size_type

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef InputPointSet::size_type DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::size_type

Definition at line 150 of file ChordGenericNaivePlaneComputer.h.

◆ Space

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef TSpace DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::Space

Definition at line 127 of file ChordGenericNaivePlaneComputer.h.

◆ value_type

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
typedef InputPointSet::value_type DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::value_type

Definition at line 148 of file ChordGenericNaivePlaneComputer.h.

Constructor & Destructor Documentation

◆ ~ChordGenericNaivePlaneComputer()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::~ChordGenericNaivePlaneComputer ( )

Destructor.

◆ ChordGenericNaivePlaneComputer() [1/2]

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::ChordGenericNaivePlaneComputer ( )

Constructor. The object is not valid and should be initialized.

See also
init

◆ ChordGenericNaivePlaneComputer() [2/2]

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::ChordGenericNaivePlaneComputer ( const ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar > & other)

Copy constructor.

Parameters
otherthe object to clone.

Member Function Documentation

◆ active()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
Dimension DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::active ( ) const
Returns
an active axis (or the active axis when there is only one).

◆ begin()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
ConstIterator DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::begin ( ) const
Returns
a const iterator pointing on the first point stored in the current naive plane.

◆ BOOST_CONCEPT_ASSERT() [1/2]

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::BOOST_CONCEPT_ASSERT ( (concepts::CSignedNumber< TInternalScalar >) )
private

◆ BOOST_CONCEPT_ASSERT() [2/2]

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::BOOST_CONCEPT_ASSERT ( (concepts::CSpace< TSpace >) )
private

◆ BOOST_STATIC_ASSERT() [1/2]

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::BOOST_STATIC_ASSERT ( (TInputPoint::dimension==3) )
private

◆ BOOST_STATIC_ASSERT() [2/2]

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::BOOST_STATIC_ASSERT ( (TSpace::dimension==3) )
private

◆ clear()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
void DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::clear ( )

Clear the object, free memory. The plane keeps its main axis, diameter and width, but contains no point.

◆ empty()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
bool DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::empty ( ) const
Returns
'true' if and only if this object contains no point.

◆ end()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
ConstIterator DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::end ( ) const
Returns
a const iterator pointing after the last point stored in the current naive plane.

◆ extend() [1/2]

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
bool DGtal::ChordGenericNaivePlaneComputer< 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.

Parameters
pany 3D point (in the specified diameter).
Returns
'true' if it is still a plane, 'false' otherwise (the object is then in its original state).

◆ extend() [2/2]

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
template<typename TInputIterator >
bool DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::extend ( TInputIterator it,
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.

Template Parameters
TInputIteratorany model of InputIterator on InputPoint.
Parameters
itan iterator on the first element of the range of 3D points.
itEan iterator after the last element of the range of 3D points.
Returns
'true' if it is still a plane, 'false' otherwise (the object is then in its original state).

◆ extendAsIs()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
bool DGtal::ChordGenericNaivePlaneComputer< 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.

Parameters
pany 3D point (in the specified diameter).
Returns
'true' if p is in the plane, 'false' otherwise (the object is then in its original state).

◆ getBounds()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
void DGtal::ChordGenericNaivePlaneComputer< 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.

Parameters
minthe lower bound (corresponding to the unit vector).
maxthe upper bound (corresponding to the unit vector).

◆ getNormal()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
template<typename Vector3D >
void DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::getNormal ( Vector3D & normal) const
Template Parameters
Vector3Dany type T such that T.operator[](int i) returns a reference to a double. i ranges in 0,1,2.
Parameters
normal(updates) the current normal vector

◆ getUnitNormal()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
template<typename Vector3D >
void DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::getUnitNormal ( Vector3D & normal) const
Template Parameters
Vector3Dany type T such that T.operator[](int i) returns a reference to a double. i ranges in 0,1,2.
Parameters
normal(updates) the current unit normal vector

◆ init()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
void DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::init ( InternalScalar widthNumerator = NumberTraitsInternalScalar >::ONE,
InternalScalar widthDenominator = NumberTraitsInternalScalar >::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.

Parameters
widthNumeratorthe 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).
widthDenominatorthe 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).

◆ isExtendable() [1/2]

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
bool DGtal::ChordGenericNaivePlaneComputer< 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'.

Parameters
pany 3D point (in the specified diameter).
Returns
'true' if this is still a plane, 'false' otherwise.

◆ isExtendable() [2/2]

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
template<typename TInputIterator >
bool DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::isExtendable ( TInputIterator it,
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'.

Template Parameters
TInputIteratorany model of InputIterator on InputPoint.
Parameters
itan iterator on the first element of the range of 3D points.
itEan iterator after the last element of the range of 3D points.
Returns
'true' if this is still a plane, 'false' otherwise.

◆ isValid()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
bool DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::isValid ( ) const

Checks the validity/consistency of the object.

Returns
'true' if the object is valid, 'false' otherwise.

◆ max_size()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
Size DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::max_size ( ) const

NB: std version.

Returns
the maximal allowed number of points in the current naive plane.
See also
maxSize

◆ maximalPoint()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
const InputPoint & DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::maximalPoint ( ) const
Precondition
! empty()
Returns
the current maximal point of the plane, i.e. the one with the highest scalar product with the current normal vector. Note that other points may also have a maximum value.

◆ maxSize()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
Size DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::maxSize ( ) const

same as max_size

Returns
the maximal allowed number of points in the current naive plane.

◆ minimalPoint()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
const InputPoint & DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::minimalPoint ( ) const
Precondition
! empty()
Returns
the current minimal point of the plane, i.e. the one with the smallest scalar product with the current normal vector. Note that other points may also have a minimum value.

◆ operator()()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
bool DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::operator() ( const Point & p) const

Checks if the point p is in the current digital plane. Therefore, a ChordGenericNaivePlaneComputer is a model of concepts::CPointPredicate.

Parameters
pany 3D point.
Returns
'true' if it is in the current plane, false otherwise.

◆ operator=()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
ChordGenericNaivePlaneComputer & DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::operator= ( const ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar > & other)

Assignment.

Parameters
otherthe object to copy.
Returns
a reference on 'this'.

◆ primitive()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
Primitive DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::primitive ( ) const
Returns
the current primitive recognized by this computer, which is a ParallelStrip of axis width smaller than the one specified at instanciation.
Note
The returned primitive has the form \(\mu \le \vec{N} \cdot \vec{X} \le \mu + \epsilon\). It is guaranteed that its axis width is strictly less than the value widthNumerator / widthDenominator specified with method init.

◆ selfDisplay()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
void DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::selfDisplay ( std::ostream & out) const

Writes/Displays the object on an output stream.

Parameters
outthe output stream where the object is written.

◆ size()

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
Size DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::size ( ) const
Returns
the number of distinct points in the current naive plane.
Examples
examples/tutorial-examples/polyhedralizer.cpp, and tutorial-examples/polyhedralizer.cpp.

Field Documentation

◆ _axesToErase

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
std::vector<Dimension> DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::_axesToErase
mutableprivate

Useful when erasing axes.

Definition at line 416 of file ChordGenericNaivePlaneComputer.h.

◆ myAxes

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
std::vector<Dimension> DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::myAxes
private

The list of active plane axes. Starts with {0,1,2}. At least one.

Definition at line 414 of file ChordGenericNaivePlaneComputer.h.

◆ myComputers

template<typename TSpace , typename TInputPoint , typename TInternalScalar >
ChordComputer DGtal::ChordGenericNaivePlaneComputer< TSpace, TInputPoint, TInternalScalar >::myComputers[3]
private

The three COBA plane computers.

Definition at line 415 of file ChordGenericNaivePlaneComputer.h.


The documentation for this class was generated from the following file: