DGtal  1.5.beta
DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger > Class Template Reference

Aim: A class that recognizes pieces of digital planes of given axis width. When the diagonal width is \( 1 \times \sqrt{3} \), it corresponds to standard planes. Contrary to COBANaivePlaneComputer, the axis is not specified at initialization of the object. This class uses four instances of COBANaivePlaneComputer of axis z, by transforming points \((x,y,z)\) to \((x \pm z, y \pm z, z)\). More...

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

Data Structures

struct  Transform
 

Public Types

typedef TSpace Space
 
typedef Space::Point Point
 
typedef std::set< PointPointSet
 
typedef PointSet::size_type Size
 
typedef PointSet::const_iterator PointSetConstIterator
 
typedef PointSet::iterator PointSetIterator
 
typedef TInternalInteger InternalInteger
 
typedef IntegerComputer< InternalIntegerMyIntegerComputer
 
typedef COBANaivePlaneComputer< Space, InternalIntegerCOBAComputer
 
typedef COBAComputer::Primitive Primitive
 
typedef COBAComputer::IntegerVector3 IntegerVector3
 
typedef boost::transform_iterator< Transform, PointSetConstIterator, Point, PointConstIterator
 
typedef ConstIterator const_iterator
 
typedef const Pointconst_pointer
 
typedef const Pointconst_reference
 
typedef Point value_type
 
typedef PointSet::difference_type difference_type
 
typedef PointSet::size_type size_type
 

Public Member Functions

 ~COBAGenericStandardPlaneComputer ()
 
 COBAGenericStandardPlaneComputer ()
 
 COBAGenericStandardPlaneComputer (const COBAGenericStandardPlaneComputer &other)
 
COBAGenericStandardPlaneComputeroperator= (const COBAGenericStandardPlaneComputer &other)
 
MyIntegerComputeric () const
 
Dimension active () const
 
void clear ()
 
void init (InternalInteger diameter, InternalInteger widthNumerator=NumberTraits< InternalInteger >::ONE, InternalInteger widthDenominator=NumberTraits< InternalInteger >::ONE)
 
Size complexity () const
 
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 Point &p)
 
bool extend (const Point &p)
 
bool isExtendable (const Point &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
 
Point minimalPoint () const
 
Point maximalPoint () const
 
void getCharacteristics (IntegerVector3 &n, InternalInteger &imin, InternalInteger &imax, Point &p_min, Point &p_max) const
 
void selfDisplay (std::ostream &out) const
 
bool isValid () const
 

Static Protected Member Functions

static Transform t (Dimension orthant)
 
static Transform invT (Dimension orthant)
 

Private Types

typedef std::vector< Dimension >::iterator OrthantIterator
 
typedef std::vector< Dimension >::const_iterator OrthantConstIterator
 

Private Member Functions

 BOOST_CONCEPT_ASSERT ((concepts::CSpace< TSpace >))
 
 BOOST_CONCEPT_ASSERT ((concepts::CInteger< TInternalInteger >))
 
 BOOST_STATIC_ASSERT ((TSpace::dimension==3))
 

Private Attributes

std::vector< DimensionmyOrthants
 
COBAComputer myComputers [4]
 
std::vector< Dimension_orthantsToErase
 

Static Private Attributes

static Transform myTransforms [4]
 

Detailed Description

template<typename TSpace, typename TInternalInteger>
class DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >

Aim: A class that recognizes pieces of digital planes of given axis width. When the diagonal width is \( 1 \times \sqrt{3} \), it corresponds to standard planes. Contrary to COBANaivePlaneComputer, the axis is not specified at initialization of the object. This class uses four instances of COBANaivePlaneComputer of axis z, by transforming points \((x,y,z)\) to \((x \pm z, y \pm z, z)\).

Description of template class 'COBAGenericStandardPlaneComputer'

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 COBAStandardPlaneComputer. Although it uses four instances of COBAStandardPlaneComputer, the recognition is not four times slower. Indeed, recognition stops quickly on bad orthants.

Note on execution times: The user should favor int64_t instead of BigInteger whenever possible (diameter smaller than 500). The speed-up is between 10 and 20 for these diameters. For greater diameters, it is necessary to use BigInteger (see below).

Template Parameters
TSpacespecifies the type of digital space in which lies input digital points. A model of CSpace.
TInternalIntegerspecifies the type of integer used in internal computations. The type should be able to hold integers of order (2*D^3)^2 if D is the diameter of the set of digital points. In practice, diameter is limited to 20 for int32_t, diameter is approximately 500 for int64_t, and whatever with BigInteger/GMP integers. For huge diameters, the slow-down is polylogarithmic with the diameter.
typedef SpaceND<3,int> Z3;
typedef COBAGenericStandardPlaneComputer< Z3, int64_t > StandardPlaneComputer;
StandardPlaneComputer plane;
plane.init( 100, 1, 1 ); * diameter is 100, width is 1/1 x sqrt(3) => standard
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 standard plane going through the 3 first points and the last one.
Space Z3
Definition: StdDefs.h:145

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

Advanced:
All accepted inserted points are stored in the different naive plane computers, but they are stored "transformed". This is why we adapt the iterator on the naive plane computer with a boost::transform_iterator, such that the points are transformed back when accessing to the value of the iterator (notably in begin and end method).

Definition at line 128 of file COBAGenericStandardPlaneComputer.h.

Member Typedef Documentation

◆ COBAComputer

template<typename TSpace , typename TInternalInteger >
typedef COBANaivePlaneComputer< Space, InternalInteger > DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::COBAComputer

Definition at line 145 of file COBAGenericStandardPlaneComputer.h.

◆ const_iterator

template<typename TSpace , typename TInternalInteger >
typedef ConstIterator DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::const_iterator

Definition at line 224 of file COBAGenericStandardPlaneComputer.h.

◆ const_pointer

template<typename TSpace , typename TInternalInteger >
typedef const Point* DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::const_pointer

Definition at line 225 of file COBAGenericStandardPlaneComputer.h.

◆ const_reference

template<typename TSpace , typename TInternalInteger >
typedef const Point& DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::const_reference

Definition at line 226 of file COBAGenericStandardPlaneComputer.h.

◆ ConstIterator

template<typename TSpace , typename TInternalInteger >
typedef boost::transform_iterator<Transform,PointSetConstIterator,Point,Point> DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::ConstIterator

We wrap a transform over the iterator on point that uses one of the functor Transform to cast back the point from the naive space to the standard space.

Definition at line 220 of file COBAGenericStandardPlaneComputer.h.

◆ difference_type

template<typename TSpace , typename TInternalInteger >
typedef PointSet::difference_type DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::difference_type

Definition at line 228 of file COBAGenericStandardPlaneComputer.h.

◆ IntegerVector3

template<typename TSpace , typename TInternalInteger >
typedef COBAComputer::IntegerVector3 DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::IntegerVector3

Definition at line 147 of file COBAGenericStandardPlaneComputer.h.

◆ InternalInteger

template<typename TSpace , typename TInternalInteger >
typedef TInternalInteger DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::InternalInteger

Definition at line 143 of file COBAGenericStandardPlaneComputer.h.

◆ MyIntegerComputer

template<typename TSpace , typename TInternalInteger >
typedef IntegerComputer< InternalInteger > DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::MyIntegerComputer

Definition at line 144 of file COBAGenericStandardPlaneComputer.h.

◆ OrthantConstIterator

template<typename TSpace , typename TInternalInteger >
typedef std::vector<Dimension>::const_iterator DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::OrthantConstIterator
private

Definition at line 152 of file COBAGenericStandardPlaneComputer.h.

◆ OrthantIterator

template<typename TSpace , typename TInternalInteger >
typedef std::vector<Dimension>::iterator DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::OrthantIterator
private

Definition at line 151 of file COBAGenericStandardPlaneComputer.h.

◆ Point

template<typename TSpace , typename TInternalInteger >
typedef Space::Point DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::Point

Definition at line 138 of file COBAGenericStandardPlaneComputer.h.

◆ PointSet

template<typename TSpace , typename TInternalInteger >
typedef std::set< Point > DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::PointSet

Definition at line 139 of file COBAGenericStandardPlaneComputer.h.

◆ PointSetConstIterator

template<typename TSpace , typename TInternalInteger >
typedef PointSet::const_iterator DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::PointSetConstIterator

Definition at line 141 of file COBAGenericStandardPlaneComputer.h.

◆ PointSetIterator

template<typename TSpace , typename TInternalInteger >
typedef PointSet::iterator DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::PointSetIterator

Definition at line 142 of file COBAGenericStandardPlaneComputer.h.

◆ Primitive

template<typename TSpace , typename TInternalInteger >
typedef COBAComputer::Primitive DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::Primitive

Definition at line 146 of file COBAGenericStandardPlaneComputer.h.

◆ Size

template<typename TSpace , typename TInternalInteger >
typedef PointSet::size_type DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::Size

Definition at line 140 of file COBAGenericStandardPlaneComputer.h.

◆ size_type

template<typename TSpace , typename TInternalInteger >
typedef PointSet::size_type DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::size_type

Definition at line 229 of file COBAGenericStandardPlaneComputer.h.

◆ Space

template<typename TSpace , typename TInternalInteger >
typedef TSpace DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::Space

Definition at line 137 of file COBAGenericStandardPlaneComputer.h.

◆ value_type

template<typename TSpace , typename TInternalInteger >
typedef Point DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::value_type

Definition at line 227 of file COBAGenericStandardPlaneComputer.h.

Constructor & Destructor Documentation

◆ ~COBAGenericStandardPlaneComputer()

template<typename TSpace , typename TInternalInteger >
DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::~COBAGenericStandardPlaneComputer ( )

Destructor.

◆ COBAGenericStandardPlaneComputer() [1/2]

template<typename TSpace , typename TInternalInteger >
DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::COBAGenericStandardPlaneComputer ( )

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

See also
init

◆ COBAGenericStandardPlaneComputer() [2/2]

template<typename TSpace , typename TInternalInteger >
DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::COBAGenericStandardPlaneComputer ( const COBAGenericStandardPlaneComputer< TSpace, TInternalInteger > &  other)

Copy constructor.

Parameters
otherthe object to clone.

Member Function Documentation

◆ active()

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

◆ begin()

template<typename TSpace , typename TInternalInteger >
ConstIterator DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::begin ( ) const
Returns
a const iterator pointing on the first point stored in the current standard plane.

◆ BOOST_CONCEPT_ASSERT() [1/2]

template<typename TSpace , typename TInternalInteger >
DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::BOOST_CONCEPT_ASSERT ( (concepts::CInteger< TInternalInteger >)  )
private

◆ BOOST_CONCEPT_ASSERT() [2/2]

template<typename TSpace , typename TInternalInteger >
DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::BOOST_CONCEPT_ASSERT ( (concepts::CSpace< TSpace >)  )
private

◆ BOOST_STATIC_ASSERT()

template<typename TSpace , typename TInternalInteger >
DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::BOOST_STATIC_ASSERT ( (TSpace::dimension==3)  )
private

◆ clear()

template<typename TSpace , typename TInternalInteger >
void DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::clear ( )

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

◆ complexity()

template<typename TSpace , typename TInternalInteger >
Size DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::complexity ( ) const
Returns
the number of vertices/edges of the convex integer polygon of solutions.

◆ empty()

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

◆ end()

template<typename TSpace , typename TInternalInteger >
ConstIterator DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::end ( ) const
Returns
a const iterator pointing after the last point stored in the current standard plane.

◆ extend() [1/2]

template<typename TSpace , typename TInternalInteger >
bool DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::extend ( const Point 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 TInternalInteger >
template<typename TInputIterator >
bool DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::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 Point.
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 TInternalInteger >
bool DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::extendAsIs ( const Point 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 TInternalInteger >
void DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::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).

◆ getCharacteristics()

template<typename TSpace , typename TInternalInteger >
void DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::getCharacteristics ( IntegerVector3 n,
InternalInteger imin,
InternalInteger imax,
Point p_min,
Point p_max 
) const

The basic method for computing all characteristics of the recognized plane. Used by primitive, minimalPoint, maximalPoint, getBounds.

Parameters
[out]nthe integral normal vector (with last component positive).
[out]iminthe minimum dot product of an inserted point with n.
[out]imaxthe maximum dot product of an inserted point with n.
[out]p_minan inserted point satisfying the minimum dot product imin.
[out]p_maxan inserted point satisfying the maximum dot product imax.

◆ getNormal()

template<typename TSpace , typename TInternalInteger >
template<typename Vector3D >
void DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::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
[in,out]normal(updates) the current normal vector

◆ getUnitNormal()

template<typename TSpace , typename TInternalInteger >
template<typename Vector3D >
void DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::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

◆ ic()

template<typename TSpace , typename TInternalInteger >
MyIntegerComputer& DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::ic ( ) const
Returns
the object that performs integer calculation.

◆ init()

template<typename TSpace , typename TInternalInteger >
void DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::init ( InternalInteger  diameter,
InternalInteger  widthNumerator = NumberTraitsInternalInteger >::ONE,
InternalInteger  widthDenominator = NumberTraitsInternalInteger >::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
diameterthe diameter for the set of points (maximum distance between the given points)
widthNumeratorthe maximal diagonal width for the plane is defined as the rational number widthNumerator / widthDenominator x sqrt(3). (default is 1/1 x sqrt(3), i.e. standard plane).
widthDenominatorthe maximal diagonal width for the plane is defined as the rational number widthNumerator / widthDenominator x sqrt(3). (default is 1/1 x sqrt(3), i.e. standard plane).

Referenced by main().

◆ invT()

template<typename TSpace , typename TInternalInteger >
static Transform DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::invT ( Dimension  orthant)
staticprotected
Parameters
orthantany orthant specified as an integer between 0 and 3.
Returns
the space transformation "naive to standard" associated with orthant orthant.

◆ isExtendable() [1/2]

template<typename TSpace , typename TInternalInteger >
bool DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::isExtendable ( const Point 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 TInternalInteger >
template<typename TInputIterator >
bool DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::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 Point.
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 TInternalInteger >
bool DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::isValid ( ) const

Checks the validity/consistency of the object.

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

◆ max_size()

template<typename TSpace , typename TInternalInteger >
Size DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::max_size ( ) const

NB: std version.

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

◆ maximalPoint()

template<typename TSpace , typename TInternalInteger >
Point DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::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 TInternalInteger >
Size DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::maxSize ( ) const

same as max_size

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

◆ minimalPoint()

template<typename TSpace , typename TInternalInteger >
Point DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::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 TInternalInteger >
bool DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::operator() ( const Point p) const

Checks if the point p is in the current digital plane. Therefore, a COBAGenericStandardPlaneComputer 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 TInternalInteger >
COBAGenericStandardPlaneComputer& DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::operator= ( const COBAGenericStandardPlaneComputer< TSpace, TInternalInteger > &  other)

Assignment.

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

◆ primitive()

template<typename TSpace , typename TInternalInteger >
Primitive DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::primitive ( ) const
Returns
the current primitive recognized by this computer, which is a ParallelStrip of diagonal 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 diagonal width is strictly less than the value widthNumerator / widthDenominator x sqrt(3) specified with method init.

◆ selfDisplay()

template<typename TSpace , typename TInternalInteger >
void DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::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 TInternalInteger >
Size DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::size ( ) const
Returns
the number of distinct points in the current standard plane.

◆ t()

template<typename TSpace , typename TInternalInteger >
static Transform DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::t ( Dimension  orthant)
staticprotected
Parameters
orthantany orthant specified as an integer between 0 and 3.
Returns
the space transformation "standard to naive" associated with orthant orthant.

Field Documentation

◆ _orthantsToErase

template<typename TSpace , typename TInternalInteger >
std::vector<Dimension> DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::_orthantsToErase
mutableprivate

Useful when erasing orthants.

Definition at line 523 of file COBAGenericStandardPlaneComputer.h.

◆ myComputers

template<typename TSpace , typename TInternalInteger >
COBAComputer DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::myComputers[4]
private

The four COBA plane computers.

Definition at line 521 of file COBAGenericStandardPlaneComputer.h.

◆ myOrthants

template<typename TSpace , typename TInternalInteger >
std::vector<Dimension> DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::myOrthants
private

The list of active plane orthants. Starts with {0:++,1:+-,2:-+,3:–}.

Definition at line 520 of file COBAGenericStandardPlaneComputer.h.

◆ myTransforms

template<typename TSpace , typename TInternalInteger >
Transform DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::myTransforms[4]
staticprivate

The four space transformation associated with each COBA plane computer, shared by all computers.

Definition at line 522 of file COBAGenericStandardPlaneComputer.h.


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