DGtal 1.4.0
Loading...
Searching...
No Matches
L1LengthEstimator.ih
1/**
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.
6 *
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.
11 *
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/>.
14 *
15 **/
16
17/**
18 * @file L1LengthEstimator.ih
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
21 *
22 * @date 2011/06/27
23 *
24 * Implementation of inline methods defined in L1LengthEstimator.h
25 *
26 * This file is part of the DGtal library.
27 */
28
29
30//////////////////////////////////////////////////////////////////////////////
31#include <cstdlib>
32//////////////////////////////////////////////////////////////////////////////
33
34///////////////////////////////////////////////////////////////////////////////
35// IMPLEMENTATION of inline methods.
36///////////////////////////////////////////////////////////////////////////////
37
38///////////////////////////////////////////////////////////////////////////////
39// Interface - public :
40
41template <typename T>
42inline
43typename DGtal::L1LengthEstimator<T>::Quantity
44DGtal::L1LengthEstimator<T>::eval( const ConstIterator& itb,
45 const ConstIterator& ite, const double h ) const
46{
47 ASSERT(h > 0.);
48
49 Quantity val = 0.;
50
51 if ( DGtal::isEmpty(itb,ite) )
52 return val;
53
54 ConstIterator i = itb;
55 do
56 {
57 val += 1.;
58 ++i;
59 }
60 while (i != ite);
61
62 return val*h;
63}
64
65
66
67
68// ------------------------------------------------------------------------
69template <typename T>
70inline
71void
72DGtal::L1LengthEstimator<T>::selfDisplay ( std::ostream & out ) const
73{
74 out << "[L1LengthEstimator]";
75 if (isValid())
76 out <<" initialized";
77 else
78 out<< " not initialized";
79}
80
81// ------------------------------------------------------------------------
82template <typename T>
83inline
84bool
85DGtal::L1LengthEstimator<T>::isValid() const
86{
87 return true;
88}
89
90
91
92///////////////////////////////////////////////////////////////////////////////
93// Implementation of inline functions //
94
95template <typename T>
96inline
97std::ostream&
98DGtal::operator<< ( std::ostream & out,
99 const L1LengthEstimator<T> & object )
100{
101 object.selfDisplay( out );
102 return out;
103}
104
105// //
106///////////////////////////////////////////////////////////////////////////////
107
108