|
DGtal 2.0.0
|
Aim: Small class that contains the code that depends on the arithmetical thickness (either naive or standard) of a digital straight line (DSL). It provides mainly two static methods: More...
#include <DGtal/geometry/curves/ArithmeticalDSLKernel.h>
Public Types | |
| typedef SpaceND< 2, TCoordinate > | Space |
| typedef Space::Vector | Vector |
| typedef std::pair< Vector, Vector > | Steps |
Public Member Functions | |
| BOOST_STATIC_CONSTANT (unsigned short, ForegroundAdjacency=8) | |
| BOOST_STATIC_CONSTANT (unsigned short, BackgroundAdjacency=4) | |
Static Public Member Functions | |
| template<typename TInteger> | |
| static Vector | shift (const TInteger &a, const TInteger &b) |
| template<typename TInteger> | |
| static Steps | steps (const TInteger &a, const TInteger &b) |
| template<typename TInteger> | |
| static TInteger | norm (const TInteger &a, const TInteger &b) |
Aim: Small class that contains the code that depends on the arithmetical thickness (either naive or standard) of a digital straight line (DSL). It provides mainly two static methods:
These methods are specialized with respect to the chosen adjacency 8 (default) or 4.
Digital straight lines and segments
| TCoordinate | a model of integer for the DGtal point coordinates |
| adjacency | integer equal to 8 (default) for naive (simply 8-connected) DSL, and 4 for standard (simply 4-connected) DSL. |
Definition at line 91 of file ArithmeticalDSLKernel.h.
| typedef SpaceND<2, TCoordinate> DGtal::ArithmeticalDSLKernel< TCoordinate, adjacency >::Space |
Type of the digital plane.
Definition at line 99 of file ArithmeticalDSLKernel.h.
| typedef std::pair<Vector, Vector> DGtal::ArithmeticalDSLKernel< TCoordinate, adjacency >::Steps |
Type of the step vectors, defined as a STL pair of Vector
Definition at line 107 of file ArithmeticalDSLKernel.h.
| typedef Space::Vector DGtal::ArithmeticalDSLKernel< TCoordinate, adjacency >::Vector |
Type of the shift vector.
Definition at line 103 of file ArithmeticalDSLKernel.h.
| DGtal::ArithmeticalDSLKernel< TCoordinate, adjacency >::BOOST_STATIC_CONSTANT | ( | unsigned short | , |
| BackgroundAdjacency | = 4 ) |
Adjacency used for the complement
| DGtal::ArithmeticalDSLKernel< TCoordinate, adjacency >::BOOST_STATIC_CONSTANT | ( | unsigned short | , |
| ForegroundAdjacency | = 8 ) |
Adjacency used for the DSL
|
static |
Returns the \( L_{\infty} \) (for the 8-adjacency) or the \( L_1 \) norm (for the 4-adjacency) of two integers a and b,
| a | a-parameter |
| b | b-parameter |
| TInteger | a model of integer for the parameters a and b |
Referenced by unionComparisonTest().
|
static |
Given parameters a and b, this method computes the shift vector translating a point of remainder \( r \) to a point of remainder \( r + \omega \)
NB: The shift vector is set to (0,0) if \( \omega = 0 \), ie. a and b are both null.
NB: If ( a , b ) lies between two octants (resp. quadrants) (eg. b > 0 and a = 0), the shift vector of the next octant (resp. quadrant) is chosen with respect to the counter-clockwise orientation.
| a | a-parameter |
| b | b-parameter |
| TInteger | a model of integer for the parameters a and b |
Referenced by specialCases(), and test().
|
static |
Given parameters a and b, this method returns the two step vectors, ie. the vectors that are used to iterate over the points of a DSL of slope a / b.
In the general case, the first vector \( v \) translates any point \( p \) of remainder \( r \) to its unique neighbor point \( q \) of remainder greater than or equal to \( r \), while the second one \( w \) is such that \( v - w = s \).
NB: The two vectors are set to (0,0) if \( \omega = 0 \), ie. a and b are both null.
NB: The second vector is set to (0,0) if \( \omega = 1 \), ie. if either a or b is null, if either a == b or either a == - b in the naive case.
| a | a-parameter |
| b | b-parameter |
| TInteger | a model of integer for the parameters a and b |
Referenced by specialCases(), and test().