DGtal 2.0.0
Loading...
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 >:
[legend]

Public Types

typedef ArithmeticalDSL< TCoordinate, TInteger, 4 > Super
typedef Super::Coordinate Coordinate
typedef Super::Integer Integer
Public Types inherited from DGtal::ArithmeticalDSL< TCoordinate, TCoordinate, 4 >
typedef TCoordinate Coordinate
typedef TCoordinate 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< ConstIterator > ConstReverseIterator

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, TCoordinate, 4 >
 BOOST_CONCEPT_ASSERT ((concepts::CInteger< Coordinate >))
 ArithmeticalDSL (const Coordinate &aA, const Coordinate &aB, const Integer &aLowerIntercept, const Integer &aUpperIntercept, const Steps &aSteps, const Vector &aShift)
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 orthogonalPosition (const Point &aPoint) const
Position position (const Point &aPoint) const
Point getPoint () 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

Additional Inherited Members

Static Public Member Functions inherited from DGtal::ArithmeticalDSL< TCoordinate, TCoordinate, 4 >
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, TCoordinate, 4 >
static const unsigned short foregroundAdjacency
Protected Attributes inherited from DGtal::ArithmeticalDSL< TCoordinate, TCoordinate, 4 >
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 : [102]].

A standard DSL can be declared and constructed as follows:

// Construct a standard DSL from a, b, mu
StandardDSL<Integer> line( 2, 5, 0 );

See Digital straight lines and segments for further details.

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.

This class is a model of CPointFunctor and of CConstBidirectionalRange.

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

Definition at line 709 of file ArithmeticalDSL.h.

Member Typedef Documentation

◆ Coordinate

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

Definition at line 717 of file ArithmeticalDSL.h.

◆ Integer

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

Definition at line 718 of file ArithmeticalDSL.h.

◆ Super

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

Type of base class.

Definition at line 716 of file ArithmeticalDSL.h.

Constructor & Destructor Documentation

◆ 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
aAy-component of the direction vector
aBx-component of the direction vector
aMuintercept

Referenced by operator=(), and StandardDSL().

◆ StandardDSL() [2/2]

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

Copy constructor.

Parameters
aOtherthe object to clone.

References StandardDSL().

Member Function Documentation

◆ operator=()

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

Assignment.

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

References StandardDSL().


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