DGtal
0.6.devel
Main Page
Related Pages
Modules
Namespaces
Data Structures
Examples
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
src
DGtal
geometry
curves
estimation
TrueLocalEstimatorOnPoints.ih
1
30
31
#include <cstdlib>
33
35
// IMPLEMENTATION of inline methods.
37
39
// ----------------------- Standard services ------------------------------
40
41
42
// ------------------------------------------------------------------------
43
template
<
typename
CIt,
typename
PShape,
typename
PShapeFunctor>
44
inline
45
DGtal::TrueLocalEstimatorOnPoints<CIt,PShape,PShapeFunctor>::TrueLocalEstimatorOnPoints
()
46
:myH(0.0), myBegin(), myEnd(), myFunctorPtr(0)
47
{
48
}
49
50
// ------------------------------------------------------------------------
51
template
<
typename
CIt,
typename
PShape,
typename
PShapeFunctor>
52
inline
53
bool
54
DGtal::TrueLocalEstimatorOnPoints<CIt,PShape,PShapeFunctor>::isValid
()
const
55
{
56
return
( (myH > 0)&&(myFunctorPtr != 0) );
57
}
58
59
// ------------------------------------------------------------------------
60
template
<
typename
CIt,
typename
PShape,
typename
PShapeFunctor>
61
inline
62
void
63
DGtal::TrueLocalEstimatorOnPoints<CIt,PShape,PShapeFunctor>
64
::init
(
const
double
h,
65
const
ConstIterator
& itb,
66
const
ConstIterator
& ite)
67
{
68
myH = h;
69
ASSERT(myH > 0);
70
myBegin = itb;
71
myEnd = ite;
72
}
73
74
// ------------------------------------------------------------------------
75
template
<
typename
CIt,
typename
PShape,
typename
PShapeFunctor>
76
inline
77
void
78
DGtal::TrueLocalEstimatorOnPoints<CIt,PShape,PShapeFunctor>
79
::attach
(
ParametricShape
* aShapePtr)
80
{
81
myFunctorPtr =
new
ParametricShapeFunctor
(aShapePtr);
82
}
83
84
// ------------------------------------------------------------------------
85
template
<
typename
CIt,
typename
PShape,
typename
PShapeFunctor>
86
inline
87
DGtal::TrueLocalEstimatorOnPoints<CIt,PShape,PShapeFunctor>::~TrueLocalEstimatorOnPoints
()
88
{
89
delete
myFunctorPtr;
90
}
91
92
// ------------------------------------------------------------------------
93
template
<
typename
CIt,
typename
PShape,
typename
PShapeFunctor>
94
inline
95
typename
DGtal::TrueLocalEstimatorOnPoints<CIt,PShape,PShapeFunctor>::Quantity
96
DGtal::TrueLocalEstimatorOnPoints<CIt,PShape,PShapeFunctor>
97
::eval
(
const
ConstIterator
& it)
const
98
{
99
ASSERT( isValid() );
100
RealPoint
p( *it );
101
p *= myH;
102
return
myFunctorPtr->operator()(p);
103
}
104
105
// ------------------------------------------------------------------------
106
template
<
typename
CIt,
typename
PShape,
typename
PShapeFunctor>
107
template
<
typename
OutputIterator>
108
inline
109
OutputIterator
110
DGtal::TrueLocalEstimatorOnPoints<CIt,PShape,PShapeFunctor>
111
::eval
(
const
ConstIterator
& itb,
112
const
ConstIterator
& ite,
113
OutputIterator result)
const
114
{
115
ASSERT( isValid() );
116
// do-while loop to deal with the case of a whole circular range
117
if
(
isNotEmpty
(itb, ite))
118
{
119
ConstIterator
it = itb;
120
do
121
{
122
*result++ = eval( *it );
123
++it;
124
}
while
(it != ite);
125
}
126
return
result;
127
}
Generated on Wed Dec 19 2012 19:10:42 for DGtal by
1.8.1.1