DGtal 1.3.0
Loading...
Searching...
No Matches
ArithmeticalDSSFactory.h
1
17#pragma once
18
31#if defined(ArithmeticalDSSFactory_RECURSES)
32#error Recursive header files inclusion detected in ArithmeticalDSSFactory.h
33#else // defined(ArithmeticalDSSFactory_RECURSES)
35#define ArithmeticalDSSFactory_RECURSES
36
37#if !defined ArithmeticalDSSFactory_h
39#define ArithmeticalDSSFactory_h
40
42// Inclusions
43#include <iostream>
44#include "DGtal/base/Common.h"
45#include "DGtal/geometry/curves/ArithmeticalDSL.h"
47
48namespace DGtal
49{
50
51 //forward declaration of ArithmeticalDSS
52 template <typename TCoordinate,
53 typename TInteger,
54 unsigned short adjacency>
55 class ArithmeticalDSS;
56
58 // template class ArithmeticalDSSFactory
70 template <typename TCoordinate,
71 typename TInteger = TCoordinate,
72 unsigned short adjacency = 8>
74 {
75
76 // ----------------------- Inner types -----------------------------------
77 public:
78
79 typedef TCoordinate Coordinate;
81 typedef TInteger Integer;
83 typedef Point Vector;
84 typedef std::pair<Vector,Vector> Steps;
85
88
89 // ----------------------- Creation methods ------------------------------
90
91 public:
92
103 static DSS createSubsegment(const DSL& aDSL, const Point& aF, const Point& aL);
104
117 static DSS createSubsegment(const DSS& aDSS, const Point& aF, const Point& aL);
118
129 static DSS createPattern(const Point& aF, const Point& aL);
130
145 static DSS createReversedPattern(const Point& aF, const Point& aL);
146
163 static DSS createDSS(const Coordinate& aA, const Coordinate& aB, const Point& aF, const Point& aL, const Point& aU);
164
165
166
167 // ----------------------- Internals -------------------------------------
168 private:
169
180 static DSS createLeftSubsegment(const DSS& aDSS, const Point& aL);
181
198 const Coordinate& aB,
199 const Coordinate& aR);
200
201
202 }; // end of class ArithmeticalDSSFactory
203
204
205
206} // namespace DGtal
207
208
210// Includes inline functions.
211#include "DGtal/geometry/curves/ArithmeticalDSSFactory.ih"
212
213// //
215
216#endif // !defined ArithmeticalDSSFactory_h
217
218#undef ArithmeticalDSSFactory_RECURSES
219#endif // else defined(ArithmeticalDSSFactory_RECURSES)
Aim: This class represents a naive (resp. standard) digital straight line (DSL), ie....
Aim: Set of static methods that create digital straight segments (DSS) from some input parameters,...
static DSS createDSS(const Coordinate &aA, const Coordinate &aB, const Point &aF, const Point &aL, const Point &aU)
Method that creates a DSS from a direction vector, a first and last point and one upper leaning point...
static DSS createSubsegment(const DSL &aDSL, const Point &aF, const Point &aL)
static DSS createReversedPattern(const Point &aF, const Point &aL)
Method that creates a DSS that is a reversed pattern or a repetition of a reversed pattern from two i...
static DSS createPattern(const Point &aF, const Point &aL)
Method that creates a DSS that is a pattern or a repetition of a pattern from two input digital point...
ArithmeticalDSS< TCoordinate, TInteger, adjacency > DSS
ArithmeticalDSL< TCoordinate, TInteger, adjacency > DSL
DGtal::PointVector< 2, Coordinate > Point
static Vector bezoutVector(const Coordinate &aA, const Coordinate &aB, const Coordinate &aR)
static DSS createLeftSubsegment(const DSS &aDSS, const Point &aL)
std::pair< Vector, Vector > Steps
static DSS createSubsegment(const DSS &aDSS, const Point &aF, const Point &aL)
Aim: This class represents a naive (resp. standard) digital straight segment (DSS),...
Aim: Implements basic operations that will be used in Point and Vector classes.
Definition: PointVector.h:593
DGtal is the top-level namespace which contains all DGtal functions and types.