DGtal 1.3.0
Loading...
Searching...
No Matches
DigitalPlanePredicate.h
1
17#pragma once
18
31#if defined(DigitalPlanePredicate_RECURSES)
32#error Recursive header files inclusion detected in DigitalPlanePredicate.h
33#else // defined(DigitalPlanePredicate_RECURSES)
35#define DigitalPlanePredicate_RECURSES
36
37#if !defined DigitalPlanePredicate_h
39#define DigitalPlanePredicate_h
40
42// Inclusions
43#include <iostream>
44#include "DGtal/base/Common.h"
45#include "DGtal/kernel/CSpace.h"
47
48namespace DGtal
49{
50
52 // template class DigitalPlanePredicate
71 template <typename TSpace>
73 {
75
76 // ----------------------- public types ------------------------------
77 public:
79 using Space = TSpace;
80 using Integer = typename Space::Integer;
81 using Point = typename Space::Point;
82 using Vector = typename Space::Vector;
83
84 // ----------------------- Standard services ------------------------------
85 public:
90
97 DigitalPlanePredicate (Vector const& aN, Integer const& aMu, Integer const& aNu);
98
103
109
115
122
129
130 //-------------------- plane services -----------------------------
131 public:
135 Vector const& normal () const;
136
140 Integer mu () const;
141
145 Integer nu () const;
146
147 //-------------------- model of concepts::CPointPredicate -----------------------------
148 public:
155 bool operator() (Point const& aPoint) const;
156
157 // ----------------------- Interface --------------------------------------
158 public:
159
164 void selfDisplay ( std::ostream & out ) const;
165
170 bool isValid() const;
171
172 // ------------------------- Protected Datas ------------------------------
173 protected:
174
175 // ------------------------- Private Datas --------------------------------
176 private:
181 // ------------------------- Hidden services ------------------------------
182 protected:
183
184 // ------------------------- Internals ------------------------------------
185 private:
186
187 }; // end of class DigitalPlanePredicate
188
189
196 template <typename T>
197 std::ostream&
198 operator<< ( std::ostream & out, const DigitalPlanePredicate<T> & object );
199
200} // namespace DGtal
201
202
204// Includes inline functions.
205#include "DGtal/geometry/surfaces/DigitalPlanePredicate.ih"
206
207// //
209
210#endif // !defined DigitalPlanePredicate_h
211
212#undef DigitalPlanePredicate_RECURSES
213#endif // else defined(DigitalPlanePredicate_RECURSES)
Aim: Representing digital planes, which are digitizations of Euclidean planes, as point predicates.
DigitalPlanePredicate(Vector const &aN, Integer const &aMu, Integer const &aNu)
bool operator()(Point const &aPoint) const
typename Space::Integer Integer
DigitalPlanePredicate & operator=(const DigitalPlanePredicate &other)
DigitalPlanePredicate(const DigitalPlanePredicate &other)
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
Vector const & normal() const
DigitalPlanePredicate(DigitalPlanePredicate &&other)
void selfDisplay(std::ostream &out) const
TInteger Integer
Arithmetic ring induced by (+,-,*) and Integer numbers.
Definition: SpaceND.h:102
PointVector< dim, Integer > Point
Points in DGtal::SpaceND.
Definition: SpaceND.h:110
PointVector< dim, Integer > Vector
Vectors in DGtal::SpaceND.
Definition: SpaceND.h:113
DGtal is the top-level namespace which contains all DGtal functions and types.
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
Aim: Defines the concept describing a digital space, ie a cartesian product of integer lines.
Definition: CSpace.h:106
const Point aPoint(3, 4)