DGtal
2.2.0
Toggle main menu visibility
Loading...
Searching...
No Matches
PlaneProbingR1Neighborhood.h
1
16
17
#pragma once
18
30
31
#if defined(PlaneProbingR1Neighborhood_RECURSES)
32
#error Recursive header files inclusion detected in PlaneProbingR1Neighborhood.h
33
#else
// defined(PlaneProbingR1Neighborhood_RECURSES)
35
#define PlaneProbingR1Neighborhood_RECURSES
36
37
#if !defined PlaneProbingR1Neighborhood_h
39
#define PlaneProbingR1Neighborhood_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/PlaneProbingRNeighborhood.h"
47
#include "DGtal/kernel/CPointPredicate.h"
49
50
namespace
DGtal
51
{
52
54
// template class PlaneProbingR1Neighborhood
62
template
<
typename
TPredicate>
63
class
PlaneProbingR1Neighborhood
:
public
PlaneProbingRNeighborhood
<TPredicate>
64
{
65
BOOST_CONCEPT_ASSERT
((
concepts::CPointPredicate<TPredicate>
));
66
67
// ----------------------- Public types ------------------------------
68
public
:
69
using
Predicate
= TPredicate;
70
using
Point
=
typename
TPredicate::Point;
71
using
Triangle
=
typename
PlaneProbingRNeighborhood<TPredicate>::Triangle
;
72
using
PointOnProbingRay
=
typename
PlaneProbingRNeighborhood<TPredicate>::PointOnProbingRay
;
73
using
Integer
=
typename
Point::Coordinate;
74
using
HexagonState
=
typename
PlaneProbingRNeighborhood<TPredicate>::HexagonState
;
75
76
using
Index
=
typename
PlaneProbingRNeighborhood<TPredicate>::Index
;
77
78
// ----------------------- Standard services ------------------------------
79
public
:
83
PlaneProbingR1Neighborhood
() =
delete
;
84
92
PlaneProbingR1Neighborhood
(
Predicate
const
& aPredicate,
Point
const
& aQ,
Triangle
const
& aM);
93
97
~PlaneProbingR1Neighborhood
();
98
103
PlaneProbingR1Neighborhood
(
const
PlaneProbingR1Neighborhood
& other ) =
delete
;
104
109
PlaneProbingR1Neighborhood
(
PlaneProbingR1Neighborhood
&& other ) =
delete
;
110
116
PlaneProbingR1Neighborhood
&
operator=
(
const
PlaneProbingR1Neighborhood
& other ) =
delete
;
117
123
PlaneProbingR1Neighborhood
&
operator=
(
PlaneProbingR1Neighborhood
&& other ) =
delete
;
124
125
// ----------------------- Plane Probing services ------------------------------
126
public
:
127
virtual
HexagonState
hexagonState
()
override
;
128
129
// ----------------------- Interface --------------------------------------
130
public
:
131
136
void
selfDisplay
( std::ostream & out )
const
;
137
142
bool
isValid
()
const
;
143
144
// ------------------------- Protected Data ------------------------------
145
protected
:
146
147
// ------------------------- Private Data --------------------------------
148
private
:
149
mutable
std::array<bool, 6>
myState
;
150
151
// ------------------------- Hidden services ------------------------------
152
protected
:
153
154
// ------------------------- Internals ------------------------------------
155
private
:
159
int
getNeighborhoodCode
()
const
;
160
165
std::pair<PointOnProbingRay, PointOnProbingRay>
candidateRay
(
Index
const
&
index
)
const
;
166
172
std::vector<PointOnProbingRay>
intersectSphereRay
(
PointOnProbingRay
const
&
aPoint
,
PointOnProbingRay
const
& aRay)
const
;
173
182
bool
isValidIntersectSphereRay
(
PointOnProbingRay
const
&
aPoint
,
PointOnProbingRay
const
& aRay,
183
std::vector<PointOnProbingRay>
const
& aLst)
const
;
184
189
PointOnProbingRay
closestPointOnRayConstant
(
PointOnProbingRay
const
& aRay)
const
;
190
195
PointOnProbingRay
closestPointOnRayLinear
(
PointOnProbingRay
const
& aRay)
const
;
196
201
PointOnProbingRay
closestRayPoint
(std::pair<PointOnProbingRay, PointOnProbingRay>
const
& aRayPoint)
const
;
202
203
};
// end of class PlaneProbingR1Neighborhood
204
205
212
template
<
typename
TPredicate>
213
std::ostream&
214
operator<<
( std::ostream & out,
const
PlaneProbingR1Neighborhood<TPredicate>
&
object
);
215
216
}
// namespace DGtal
217
218
220
// Includes inline functions.
221
#include "DGtal/geometry/surfaces/estimation/PlaneProbingR1Neighborhood.ih"
222
223
// //
225
226
#endif
// !defined PlaneProbingR1Neighborhood_h
227
228
#undef PlaneProbingR1Neighborhood_RECURSES
229
#endif
// else defined(PlaneProbingR1Neighborhood_RECURSES)
DGtal::PlaneProbingNeighborhood::Index
std::size_t Index
Definition
PlaneProbingNeighborhood.h:76
DGtal::PlaneProbingR1Neighborhood
Aim: Represent a way to probe the R-neighborhood, with the R1 optimization, see rldgci2019 for detail...
Definition
PlaneProbingR1Neighborhood.h:64
DGtal::PlaneProbingR1Neighborhood::Triangle
typename PlaneProbingRNeighborhood< TPredicate >::Triangle Triangle
Definition
PlaneProbingR1Neighborhood.h:71
DGtal::PlaneProbingR1Neighborhood::closestRayPoint
PointOnProbingRay closestRayPoint(std::pair< PointOnProbingRay, PointOnProbingRay > const &aRayPoint) const
DGtal::PlaneProbingR1Neighborhood::selfDisplay
void selfDisplay(std::ostream &out) const
DGtal::PlaneProbingR1Neighborhood::hexagonState
virtual HexagonState hexagonState() override
DGtal::PlaneProbingR1Neighborhood::HexagonState
typename PlaneProbingRNeighborhood< TPredicate >::HexagonState HexagonState
Definition
PlaneProbingR1Neighborhood.h:74
DGtal::PlaneProbingR1Neighborhood::PlaneProbingR1Neighborhood
PlaneProbingR1Neighborhood(PlaneProbingR1Neighborhood &&other)=delete
DGtal::PlaneProbingR1Neighborhood::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CPointPredicate< TPredicate >))
DGtal::PlaneProbingR1Neighborhood::Predicate
TPredicate Predicate
Definition
PlaneProbingR1Neighborhood.h:69
DGtal::PlaneProbingR1Neighborhood::Point
typename TPredicate::Point Point
Definition
PlaneProbingR1Neighborhood.h:70
DGtal::PlaneProbingR1Neighborhood::Index
typename PlaneProbingRNeighborhood< TPredicate >::Index Index
Definition
PlaneProbingR1Neighborhood.h:76
DGtal::PlaneProbingR1Neighborhood::isValid
bool isValid() const
DGtal::PlaneProbingR1Neighborhood::Integer
typename Point::Coordinate Integer
Definition
PlaneProbingR1Neighborhood.h:73
DGtal::PlaneProbingR1Neighborhood::closestPointOnRayConstant
PointOnProbingRay closestPointOnRayConstant(PointOnProbingRay const &aRay) const
DGtal::PlaneProbingR1Neighborhood::PlaneProbingR1Neighborhood
PlaneProbingR1Neighborhood(const PlaneProbingR1Neighborhood &other)=delete
DGtal::PlaneProbingR1Neighborhood::candidateRay
std::pair< PointOnProbingRay, PointOnProbingRay > candidateRay(Index const &index) const
DGtal::PlaneProbingR1Neighborhood::PointOnProbingRay
typename PlaneProbingRNeighborhood< TPredicate >::PointOnProbingRay PointOnProbingRay
Definition
PlaneProbingR1Neighborhood.h:72
DGtal::PlaneProbingR1Neighborhood::PlaneProbingR1Neighborhood
PlaneProbingR1Neighborhood()=delete
DGtal::PlaneProbingR1Neighborhood::closestPointOnRayLinear
PointOnProbingRay closestPointOnRayLinear(PointOnProbingRay const &aRay) const
DGtal::PlaneProbingR1Neighborhood::isValidIntersectSphereRay
bool isValidIntersectSphereRay(PointOnProbingRay const &aPoint, PointOnProbingRay const &aRay, std::vector< PointOnProbingRay > const &aLst) const
DGtal::PlaneProbingR1Neighborhood::myState
std::array< bool, 6 > myState
Definition
PlaneProbingR1Neighborhood.h:149
DGtal::PlaneProbingR1Neighborhood::operator=
PlaneProbingR1Neighborhood & operator=(const PlaneProbingR1Neighborhood &other)=delete
DGtal::PlaneProbingR1Neighborhood::PlaneProbingR1Neighborhood
PlaneProbingR1Neighborhood(Predicate const &aPredicate, Point const &aQ, Triangle const &aM)
DGtal::PlaneProbingR1Neighborhood::getNeighborhoodCode
int getNeighborhoodCode() const
DGtal::PlaneProbingR1Neighborhood::intersectSphereRay
std::vector< PointOnProbingRay > intersectSphereRay(PointOnProbingRay const &aPoint, PointOnProbingRay const &aRay) const
DGtal::PlaneProbingR1Neighborhood::~PlaneProbingR1Neighborhood
~PlaneProbingR1Neighborhood()
DGtal::PlaneProbingRNeighborhood::PointOnProbingRay
typename PlaneProbingNeighborhood< TPredicate >::PointOnProbingRay PointOnProbingRay
Definition
PlaneProbingRNeighborhood.h:72
DGtal::PlaneProbingRNeighborhood::PlaneProbingRNeighborhood
PlaneProbingRNeighborhood()=delete
DGtal::PlaneProbingRNeighborhood::HexagonState
typename PlaneProbingNeighborhood< TPredicate >::HexagonState HexagonState
Definition
PlaneProbingRNeighborhood.h:73
DGtal::PlaneProbingRNeighborhood::Triangle
typename PlaneProbingNeighborhood< TPredicate >::Triangle Triangle
Definition
PlaneProbingRNeighborhood.h:70
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
Definition
ClosedIntegerHalfPlane.h:49
DGtal::operator<<
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
DGtal::concepts::CPointPredicate
Aim: Defines a predicate on a point.
Definition
CPointPredicate.h:81
index
unsigned int index(DGtal::uint32_t n, unsigned int b)
Definition
testBits.cpp:44
aPoint
const Point aPoint(3, 4)
src
DGtal
geometry
surfaces
estimation
PlaneProbingR1Neighborhood.h
Generated on
for DGtal by
1.18.0