DGtal  1.0.beta
Data Structures | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Attributes | Friends
DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency > Class Template Reference

#include <DGtal/geometry/curves/ArithmeticalDSL.h>

Inheritance diagram for DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >:
[legend]
Collaboration diagram for DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >:
[legend]

Data Structures

class  ConstIterator
 

Public Types

typedef TCoordinate Coordinate
 
typedef TInteger Integer
 
typedef ArithmeticalDSLKernel< Coordinate, adjacency >::Space Space
 
typedef Space::Point Point
 
typedef Space::Vector Vector
 
typedef std::pair< Vector, VectorSteps
 
typedef Coordinate Position
 
typedef std::pair< unsigned char, unsigned char > Octant
 
typedef DGtal::ReverseIterator< ConstIteratorConstReverseIterator
 

Public Member Functions

 BOOST_CONCEPT_ASSERT ((concepts::CInteger< Coordinate >))
 
 BOOST_CONCEPT_ASSERT ((concepts::CInteger< Integer >))
 
 ArithmeticalDSL (const Coordinate &aA, const Coordinate &aB, const Integer &aLowerIntercept, const Integer &aUpperIntercept, const Steps &aSteps, const Vector &aShift)
 
 ArithmeticalDSL (const Coordinate &aA, const Coordinate &aB, const Integer &aMu)
 
 ArithmeticalDSL (const ArithmeticalDSL &aOther)
 
ArithmeticalDSLoperator= (const ArithmeticalDSL &aOther)
 
ArithmeticalDSL negate () const
 
bool equalsTo (const ArithmeticalDSL &aOther) const
 
bool operator== (const ArithmeticalDSL &aOther) const
 
bool operator!= (const ArithmeticalDSL &aOther) const
 
bool sameOctant (const ArithmeticalDSL &aOther, typename Octant::first_type *theOctant) const
 
bool isUpperLeaningPoint (const Point &aPoint) const
 
bool isLowerLeaningPoint (const Point &aPoint) const
 
Octant octant () const
 
 ~ArithmeticalDSL ()
 
void selfDisplay (std::ostream &out) const
 
bool checkShiftAndSteps () const
 
bool isValid () const
 
Coordinate a () const
 
Coordinate b () const
 
Integer mu () const
 
Integer omega () const
 
Position patternLength () const
 
Vector shift () const
 
Steps steps () const
 
Integer remainder (const Point &aPoint) const
 
Integer orthogonalPosition (const Point &aPoint) const
 
Position position (const Point &aPoint) const
 
Point getPoint () const
 
Point getPoint (const Position &aPosition) const
 
bool before (const Point &aP1, const Point &aP2) const
 
bool beforeOrEqual (const Point &aP1, const Point &aP2) const
 
bool isInDSL (const Point &aPoint) const
 
bool operator() (const Point &aPoint) const
 
ConstIterator begin (const Point &aPoint) const
 
ConstIterator end (const Point &aPoint) const
 
ConstReverseIterator rbegin (const Point &aPoint) const
 
ConstReverseIterator rend (const Point &aPoint) const
 

Static Public Member Functions

static Integer remainder (const Coordinate &aA, const Coordinate &aB, const Point &aPoint)
 
static Coordinate toCoordinate (const Integer &aI)
 

Static Public Attributes

static const unsigned short foregroundAdjacency = adjacency
 

Protected Attributes

Steps mySteps
 
Vector myShift
 
Coordinate myA
 
Coordinate myB
 
Integer myLowerBound
 
Integer myUpperBound
 

Friends

class ArithmeticalDSS< TCoordinate, TInteger, adjacency >
 

Detailed Description

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
class DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >

Aim: This class represents a naive (resp. standard) digital straight line (DSL), ie. the set of digital points \( (x,y) \in \mathbb{Z}^2 \) such that \( \mu \leq ax - by < \mu + \omega \) with \( a,b,\mu,\omega \in \mathbb{Z} \), \( \gcd(a,b) = 1 \) and \( \omega = \max(|a|,|b|) \) (resp. \( \omega = |a| + |b| \)). Note that any DSL such that \( \omega = \max(|a|,|b|) \) (resp. \( \omega = |a| + |b| \)) is simply 8-connected (resp. 4-connected).

[Reveilles, 1991 : [69]].

A naive DSL can be declared and constructed as follows:

#include "DGtal/arithmetic/geometry/curves/ArithmeticalDSL.h"
...
ArithmeticalDSL<DGtal::int32_t, DGtal::int64_t, 8> line( 17711, 28657, 1607895256 );
// equivalent to ArithmeticalDSL<DGtal::int32_t, DGtal::int64_t> line( 17711, 28657, 1607895256 );

See Digital straight lines and segments for further details.

This class is a model of CPointFunctor and of CConstBidirectionalRange.

In the standard case, it is enough to replace 8 by 4.

Template Parameters
TCoordinatea model of integer for the DGtal point coordinates and the slope parameters.
TIntegera model of integer for the intercepts and the remainders that represents a larger range of integers than TCoordinate.
adjacencyan unsigned integer equal to 8 (default) for naive DSL, and 4 for standard DSL.
See also
ArithmeticalDSL NaiveDSL StandardDSL
exampleArithmeticalDSL.cpp

Definition at line 106 of file ArithmeticalDSL.h.

Member Typedef Documentation

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
typedef DGtal::ReverseIterator<ConstIterator> DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::ConstReverseIterator

Type of const reverse iterator, adapted from ConstIterator.

Definition at line 297 of file ArithmeticalDSL.h.

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
typedef TCoordinate DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::Coordinate

Type used for the points coordinates and the slope parameters.

Definition at line 127 of file ArithmeticalDSL.h.

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
typedef TInteger DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::Integer

Type used for the intercepts and the remainders.

Definition at line 132 of file ArithmeticalDSL.h.

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
typedef std::pair<unsigned char, unsigned char> DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::Octant

Type of the octant values, defined as a STL pair of int

Definition at line 158 of file ArithmeticalDSL.h.

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
typedef Space::Point DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::Point

Type of point.

Definition at line 141 of file ArithmeticalDSL.h.

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
typedef Coordinate DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::Position

Type used for the position of a point in the DSL.

Definition at line 153 of file ArithmeticalDSL.h.

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
typedef ArithmeticalDSLKernel<Coordinate,adjacency>::Space DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::Space

Type of digital plane.

Definition at line 137 of file ArithmeticalDSL.h.

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
typedef std::pair<Vector,Vector> DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::Steps

Type of step vectors, defined as STL pair of vectors.

Definition at line 149 of file ArithmeticalDSL.h.

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
typedef Space::Vector DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::Vector

Type of vector.

Definition at line 145 of file ArithmeticalDSL.h.

Constructor & Destructor Documentation

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::ArithmeticalDSL ( const Coordinate aA,
const Coordinate aB,
const Integer aLowerIntercept,
const Integer aUpperIntercept,
const Steps aSteps,
const Vector aShift 
)

Constructor. The user gives all the (redondant) parameters and should be sure that the resulting DSL is valid.

See also
isValid
Parameters
aAy-component of the direction vector
aBx-component of the direction vector
aLowerInterceptlower intercept
aUpperInterceptupper intercept
aStepspair of steps used to iterate over the DSL points
aShiftshift vector
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::ArithmeticalDSL ( const Coordinate aA,
const Coordinate aB,
const Integer aMu 
)

Constructor with the minimal set of parameters.

Parameters
aAy-component of the direction vector
aBx-component of the direction vector
aMuintercept
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::ArithmeticalDSL ( const ArithmeticalDSL< TCoordinate, TInteger, adjacency > &  aOther)

Copy constructor.

Parameters
aOtherthe object to clone.
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::~ArithmeticalDSL ( )

Destructor.

Member Function Documentation

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Coordinate DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::a ( ) const
Returns
a parameter (y-component of the direction vector)
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Coordinate DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::b ( ) const
Returns
b parameter (x-component of the direction vector)
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
bool DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::before ( const Point aP1,
const Point aP2 
) const

Returns a boolean equal to 'true' if aP1 is located (strictly) before aP2 in the direction orthogonal to myShift, 'false' otherwise.

Parameters
aP1any point
aP2any point
Returns
'true' is aP2 is strictly before aP2, 'false' otherwise
See also
beforeOrEqual position
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
bool DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::beforeOrEqual ( const Point aP1,
const Point aP2 
) const

Returns a boolean equal to 'true' if aP1 is located before aP2 or is equal to aP2, 'false' otherwise.

Parameters
aP1any point
aP2any point
Returns
'true' is aP2 is before or equal to aP2, 'false' otherwise
See also
before position
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
ConstIterator DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::begin ( const Point aPoint) const
Parameters
aPointany point of the DSL
Precondition
aPoint should belong to the DSL
Returns
begin iterator, which points to aPoint
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::BOOST_CONCEPT_ASSERT ( (concepts::CInteger< Coordinate >)  )
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::BOOST_CONCEPT_ASSERT ( (concepts::CInteger< Integer >)  )
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
bool DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::checkShiftAndSteps ( ) const

Checks the consistency between the slope parameters, ie. myA , myB and the translating vectors myShift , mySteps

Returns
'true' if ok, 'false' otherwise
Precondition
myA and myB must not be both null
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
ConstIterator DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::end ( const Point aPoint) const
Parameters
aPointany point of the DSL
Precondition
aPoint should belong to the DSL
Returns
end iterator, which points to the point located after aPoint
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
bool DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::equalsTo ( const ArithmeticalDSL< TCoordinate, TInteger, adjacency > &  aOther) const

Equality.

Parameters
aOtherthe object to compare with.
Returns
'true' if the parameters of the DSL are equal (orientation matters), 'false' otherwise
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Point DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::getPoint ( ) const

Returns the unique point of the DSL located at position zero in O(1).

Precondition
the arithmetical thickness is not equal to zero
Returns
the point of the DSL located at position zero
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Point DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::getPoint ( const Position aPosition) const

Returns the unique point of the DSL located at position aPosition in O(1).

Precondition
the arithmetical thickness is not equal to zero
Parameters
aPositionposition of the returned point
Returns
the point of the DSL located at position aPosition
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
bool DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::isInDSL ( const Point aPoint) const
Returns
'true' if aPoint is in the DSL 'false' otherwise.
Parameters
aPointany point
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
bool DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::isLowerLeaningPoint ( const Point aPoint) const

Test if a point is a lower leaning point of *this

Parameters
aPointa point
Returns
'true' if aPoint is a lower leaning point of *this, false otherwise
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
bool DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::isUpperLeaningPoint ( const Point aPoint) const

Test if a point is an upper leaning point of *this

Parameters
aPointa point
Returns
'true' if aPoint is an upper leaning point of *this, false otherwise
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
bool DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::isValid ( ) const

Checks the validity/consistency of the object.

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

NB: runs in O( log( max( |myA |,| myB | ) ) ) because it checks if myA and myB are relatively primes.

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Integer DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::mu ( ) const
Returns
mu parameter, the intercept \( \mu \)
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
ArithmeticalDSL DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::negate ( ) const

Returns a copy of '*this' with a reverse orientation, ie. with parameters ( -myA , -myB , -myUpperIntercept , -myLowerIntercept).

Returns
the negation of '*this'.
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Octant DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::octant ( ) const

Returns the octants of the DSL as a pair of integers. If the parameters are such that \( abs(@a myA) = abs(@a myB) \) or \( @a myA = 0 \) or \( @a myB = 0 \), it returns two octants (for instance octants 0 and 7 if \( @a myA = 0 \)).

Returns
the octants as a pair of integers
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Integer DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::omega ( ) const
Returns
the arithmetical thickness \( \omega \)
See also
patternLength
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
bool DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::operator!= ( const ArithmeticalDSL< TCoordinate, TInteger, adjacency > &  aOther) const

Difference.

Parameters
aOtherthe object to compare with.
Returns
'true' the two set of points that are implicitly defined are different, 'false' otherwise
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
bool DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::operator() ( const Point aPoint) const
Returns
'true' if aPoint is in the DSL 'false' otherwise.
Parameters
aPointany point
See also
isInDSL
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
ArithmeticalDSL& DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::operator= ( const ArithmeticalDSL< TCoordinate, TInteger, adjacency > &  aOther)

Assignment.

Parameters
aOtherthe object to copy.
Returns
a reference on 'this'.
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
bool DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::operator== ( const ArithmeticalDSL< TCoordinate, TInteger, adjacency > &  aOther) const

Equality.

Parameters
aOtherthe object to compare with.
Returns
'true' the two sets of points that are implicitly defined are equal (without respect to the orientation), 'false' otherwise
See also
equalsTo
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Integer DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::orthogonalPosition ( const Point aPoint) const

Returns the position of aPoint (which does not necessarily belong to the DSL) computed along the direction that is orthogonal to the direction vector

Parameters
aPointthe point whose position is returned
Returns
the position
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Position DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::patternLength ( ) const
Returns
the pattern length (equal to \( omega \))
See also
omega
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Position DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::position ( const Point aPoint) const

Returns the position of aPoint (which does not necessarily belong to the DSL) computed along the direction orthogonal to myShift

Parameters
aPointthe point whose position is returned
Returns
the position
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
ConstReverseIterator DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::rbegin ( const Point aPoint) const
Parameters
aPointany point of the DSL
Precondition
aPoint sould belongs to the DSL
Returns
begin reverse iterator, which points to aPoint
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
static Integer DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::remainder ( const Coordinate aA,
const Coordinate aB,
const Point aPoint 
)
static

Returns the remainder of aPoint with respect to the direction vector of components aA and aB

Parameters
aAy-component of the direction vector
aBx-component of the direction vector
aPointany point
Returns
remainder of aPoint
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Integer DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::remainder ( const Point aPoint) const

Returns the remainder of aPoint (which does not necessarily belong to the DSL)

Returns
remainder of aPoint
Parameters
aPointany point
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
ConstReverseIterator DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::rend ( const Point aPoint) const
Parameters
aPointany point of the DSL
Precondition
aPoint sould belongs to the DSL
Returns
end iterator, which points to the point located before aPoint
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
bool DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::sameOctant ( const ArithmeticalDSL< TCoordinate, TInteger, adjacency > &  aOther,
typename Octant::first_type *  theOctant 
) const

Test if DSLs lie in the same octant.

Parameters
aOtherthe object to compare with.
[out]theOctantwhere to store the common octant if the DSLs are in the same octant.
Returns
'true' if the two DSLs lie in the same octant, 'false' otherwise
See also
sameOctant
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
void DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::selfDisplay ( std::ostream &  out) const

Writes/Displays the object on an output stream.

Parameters
outthe output stream where the object is written.
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Vector DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::shift ( ) const
Returns
the shift vector (translating a point of remainder \( r \) to a point of remainder \( r+\omega \)).
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Steps DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::steps ( ) const
Returns
the two vectors used to iterate over the DSL points.
template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
static Coordinate DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::toCoordinate ( const Integer aI)
static

Friends And Related Function Documentation

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
friend class ArithmeticalDSS< TCoordinate, TInteger, adjacency >
friend

Definition at line 111 of file ArithmeticalDSL.h.

Field Documentation

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
const unsigned short DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::foregroundAdjacency = adjacency
static

Adjacency of the DSL.

Definition at line 118 of file ArithmeticalDSL.h.

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Coordinate DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::myA
protected

y-component of the direction vector

Definition at line 641 of file ArithmeticalDSL.h.

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Coordinate DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::myB
protected

x-component of the direction vector

Definition at line 645 of file ArithmeticalDSL.h.

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Integer DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::myLowerBound
protected

Lower intercept. Invariants:

  • for any upper leaning point U, we have remainder(U) == myLowerBound.
  • myLowerBound <= myUpperBound

Definition at line 651 of file ArithmeticalDSL.h.

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Vector DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::myShift
protected

Shift vector. It is computed from myA and myB in ArithmeticalDSLKernel.

See also
ArithmeticalDSLKernel::shift

Definition at line 635 of file ArithmeticalDSL.h.

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Steps DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::mySteps
protected

Pair of steps used to iterate over the DSL points. They are computed from myA and myB in ArithmeticalDSLKernel.

See also
ArithmeticalDSLKernel::steps

Definition at line 630 of file ArithmeticalDSL.h.

template<typename TCoordinate, typename TInteger = TCoordinate, unsigned short adjacency = 8>
Integer DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::myUpperBound
protected

Upper intercept. Invariants:

  • for any lower leaning point L, we have remainder(L) == myUpperBound.
  • if myA and myB are not both null, myUpperBound == myLowerBound + omega() - 1
  • myLowerBound <= myUpperBound

Definition at line 658 of file ArithmeticalDSL.h.


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