DGtal  1.5.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:
155  template <typename TPointAdapter>
156  TPointAdapter closestPointOnRayLogWithPredicate (TPointAdapter const& aRay) const;
157 
164  template <typename TPointAdapter>
165  TPointAdapter closestPointOnRayLinearWithPredicate (TPointAdapter const& aRay) const;
166 
167  // ------------------------- Internals ------------------------------------
168  private:
169 
170  }; // end of class PlaneProbingRNeighborhood
171 
172 
179  template <typename TPredicate>
180  std::ostream&
181  operator<< ( std::ostream & out, const PlaneProbingRNeighborhood<TPredicate> & object );
182 
183 } // namespace DGtal
184 
185 
187 // Includes inline functions.
188 #include "DGtal/geometry/surfaces/estimation/PlaneProbingRNeighborhood.ih"
189 
190 // //
192 
193 #endif // !defined PlaneProbingRNeighborhood_h
194 
195 #undef PlaneProbingRNeighborhood_RECURSES
196 #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
TPointAdapter closestPointOnRayLinearWithPredicate(TPointAdapter const &aRay) const
PlaneProbingRNeighborhood & operator=(const PlaneProbingRNeighborhood &other)=delete
PlaneProbingRNeighborhood(const PlaneProbingRNeighborhood &other)=delete
TPointAdapter closestPointOnRayLogWithPredicate(TPointAdapter const &aRay) const
PlaneProbingRNeighborhood(PlaneProbingRNeighborhood &&other)=delete
BOOST_CONCEPT_ASSERT((concepts::CPointPredicate< TPredicate >))
virtual HexagonState hexagonState() override
A ray consists of a permutation and an integer index (position on the ray). For a triplet of vector...
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