2 * This program is free software: you can redistribute it and/or modify
3 * it under the terms of the GNU Lesser General Public License as
4 * published by the Free Software Foundation, either version 3 of the
5 * License, or (at your option) any later version.
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
12 * You should have received a copy of the GNU General Public License
13 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 * @author David Coeurjolly (\c david.coeurjolly@liris.cnrs.fr )
20 * Laboratoire d'InfoRmatique en Image et Systèmes d'information - LIRIS (CNRS, UMR 5205), CNRS, France
24 * Implementation of inline methods defined in TrueGlobalEstimatorOnPoints.h.h
26 * This file is part of the DGtal library.
30 //////////////////////////////////////////////////////////////////////////////
32 //////////////////////////////////////////////////////////////////////////////
34 ///////////////////////////////////////////////////////////////////////////////
35 // IMPLEMENTATION of inline methods.
36 ///////////////////////////////////////////////////////////////////////////////
38 ///////////////////////////////////////////////////////////////////////////////
39 // ----------------------- Standard services ------------------------------
45 template <typename CIt, typename PShape, typename PShapeFunctor>
47 DGtal::TrueGlobalEstimatorOnPoints<CIt,PShape,PShapeFunctor>::TrueGlobalEstimatorOnPoints(const double h,
48 const ConstIteratorOnPoints& itb,
49 const ConstIteratorOnPoints& ite,
53 init(h,itb,ite,aShape,isClosed);
59 template <typename CIt, typename PShape, typename PShapeFunctor>
62 DGtal::TrueGlobalEstimatorOnPoints<CIt,PShape,PShapeFunctor>::init(const double h,
63 const ConstIteratorOnPoints& itb,
64 const ConstIteratorOnPoints& ite,
73 myFlagIsClosed = isClosed;
76 myFunctor = ParametricShapeFunctor(aShape);
81 * @return the estimated quantity at *it
84 template <typename CIt, typename PShape, typename PShapeFunctor>
86 typename DGtal::TrueGlobalEstimatorOnPoints<CIt,PShape,PShapeFunctor>::Quantity
87 DGtal::TrueGlobalEstimatorOnPoints<CIt,PShape,PShapeFunctor>::eval()
93 //get the first and last points
94 ConstIteratorOnPoints i = myBegin;
95 ConstIteratorOnPoints j(i); ++j;
96 for ( ; j != myEnd ; ++i, ++j) {}
97 //myH is the coordinates unit
98 RealPoint p( *myBegin );
102 return myFunctor(p,p2);
108 * @return the estimated quantity at *it
110 template <typename CIt, typename PShape, typename PShapeFunctor>
112 typename DGtal::TrueGlobalEstimatorOnPoints<CIt,PShape,PShapeFunctor>::Quantity
113 DGtal::TrueGlobalEstimatorOnPoints<CIt,PShape,PShapeFunctor>::eval(const ConstIteratorOnPoints& itb,
114 const ConstIteratorOnPoints& ite)
117 if (myFlagIsClosed) {
120 //get the first and last points
121 ConstIteratorOnPoints i = itb;
122 ConstIteratorOnPoints j(i); ++j;
123 for ( ; j != ite; ++i, ++j) {};
124 //myH is the coordinates unit
129 return myFunctor(p,p2);
135 * Checks the validity/consistency of the object.
136 * @return 'true' if the object is valid, 'false' otherwise.
138 template <typename CIt, typename PShape, typename PShapeFunctor>
141 DGtal::TrueGlobalEstimatorOnPoints<CIt,PShape,PShapeFunctor>::isValid() const