31 #if defined(ArithmeticalDSS_RECURSES)
32 #error Recursive header files inclusion detected in ArithmeticalDSS.h
33 #else // defined(ArithmeticalDSS_RECURSES)
35 #define ArithmeticalDSS_RECURSES
37 #if !defined ArithmeticalDSS_h
39 #define ArithmeticalDSS_h
44 #include "DGtal/base/Common.h"
45 #include "DGtal/base/Exceptions.h"
47 #include "DGtal/geometry/curves/ArithmeticalDSL.h"
48 #include "DGtal/geometry/curves/ArithmeticalDSSCheck.h"
49 #include "DGtal/geometry/curves/ArithmeticalDSSFactory.h"
50 #include "DGtal/geometry/curves/ArithmeticalDSSConvexHull.h"
51 #include "DGtal/arithmetic/SternBrocot.h"
52 #include "DGtal/math/linalg/SimpleMatrix.h"
92 template <
typename TCoordinate,
93 typename TInteger = TCoordinate,
94 unsigned short adjacency = 8>
260 const bool& areOnTheUpperLine =
true);
297 template <
typename Iterator>
529 bool isInDSL(
const DSL& aDSL, std::vector<Point> &Ulp, std::vector<Point> &Llp,
Point& outP)
const;
732 const Point& aBezout,
733 const Point& aFirstAtOppositeSide,
734 Point& aLastAtOppositeSide,
735 Point& aFirstAtRemovalSide,
736 const Point& aLastAtRemovalSide);
792 template <
typename TCoordinate,
typename TInteger,
unsigned short adjacency>
828 template <
typename TCoordinate,
typename TInteger = TCoordinate>
876 const bool& isOnTheUpperLine =
true);
914 template <
typename Iterator>
915 StandardDSS4(
const Iterator& aItb,
const Iterator& aIte);
967 template <
typename TCoordinate,
typename TInteger = TCoordinate>
1015 const bool& isOnTheUpperLine =
true);
1053 template <
typename Iterator>
1054 NaiveDSS8(
const Iterator& aItb,
const Iterator& aIte);
1075 #include "DGtal/geometry/curves/ArithmeticalDSS.ih"
1080 #endif // !defined ArithmeticalDSS_h
1082 #undef ArithmeticalDSS_RECURSES
1083 #endif // else defined(ArithmeticalDSS_RECURSES)
StandardDSS4 & operator=(const StandardDSS4 &aOther)
Integer orthogonalPosition(const Point &aPoint) const
ConstReverseIterator rend() const
MyDigitalSurface::ConstIterator ConstIterator
DSL::ConstReverseIterator ConstReverseIterator
void retractUpdateParameters(const Vector &aNewDirection)
ArithmeticalDSL< Coordinate, Integer, adjacency > DSL
Integer remainder(const Point &aPoint) const
ConstReverseIterator rbegin() const
Aim: Concept checking for Integer Numbers. More precisely, this concept is a refinement of both CEucl...
bool beforeOrEqual(const Point &aP1, const Point &aP2) const
std::string className() const
bool equalsTo(const ArithmeticalDSS &aOther) const
Position position(const Point &aPoint) const
std::pair< Vector, Vector > Steps
ArithmeticalDSS & operator=(const ArithmeticalDSS &aOther)
This class adapts any bidirectional iterator so that operator++ calls operator-- and vice versa.
Aim: This class represents a standard digital straight segment (DSS), ie. the sequence of simply 8-co...
PointD project(const Point &aM, double aR) const
ArithmeticalDSS< TCoordinate, TInteger, 8 > Super
BOOST_CONCEPT_ASSERT((concepts::CInteger< Coordinate >))
ArithmeticalDSS negate() const
std::ostream & operator<<(std::ostream &out, const ATu0v1< TKSpace, TLinearAlgebra > &object)
Super::Coordinate Coordinate
NaiveDSS8(const Coordinate &aA, const Coordinate &aB, const Point &aF, const Point &aL, const Point &aUf, const Point &aUl, const Point &aLf, const Point &aLl)
bool operator()(const Point &aPoint) const
DGtal::PointVector< 2, double > PointD
DSL::ConstIterator ConstIterator
bool extendFront(const Point &aNewPoint)
bool before(const Point &aP1, const Point &aP2) const
bool operator!=(const ArithmeticalDSS &aOther) const
bool isInDSL(const Point &aPoint) const
NaiveDSS8 & operator=(const NaiveDSS8 &aOther)
DGtal is the top-level namespace which contains all DGtal functions and types.
Aim: This class represents a naive (resp. standard) digital straight segment (DSS),...
unsigned short int isExtendableBack(const Point &aNewPoint) const
ConstIterator end() const
unsigned short int isExtendableFront(const Point &aNewPoint) const
ArithmeticalDSS computeUnion(const ArithmeticalDSS &aOther) const
Super::Coordinate Coordinate
static const unsigned short foregroundAdjacency
Aim: This class represents a standard digital straight segment (DSS), ie. the sequence of simply 4-co...
bool extendBack(const Point &aNewPoint)
bool isInDSS(const Point &aPoint) const
bool operator==(const ArithmeticalDSS &aOther) const
bool retractUpdateLeaningPoints(const Vector &aDirection, const Point &aFirst, const Point &aLast, const Point &aBezout, const Point &aFirstAtOppositeSide, Point &aLastAtOppositeSide, Point &aFirstAtRemovalSide, const Point &aLastAtRemovalSide)
ArithmeticalDSS(const Point &aPoint)
ArithmeticalDSS< TCoordinate, TInteger, 4 > Super
ConstIterator begin() const
Aim: Set of static methods that create digital straight segments (DSS) from some input parameters,...
void selfDisplay(std::ostream &out) const
StandardDSS4(const Coordinate &aA, const Coordinate &aB, const Point &aF, const Point &aL, const Point &aUf, const Point &aUl, const Point &aLf, const Point &aLl)