DGtal
2.2.0
Toggle main menu visibility
Loading...
Searching...
No Matches
LambdaMST3DBy2D.h
1
16
17
#pragma once
18
28
29
#if defined(LAMBDAMST3DBy2D_RECURSES)
30
#error Recursive header files inclusion detected in LambdaMST3DBy2D.h
31
#else
// defined(LAMBDAMST3DBy2D_RECURSES)
33
#define LAMBDAMST3DBy2D_RECURSES
34
35
#if !defined LAMBDAMST3DBy2D_h
37
#define LAMBDAMST3DBy2D_h
38
39
#include <algorithm>
40
#include <cmath>
41
#include <list>
42
#include <iterator>
43
#include <DGtal/base/Common.h>
44
#include <DGtal/helpers/StdDefs.h>
45
#include "DGtal/kernel/CSpace.h"
46
#include "DGtal/kernel/PointVector.h"
47
#include "DGtal/kernel/BasicPointFunctors.h"
48
#include "DGtal/geometry/curves/estimation/LambdaMST2D.h"
49
#include "DGtal/geometry/curves/ArithmeticalDSSComputer.h"
50
#include "DGtal/geometry/curves/SaturatedSegmentation.h"
51
52
namespace
DGtal
{
61
template
<
typename
Iterator3D,
typename
Functor,
typename
LambdaFunctor,
int
CONNECTIVITY = 8 >
62
class
LambdaMST3DBy2DEstimator
63
{
64
public
:
65
// ----------------------- Types ------------------------------
66
public
:
67
typedef
PointVector < 3, double >
RealVector3D
;
68
typedef
PointVector < 3, int >
Point3D
;
69
typedef
PointVector < 2, int >
Point2D
;
70
typedef
PointVector < 2, double >
RealVector2D
;
71
typedef
std::vector < Point2D >
TCurve2D
;
72
typedef
ArithmeticalDSSComputer < typename TCurve2D::const_iterator, int, CONNECTIVITY >
SegmentComputer2D
;
73
typedef
SaturatedSegmentation < SegmentComputer2D >
Segmentation2D
;
74
typedef
typename
Functor::MAIN_AXIS
MAIN_AXIS
;
75
76
// ----------------------- Private types ------------------------------
77
private
:
78
typedef
LambdaMST2D < Segmentation2D, LambdaFunctor >
TEstimator
;
79
typedef
functors::Projector < SpaceND < 2, int > >
Projector2d
;
80
81
// ----------------------- Standard services ------------------------------
82
public
:
83
LambdaMST3DBy2DEstimator
();
84
91
void
init
( Iterator3D itB, Iterator3D itE,
MAIN_AXIS
axis );
92
97
bool
isValid
( )
const
;
98
103
RealVector3D
eval
(
const
Point3D
& point );
104
114
template
<
typename
OutputIterator>
115
OutputIterator
eval
( Iterator3D itb, Iterator3D ite, OutputIterator result );
116
117
// ------------------------- Internals ------------------------------------
118
protected
:
119
120
RealVector2D
Estimate2DTangent
( TCurve2D::const_iterator itb, TCurve2D::const_iterator ite,
const
Point2D
& point );
121
template
<
typename
OutputIterator >
122
OutputIterator
Estimate2DTangent
( TCurve2D::const_iterator itb, TCurve2D::const_iterator ite, OutputIterator result );
123
124
// ------------------------- Private Data --------------------------------
125
private
:
126
Iterator3D
myBegin
;
127
Iterator3D
myEnd
;
128
Functor
myFunctor
;
129
MAIN_AXIS
myAxis
;
130
TCurve2D
tXY
,
tXZ
,
tYZ
;
132
Projector2d
myProjXY
,
myProjXZ
,
myProjYZ
;
133
};
// end of class LambdaMST3DBy2DEstimator
134
135
136
class
TangentFromDSS3DBy2DFunctor
137
{
138
public
:
139
// ----------------------- Types ------------------------------
140
typedef
PointVector<3, double>
Vector3D
;
141
typedef
PointVector<2, double>
Vector2D
;
142
enum
MAIN_AXIS
{
X
= 0,
Y
= 1,
Z
= 2};
143
144
// ----------------------- Interface --------------------------------------
145
Vector3D
operator()
(
MAIN_AXIS
mainAxis,
const
Vector2D
& v0,
const
Vector2D
& v1 )
const
;
146
};
147
148
//-------------------------------------------------------------------------------------------
149
150
// Template class LambdaMST3D
155
template
<
156
typename
Iterator3D,
typename
LambdaFunctor =
functors::Lambda64Function
,
int
CONNECTIVITY = 8 >
157
class
LambdaMST3DBy2D
:
158
public
LambdaMST3DBy2DEstimator
< Iterator3D, TangentFromDSS3DBy2DFunctor, LambdaFunctor, CONNECTIVITY >
159
{
160
typedef
LambdaMST3DBy2DEstimator < Iterator3D, TangentFromDSS3DBy2DFunctor, LambdaFunctor, CONNECTIVITY >
Super
;
161
162
public
:
166
LambdaMST3DBy2D
() :
Super
() {}
167
};
168
}
// namespace DGtal
169
171
// Includes inline functions
172
#include "DGtal/geometry/curves/estimation/LambdaMST3DBy2D.ih"
173
174
// //
176
177
#endif
// !defined LAMBDAMST3DBy2D_h
178
179
#undef LAMBDAMST3DBy2D_RECURSES
180
#endif
// else defined(LAMBDAMST3DBy2D_RECURSES)
DGtal::LambdaMST3DBy2DEstimator::eval
OutputIterator eval(Iterator3D itb, Iterator3D ite, OutputIterator result)
DGtal::LambdaMST3DBy2DEstimator::Estimate2DTangent
OutputIterator Estimate2DTangent(TCurve2D::const_iterator itb, TCurve2D::const_iterator ite, OutputIterator result)
DGtal::LambdaMST3DBy2DEstimator::isValid
bool isValid() const
DGtal::LambdaMST3DBy2DEstimator< Iterator3D, TangentFromDSS3DBy2DFunctor, LambdaFunctor, CONNECTIVITY >::myBegin
Iterator3D myBegin
Definition
LambdaMST3DBy2D.h:126
DGtal::LambdaMST3DBy2DEstimator< Iterator3D, TangentFromDSS3DBy2DFunctor, LambdaFunctor, CONNECTIVITY >::myProjXY
Projector2d myProjXY
Definition
LambdaMST3DBy2D.h:132
DGtal::LambdaMST3DBy2DEstimator::RealVector2D
PointVector< 2, double > RealVector2D
Definition
LambdaMST3DBy2D.h:70
DGtal::LambdaMST3DBy2DEstimator::LambdaMST3DBy2DEstimator
LambdaMST3DBy2DEstimator()
DGtal::LambdaMST3DBy2DEstimator::MAIN_AXIS
Functor::MAIN_AXIS MAIN_AXIS
Definition
LambdaMST3DBy2D.h:74
DGtal::LambdaMST3DBy2DEstimator::Point2D
PointVector< 2, int > Point2D
Definition
LambdaMST3DBy2D.h:69
DGtal::LambdaMST3DBy2DEstimator< Iterator3D, TangentFromDSS3DBy2DFunctor, LambdaFunctor, CONNECTIVITY >::tXY
TCurve2D tXY
Definition
LambdaMST3DBy2D.h:130
DGtal::LambdaMST3DBy2DEstimator< Iterator3D, TangentFromDSS3DBy2DFunctor, LambdaFunctor, CONNECTIVITY >::myFunctor
TangentFromDSS3DBy2DFunctor myFunctor
Definition
LambdaMST3DBy2D.h:128
DGtal::LambdaMST3DBy2DEstimator< Iterator3D, TangentFromDSS3DBy2DFunctor, LambdaFunctor, CONNECTIVITY >::myEnd
Iterator3D myEnd
Definition
LambdaMST3DBy2D.h:127
DGtal::LambdaMST3DBy2DEstimator::Segmentation2D
SaturatedSegmentation< SegmentComputer2D > Segmentation2D
Definition
LambdaMST3DBy2D.h:73
DGtal::LambdaMST3DBy2DEstimator::Point3D
PointVector< 3, int > Point3D
Definition
LambdaMST3DBy2D.h:68
DGtal::LambdaMST3DBy2DEstimator< Iterator3D, TangentFromDSS3DBy2DFunctor, LambdaFunctor, CONNECTIVITY >::myAxis
MAIN_AXIS myAxis
Definition
LambdaMST3DBy2D.h:129
DGtal::LambdaMST3DBy2DEstimator::init
void init(Iterator3D itB, Iterator3D itE, MAIN_AXIS axis)
DGtal::LambdaMST3DBy2DEstimator< Iterator3D, TangentFromDSS3DBy2DFunctor, LambdaFunctor, CONNECTIVITY >::tYZ
TCurve2D tYZ
Definition
LambdaMST3DBy2D.h:130
DGtal::LambdaMST3DBy2DEstimator< Iterator3D, TangentFromDSS3DBy2DFunctor, LambdaFunctor, CONNECTIVITY >::tXZ
TCurve2D tXZ
Definition
LambdaMST3DBy2D.h:130
DGtal::LambdaMST3DBy2DEstimator< Iterator3D, TangentFromDSS3DBy2DFunctor, LambdaFunctor, CONNECTIVITY >::myProjXZ
Projector2d myProjXZ
Definition
LambdaMST3DBy2D.h:132
DGtal::LambdaMST3DBy2DEstimator< Iterator3D, TangentFromDSS3DBy2DFunctor, LambdaFunctor, CONNECTIVITY >::myProjYZ
Projector2d myProjYZ
Definition
LambdaMST3DBy2D.h:132
DGtal::LambdaMST3DBy2DEstimator::RealVector3D
PointVector< 3, double > RealVector3D
Definition
LambdaMST3DBy2D.h:67
DGtal::LambdaMST3DBy2DEstimator::eval
RealVector3D eval(const Point3D &point)
DGtal::LambdaMST3DBy2DEstimator::TEstimator
LambdaMST2D< Segmentation2D, LambdaFunctor > TEstimator
Definition
LambdaMST3DBy2D.h:78
DGtal::LambdaMST3DBy2DEstimator::TCurve2D
std::vector< Point2D > TCurve2D
Definition
LambdaMST3DBy2D.h:71
DGtal::LambdaMST3DBy2DEstimator::Estimate2DTangent
RealVector2D Estimate2DTangent(TCurve2D::const_iterator itb, TCurve2D::const_iterator ite, const Point2D &point)
DGtal::LambdaMST3DBy2DEstimator::SegmentComputer2D
ArithmeticalDSSComputer< typename TCurve2D::const_iterator, int, CONNECTIVITY > SegmentComputer2D
Definition
LambdaMST3DBy2D.h:72
DGtal::LambdaMST3DBy2DEstimator::Projector2d
functors::Projector< SpaceND< 2, int > > Projector2d
Definition
LambdaMST3DBy2D.h:79
DGtal::LambdaMST3DBy2D::LambdaMST3DBy2D
LambdaMST3DBy2D()
Definition
LambdaMST3DBy2D.h:166
DGtal::LambdaMST3DBy2D::Super
LambdaMST3DBy2DEstimator< Iterator3D, TangentFromDSS3DBy2DFunctor, LambdaFunctor, CONNECTIVITY > Super
Definition
LambdaMST3DBy2D.h:160
DGtal::PointVector
Aim: Implements basic operations that will be used in Point and Vector classes.
Definition
PointVector.h:593
DGtal::TangentFromDSS3DBy2DFunctor
Definition
LambdaMST3DBy2D.h:137
DGtal::TangentFromDSS3DBy2DFunctor::Vector2D
PointVector< 2, double > Vector2D
Definition
LambdaMST3DBy2D.h:141
DGtal::TangentFromDSS3DBy2DFunctor::Vector3D
PointVector< 3, double > Vector3D
Definition
LambdaMST3DBy2D.h:140
DGtal::TangentFromDSS3DBy2DFunctor::operator()
Vector3D operator()(MAIN_AXIS mainAxis, const Vector2D &v0, const Vector2D &v1) const
DGtal::TangentFromDSS3DBy2DFunctor::MAIN_AXIS
MAIN_AXIS
Definition
LambdaMST3DBy2D.h:142
DGtal::TangentFromDSS3DBy2DFunctor::Y
@ Y
Definition
LambdaMST3DBy2D.h:142
DGtal::TangentFromDSS3DBy2DFunctor::Z
@ Z
Definition
LambdaMST3DBy2D.h:142
DGtal::TangentFromDSS3DBy2DFunctor::X
@ X
Definition
LambdaMST3DBy2D.h:142
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
Definition
ClosedIntegerHalfPlane.h:49
DGtal::functors::Lambda64Function
Definition
FunctorsLambdaMST.h:69
Functor
Definition
testFunctorHolder.cpp:45
src
DGtal
geometry
curves
estimation
LambdaMST3DBy2D.h
Generated on
for DGtal by
1.18.0