DGtal  1.2.0
DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency > Class Template Reference

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

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

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

## Data Structures

class  ConstIterator
Aim: This class aims at representing an iterator that provides a way to scan the points of a DSL. It is both a model of readable iterator and of bidirectional iterator. More...

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

## 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 : [85]].

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 );
boost::int64_t int64_t
signed 94-bit integer.
Definition: BasicTypes.h:74
boost::int32_t int32_t
signed 32-bit integer.
Definition: BasicTypes.h:72

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
 TCoordinate a model of integer for the DGtal point coordinates and the slope parameters. TInteger a model of integer for the intercepts and the remainders that represents a larger range of integers than TCoordinate. adjacency an unsigned integer equal to 8 (default) for naive DSL, and 4 for standard DSL.
ArithmeticalDSL NaiveDSL StandardDSL
exampleArithmeticalDSL.cpp

Definition at line 106 of file ArithmeticalDSL.h.

## ◆ ConstReverseIterator

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

Type of const reverse iterator, adapted from ConstIterator.

Definition at line 297 of file ArithmeticalDSL.h.

## ◆ Coordinate

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.

## ◆ Integer

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.

## ◆ Octant

template<typename TCoordinate , typename TInteger = TCoordinate, unsigned short adjacency = 8>
 typedef std::pair 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.

## ◆ Point

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.

## ◆ Position

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.

## ◆ Space

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

Type of digital plane.

Definition at line 137 of file ArithmeticalDSL.h.

## ◆ Steps

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

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

Definition at line 149 of file ArithmeticalDSL.h.

## ◆ Vector

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.

## ◆ ArithmeticalDSL() [1/3]

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.

isValid
Parameters
 aA y-component of the direction vector aB x-component of the direction vector aLowerIntercept lower intercept aUpperIntercept upper intercept aSteps pair of steps used to iterate over the DSL points aShift shift vector

## ◆ ArithmeticalDSL() [2/3]

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
 aA y-component of the direction vector aB x-component of the direction vector aMu intercept

## ◆ ArithmeticalDSL() [3/3]

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
 aOther the object to clone.

## ◆ ~ArithmeticalDSL()

template<typename TCoordinate , typename TInteger = TCoordinate, unsigned short adjacency = 8>
 DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::~ArithmeticalDSL ( )

Destructor.

## ◆ a()

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)

Referenced by exampleNaiveDSL(), and exampleStandardDSL().

## ◆ b()

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)

Referenced by exampleNaiveDSL(), and exampleStandardDSL().

## ◆ before()

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
 aP1 any point aP2 any point
Returns
'true' is aP1 is strictly before aP2, 'false' otherwise
beforeOrEqual position

## ◆ beforeOrEqual()

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
 aP1 any point aP2 any point
Returns
'true' is aP1 is before or equal to aP2, 'false' otherwise
before position

## ◆ begin()

template<typename TCoordinate , typename TInteger = TCoordinate, unsigned short adjacency = 8>
 ConstIterator DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::begin ( const Point & aPoint ) const
Parameters
 aPoint any point of the DSL
Precondition
aPoint should belong to the DSL
Returns
begin iterator, which points to aPoint

Referenced by exampleNaiveDSL(), and exampleStandardDSL().

## ◆ BOOST_CONCEPT_ASSERT() [1/2]

template<typename TCoordinate , typename TInteger = TCoordinate, unsigned short adjacency = 8>
 DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::BOOST_CONCEPT_ASSERT ( (concepts::CInteger< Coordinate >) )

## ◆ BOOST_CONCEPT_ASSERT() [2/2]

template<typename TCoordinate , typename TInteger = TCoordinate, unsigned short adjacency = 8>
 DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::BOOST_CONCEPT_ASSERT ( (concepts::CInteger< Integer >) )

## ◆ checkShiftAndSteps()

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

## ◆ end()

template<typename TCoordinate , typename TInteger = TCoordinate, unsigned short adjacency = 8>
 ConstIterator DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::end ( const Point & aPoint ) const
Parameters
 aPoint any point of the DSL
Precondition
aPoint should belong to the DSL
Returns
end iterator, which points to the point located after aPoint

Referenced by exampleNaiveDSL(), and exampleStandardDSL().

## ◆ equalsTo()

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
 aOther the object to compare with.
Returns
'true' if the parameters of the DSL are equal (orientation matters), 'false' otherwise

## ◆ getPoint() [1/2]

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

## ◆ getPoint() [2/2]

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
 aPosition position of the returned point
Returns
the point of the DSL located at position aPosition

## ◆ isInDSL()

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
 aPoint any point

## ◆ isLowerLeaningPoint()

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
 aPoint a point
Returns
'true' if aPoint is a lower leaning point of *this, false otherwise

## ◆ isUpperLeaningPoint()

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
 aPoint a point
Returns
'true' if aPoint is an upper leaning point of *this, false otherwise

## ◆ isValid()

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.

Referenced by exampleArithmeticalDSLTypes().

## ◆ mu()

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

## ◆ negate()

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

Referenced by exampleNaiveDSL(), and exampleStandardDSL().

## ◆ octant()

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

## ◆ omega()

template<typename TCoordinate , typename TInteger = TCoordinate, unsigned short adjacency = 8>
 Integer DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::omega ( ) const
Returns
the arithmetical thickness $$\omega$$
patternLength

## ◆ operator!=()

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
 aOther the object to compare with.
Returns
'true' the two set of points that are implicitly defined are different, 'false' otherwise

## ◆ operator()()

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
 aPoint any point
isInDSL

## ◆ operator=()

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
 aOther the object to copy.
Returns
a reference on 'this'.

## ◆ operator==()

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
 aOther the object to compare with.
Returns
'true' the two sets of points that are implicitly defined are equal (without respect to the orientation), 'false' otherwise
equalsTo

## ◆ orthogonalPosition()

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
 aPoint the point whose position is returned
Returns
the position

## ◆ patternLength()

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

## ◆ position()

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
 aPoint the point whose position is returned
Returns
the position

## ◆ rbegin()

template<typename TCoordinate , typename TInteger = TCoordinate, unsigned short adjacency = 8>
 ConstReverseIterator DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::rbegin ( const Point & aPoint ) const
Parameters
 aPoint any point of the DSL
Precondition
aPoint sould belongs to the DSL
Returns
begin reverse iterator, which points to aPoint

## ◆ remainder() [1/2]

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
 aA y-component of the direction vector aB x-component of the direction vector aPoint any point
Returns
remainder of aPoint

## ◆ remainder() [2/2]

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
 aPoint any point

## ◆ rend()

template<typename TCoordinate , typename TInteger = TCoordinate, unsigned short adjacency = 8>
 ConstReverseIterator DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::rend ( const Point & aPoint ) const
Parameters
 aPoint any point of the DSL
Precondition
aPoint sould belongs to the DSL
Returns
end iterator, which points to the point located before aPoint

## ◆ sameOctant()

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
 aOther the object to compare with. [out] theOctant where 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
sameOctant

## ◆ selfDisplay()

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
 out the output stream where the object is written.

## ◆ shift()

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

## ◆ steps()

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.

## ◆ toCoordinate()

template<typename TCoordinate , typename TInteger = TCoordinate, unsigned short adjacency = 8>
 static Coordinate DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >::toCoordinate ( const Integer & aI )
static

## ◆ ArithmeticalDSS< TCoordinate, TInteger, adjacency >

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

Definition at line 672 of file ArithmeticalDSL.h.

## Field Documentation

template<typename TCoordinate , typename TInteger = TCoordinate, unsigned short adjacency = 8>
static

Definition at line 118 of file ArithmeticalDSL.h.

## ◆ myA

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.

## ◆ myB

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.

## ◆ myLowerBound

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.

## ◆ myShift

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.

ArithmeticalDSLKernel::shift

Definition at line 635 of file ArithmeticalDSL.h.

## ◆ mySteps

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.

ArithmeticalDSLKernel::steps

Definition at line 630 of file ArithmeticalDSL.h.

## ◆ myUpperBound

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: