Aim: This class is a wrapper around ArithmeticalDSS that is devoted to the dynamic recognition of digital straight segments (DSS) along any sequence of digital points.
More...
#include <DGtal/geometry/curves/ArithmeticalDSSComputer.h>
template<typename TIterator, typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
class DGtal::ArithmeticalDSSComputer< TIterator, TInteger, adjacency >
Aim: This class is a wrapper around ArithmeticalDSS that is devoted to the dynamic recognition of digital straight segments (DSS) along any sequence of digital points.
See Digital straight lines and segments for further details. See also classes NaiveDSS8Computer and StandardDSS4Computer, which are aliases of this class.
- Template Parameters
-
TIterator | type of iterator on 2d digital points, at least readable and forward. |
TInteger | type of integers used for the computation of remainders, which is a model of CInteger. |
adjacency | an unsigned integer equal to 4 for standard (simply 4-connected) DSS or 8 for naive (simply 8-connected) DSS (default). |
This class is a model of CDynamicBidirectionalSegmentComputer. It is also default constructible, copy constructible, assignable and equality comparable.
- See also
- ArithmeticalDSS NaiveDSS StandardDSS
-
exampleArithmeticalDSS.cpp exampleArithmeticalDSSComputer.cpp
- Examples
- geometry/curves/convex-and-concave-parts.cpp, geometry/curves/estimation/exampleLMST2D.cpp, geometry/curves/exampleArithmeticalDSSComputer.cpp, and geometry/curves/greedy-dss-decomposition.cpp.
Definition at line 86 of file ArithmeticalDSSComputer.h.
◆ ConstIterator
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ Coordinate
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ DSS
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ Integer
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ Point
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ Primitive
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ Reverse
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ Self
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ Vector
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ ArithmeticalDSSComputer() [1/3]
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Default constructor. not valid
◆ ArithmeticalDSSComputer() [2/3]
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Constructor with initialisation
- Parameters
-
it | an iterator on 2D points |
- See also
- init
◆ ArithmeticalDSSComputer() [3/3]
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Copy constructor.
- Parameters
-
other | the object to clone. |
◆ ~ArithmeticalDSSComputer()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ a()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
- Returns
- a-parameter of the DSS
◆ b()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
- Returns
- b-parameter of the DSS
◆ back()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
- Returns
- the first point of the DSS.
◆ begin()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ BOOST_CONCEPT_ASSERT() [1/4]
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ BOOST_CONCEPT_ASSERT() [2/4]
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ BOOST_CONCEPT_ASSERT() [3/4]
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ BOOST_CONCEPT_ASSERT() [4/4]
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ BOOST_STATIC_ASSERT() [1/2]
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ BOOST_STATIC_ASSERT() [2/2]
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ end()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
- Returns
- end iterator of the DSS range.
◆ extendBack()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Tests whether the current DSS can be extended at the back. Computes the parameters of the extended DSS if yes.
- Returns
- 'true' if yes, 'false' otherwise.
◆ extendFront()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Tests whether the current DSS can be extended at the front. Computes the parameters of the extended DSS if yes.
- Returns
- 'true' if yes, 'false' otherwise.
◆ front()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
- Returns
- the last point of the DSS.
◆ getReverse()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
- Returns
- a default-constructed instance of Reverse
◆ getSelf()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
- Returns
- a default-constructed instance of Self
◆ init()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ isExtendableBack()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Tests whether the current DSS can be extended at the back.
- Returns
- 'true' if yes, 'false' otherwise.
◆ isExtendableFront()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Tests whether the current DSS can be extended at the front.
- Returns
- 'true' if yes, 'false' otherwise.
◆ isInDSL() [1/2]
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Checks whether a point is in the bounding DSL of minimal parameters
- Parameters
-
it | an iterator on the point to be checked |
- Returns
- 'true' if yes, 'false' otherwise
◆ isInDSL() [2/2]
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Checks whether a point is in the bounding DSL of minimal parameters
- Parameters
-
aPoint | the point to be checked |
- Returns
- 'true' if yes, 'false' otherwise
◆ isInDSS() [1/2]
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Checks whether a point belongs to the DSS or not
- Parameters
-
it | an iterator on the point to be checked |
- Returns
- 'true' if yes, 'false' otherwise
◆ isInDSS() [2/2]
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Checks whether a point belongs to the DSS or not
- Parameters
-
aPoint | the point to be checked |
- Returns
- 'true' if yes, 'false' otherwise
◆ isValid()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Checks the validity/consistency of the object.
- Returns
- 'true' if the object is valid, 'false' otherwise.
◆ Lf()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
- Returns
- first lower leaning point.
◆ Ll()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
- Returns
- last lower leaning point.
◆ mu()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
- Returns
- mu-parameter of the DSS
◆ omega()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
- Returns
- omega-parameter of the DSS
◆ operator!=()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Difference operator.
- Parameters
-
other | the object to compare with. |
- Returns
- 'false' if equal 'true' otherwise
◆ operator=()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Assignment.
- Parameters
-
- Returns
- a reference on 'this'.
◆ operator==()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Equality operator.
- Parameters
-
other | the object to compare with. |
- Returns
- 'true' if the DSS representations and the ranges of the two objects match, 'false' otherwise
◆ position() [1/2]
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Computes the position of a point (that does not necessarily belong to the DSS)
- Parameters
-
- Returns
- the position of *it.
◆ position() [2/2]
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Computes the position of a point (that does not necessarily belong to the DSS)
- Parameters
-
aPoint | the point whose position is returned |
- Returns
- the position of aPoint.
◆ primitive()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
- Returns
- the current DSS representation. NB: since we return a const reference, you must copy the result, if you want to keep it beyond the object's existence.
◆ remainder() [1/2]
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Computes the remainder of a point (that does not necessarily belong to the DSS)
- Parameters
-
- Returns
- the remainder of *it.
◆ remainder() [2/2]
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Computes the remainder of a point (that does not necessarily belong to the DSS)
- Parameters
-
aPoint | the point whose remainder is returned |
- Returns
- the remainder
◆ retractBack()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Removes the back point of the DSS if it has more than two points
- Returns
- 'true' if the back point is removed, 'false' otherwise.
◆ retractFront()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Removes the front point of the DSS if it has more than two points
- Returns
- 'true' if the front point is removed, 'false' otherwise.
◆ selfDisplay()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
Writes/Displays the object on an output stream.
- Parameters
-
out | the output stream where the object is written. |
◆ Uf()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
- Returns
- first upper leaning point.
◆ Ul()
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
- Returns
- last upper leaning point.
◆ myBegin
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ myDSS
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
◆ myEnd
template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate, unsigned short adjacency = 8>
The documentation for this class was generated from the following file: