DGtal  1.5.beta
PlaneProbingHNeighborhood.h
1 
17 #pragma once
18 
31 #if defined(PlaneProbingHNeighborhood_RECURSES)
32 #error Recursive header files inclusion detected in PlaneProbingHNeighborhood.h
33 #else // defined(PlaneProbingHNeighborhood_RECURSES)
35 #define PlaneProbingHNeighborhood_RECURSES
36 
37 #if !defined PlaneProbingHNeighborhood_h
39 #define PlaneProbingHNeighborhood_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 PlaneProbingHNeighborhood
61  template <typename TPredicate>
63  {
65 
66  // ----------------------- Public types ------------------------------
67  public:
68  using Predicate = TPredicate;
69  using Point = typename TPredicate::Point;
73 
74  // ----------------------- Standard services ------------------------------
75  public:
80 
88  PlaneProbingHNeighborhood(Predicate const& aPredicate, Point const& aQ, Triangle const& aM);
89 
94 
100 
106 
113 
120 
121  // ----------------------- Plane Probing services ------------------------------
122  public:
123  virtual HexagonState hexagonState () override;
124 
125  // ----------------------- Interface --------------------------------------
126  public:
127 
132  void selfDisplay ( std::ostream & out ) const;
133 
138  bool isValid() const;
139 
140  // ------------------------- Protected Datas ------------------------------
141  protected:
142 
143  // ------------------------- Private Datas --------------------------------
144  private:
145 
146  // ------------------------- Hidden services ------------------------------
147  protected:
148 
149  // ------------------------- Internals ------------------------------------
150  private:
151 
152  }; // end of class PlaneProbingHNeighborhood
153 
154 
161  template <typename TPredicate>
162  std::ostream&
163  operator<< ( std::ostream & out, const PlaneProbingHNeighborhood<TPredicate> & object );
164 
165 } // namespace DGtal
166 
167 
169 // Includes inline functions.
170 #include "DGtal/geometry/surfaces/estimation/PlaneProbingHNeighborhood.ih"
171 
172 // //
174 
175 #endif // !defined PlaneProbingHNeighborhood_h
176 
177 #undef PlaneProbingHNeighborhood_RECURSES
178 #endif // else defined(PlaneProbingHNeighborhood_RECURSES)
Aim: Represent a way to probe the H-neighborhood.
typename PlaneProbingNeighborhood< TPredicate >::Triangle Triangle
BOOST_CONCEPT_ASSERT((concepts::CPointPredicate< TPredicate >))
virtual HexagonState hexagonState() override
PlaneProbingHNeighborhood & operator=(const PlaneProbingHNeighborhood &other)=delete
void selfDisplay(std::ostream &out) const
typename PlaneProbingNeighborhood< TPredicate >::PointOnProbingRay PointOnProbingRay
PlaneProbingHNeighborhood(Predicate const &aPredicate, Point const &aQ, Triangle const &aM)
PlaneProbingHNeighborhood(const PlaneProbingHNeighborhood &other)=delete
PlaneProbingHNeighborhood(PlaneProbingHNeighborhood &&other)=delete
Aim: A base virtual class that represents a way to probe a neighborhood, used in the plane probing ba...
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