DGtal 1.3.0
Searching...
No Matches
DGtal::StandardDSL< TCoordinate, TInteger > Class Template Reference

Aim: This class is an alias of ArithmeticalDSS for standard DSL. It represents a 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 = |a| + |b|$$. Note that any DSL such that $$\omega = |a| + |b|$$ is simply 4-connected. More...

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

Inheritance diagram for DGtal::StandardDSL< TCoordinate, TInteger >:

## Public Types

typedef ArithmeticalDSL< TCoordinate, TInteger, 4 > Super

typedef Super::Coordinate Coordinate

typedef Super::Integer Integer

Public Types inherited from DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >
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

StandardDSL (const Coordinate &aA, const Coordinate &aB, const Integer &aMu)

StandardDSL (const StandardDSL &aOther)

StandardDSLoperator= (const StandardDSL &aOther)

Public Member Functions inherited from DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >
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 inherited from DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >
static Integer remainder (const Coordinate &aA, const Coordinate &aB, const Point &aPoint)

static Coordinate toCoordinate (const Integer &aI)

Static Public Attributes inherited from DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >

Protected Attributes inherited from DGtal::ArithmeticalDSL< TCoordinate, TInteger, adjacency >
Steps mySteps

Vector myShift

Coordinate myA

Coordinate myB

Integer myLowerBound

Integer myUpperBound

## Detailed Description

template<typename TCoordinate, typename TInteger = TCoordinate>
class DGtal::StandardDSL< TCoordinate, TInteger >

Aim: This class is an alias of ArithmeticalDSS for standard DSL. It represents a 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 = |a| + |b|$$. Note that any DSL such that $$\omega = |a| + |b|$$ is simply 4-connected.

[Reveilles, 1991 : [97]].

A standard DSL can be declared and constructed as follows:

// Construct a standard DSL from a, b, mu
StandardDSL<Integer> line( 2, 5, 0 );
Aim: This class is an alias of ArithmeticalDSS for standard DSL. It represents a standard digital str...

See Digital straight lines and segments
for further details.

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.

This class is a model of CPointFunctor and of CConstBidirectionalRange.

ArithmeticalDSL NaiveDSL StandardDSL
exampleArithmeticalDSL.cpp
Examples
geometry/curves/exampleArithmeticalDSL.cpp.

Definition at line 708 of file ArithmeticalDSL.h.

## ◆ Coordinate

template<typename TCoordinate , typename TInteger = TCoordinate>
 typedef Super::Coordinate DGtal::StandardDSL< TCoordinate, TInteger >::Coordinate

Definition at line 716 of file ArithmeticalDSL.h.

## ◆ Integer

template<typename TCoordinate , typename TInteger = TCoordinate>
 typedef Super::Integer DGtal::StandardDSL< TCoordinate, TInteger >::Integer

Definition at line 717 of file ArithmeticalDSL.h.

## ◆ Super

template<typename TCoordinate , typename TInteger = TCoordinate>
 typedef ArithmeticalDSL DGtal::StandardDSL< TCoordinate, TInteger >::Super

Type of base class.

Definition at line 715 of file ArithmeticalDSL.h.

## ◆ StandardDSL() [1/2]

template<typename TCoordinate , typename TInteger = TCoordinate>
 DGtal::StandardDSL< TCoordinate, TInteger >::StandardDSL ( const Coordinate & aA, const Coordinate & aB, const Integer & aMu )

Constructor.

Parameters
 aA y-component of the direction vector aB x-component of the direction vector aMu intercept

## ◆ StandardDSL() [2/2]

template<typename TCoordinate , typename TInteger = TCoordinate>
 DGtal::StandardDSL< TCoordinate, TInteger >::StandardDSL ( const StandardDSL< TCoordinate, TInteger > & aOther )

Copy constructor.

Parameters
 aOther the object to clone.

## ◆ operator=()

template<typename TCoordinate , typename TInteger = TCoordinate>
 StandardDSL & DGtal::StandardDSL< TCoordinate, TInteger >::operator= ( const StandardDSL< TCoordinate, TInteger > & aOther )

Assignment.

Parameters
 aOther the object to copy.
Returns
a reference on 'this'.

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