DGtal  1.4.beta
PlaneProbingRNeighborhood.h
1 
17 #pragma once
18 
31 #if defined(PlaneProbingRNeighborhood_RECURSES)
32 #error Recursive header files inclusion detected in PlaneProbingRNeighborhood.h
33 #else // defined(PlaneProbingRNeighborhood_RECURSES)
35 #define PlaneProbingRNeighborhood_RECURSES
36 
37 #if !defined PlaneProbingRNeighborhood_h
39 #define PlaneProbingRNeighborhood_h
40 
42 // Inclusions
43 #include <iostream>
44 #include "DGtal/base/Common.h"
45 #include "DGtal/geometry/helpers/PlaneProbingEstimatorHelper.h"
46 #include "DGtal/geometry/surfaces/estimation/PlaneProbingNeighborhood.h"
47 #include "DGtal/kernel/CPointPredicate.h"
49 
50 namespace DGtal
51 {
52 
54  // template class PlaneProbingRNeighborhood
61  template <typename TPredicate>
63  {
65 
66  // ----------------------- Public types ------------------------------
67  public:
68  using Predicate = TPredicate;
69  using Point = typename TPredicate::Point;
74 
75  // ----------------------- Standard services ------------------------------
76  public:
81 
89  PlaneProbingRNeighborhood(Predicate const& aPredicate, Point const& aQ, Triangle const& aM);
90 
95 
101 
107 
114 
121 
122  // ----------------------- Plane Probing services ------------------------------
123  public:
124  virtual HexagonState hexagonState () override;
125 
126  // ----------------------- Interface --------------------------------------
127  public:
128 
133  void selfDisplay ( std::ostream & out ) const;
134 
139  bool isValid() const;
140 
141  // ------------------------- Protected Datas ------------------------------
142  protected:
143 
144  // ------------------------- Private Datas --------------------------------
145  private:
146 
147  // ------------------------- Hidden services ------------------------------
148  protected:
156 
164 
165  // ------------------------- Internals ------------------------------------
166  private:
167 
168  }; // end of class PlaneProbingRNeighborhood
169 
170 
177  template <typename TPredicate>
178  std::ostream&
179  operator<< ( std::ostream & out, const PlaneProbingRNeighborhood<TPredicate> & object );
180 
181 } // namespace DGtal
182 
183 
185 // Includes inline functions.
186 #include "DGtal/geometry/surfaces/estimation/PlaneProbingRNeighborhood.ih"
187 
188 // //
190 
191 #endif // !defined PlaneProbingRNeighborhood_h
192 
193 #undef PlaneProbingRNeighborhood_RECURSES
194 #endif // else defined(PlaneProbingRNeighborhood_RECURSES)
Aim: A base virtual class that represents a way to probe a neighborhood, used in the plane probing ba...
typename Point::Coordinate Integer
Aim: Represent a way to probe the R-neighborhood.
PlaneProbingRNeighborhood(Predicate const &aPredicate, Point const &aQ, Triangle const &aM)
void selfDisplay(std::ostream &out) const
PlaneProbingRNeighborhood & operator=(const PlaneProbingRNeighborhood &other)=delete
PointOnProbingRay closestPointOnRayLogWithPredicate(PointOnProbingRay const &aRay) const
PlaneProbingRNeighborhood(const PlaneProbingRNeighborhood &other)=delete
PointOnProbingRay closestPointOnRayLinearWithPredicate(PointOnProbingRay const &aRay) const
PlaneProbingRNeighborhood(PlaneProbingRNeighborhood &&other)=delete
BOOST_CONCEPT_ASSERT((concepts::CPointPredicate< TPredicate >))
virtual HexagonState hexagonState() override
DGtal is the top-level namespace which contains all DGtal functions and types.
std::ostream & operator<<(std::ostream &out, const ATu0v1< TKSpace, TLinearAlgebra > &object)
Aim: Defines a predicate on a point.
MyPointD Point
Definition: testClone2.cpp:383