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/>.
18 * @file InHalfPlaneBy2x2DetComputer.ih
19 * @author Tristan Roussillon (\c tristan.roussillon@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 InHalfPlaneBy2x2DetComputer.h
26 * This file is part of the DGtal library.
30 //////////////////////////////////////////////////////////////////////////////
32 //////////////////////////////////////////////////////////////////////////////
34 ///////////////////////////////////////////////////////////////////////////////
35 // IMPLEMENTATION of inline methods.
36 ///////////////////////////////////////////////////////////////////////////////
38 ///////////////////////////////////////////////////////////////////////////////
39 // ----------------------------------------------------------------------------
40 template <typename TP, typename TDC>
43 DGtal::InHalfPlaneBy2x2DetComputer<TP,TDC>::init( const Point& aP, const Point& aQ )
45 myA = static_cast<ArgumentInteger>( aP[0] );
46 myB = static_cast<ArgumentInteger>( aP[1] );
48 myDetComputer.init( static_cast<ArgumentInteger>( aQ[0] ) - myA,
49 static_cast<ArgumentInteger>( aQ[1] ) - myB );
52 // ----------------------------------------------------------------------------
53 template <typename TP, typename TDC>
56 DGtal::InHalfPlaneBy2x2DetComputer<TP,TDC>::init( const PointArray& aA )
61 // ----------------------------------------------------------------------------
62 template <typename TP, typename TDC>
64 typename DGtal::InHalfPlaneBy2x2DetComputer<TP,TDC>::Value
65 DGtal::InHalfPlaneBy2x2DetComputer<TP,TDC>::operator()( const Point& aR ) const
67 return myDetComputer( static_cast<ArgumentInteger>( aR[0] ) - myA,
68 static_cast<ArgumentInteger>( aR[1] ) - myB );
71 // ----------------------------------------------------------------------------
72 template <typename TP, typename TDC>
75 DGtal::InHalfPlaneBy2x2DetComputer<TP,TDC>::selfDisplay ( std::ostream & out ) const
77 out << "[InHalfPlaneBy2x2DetComputer]";
80 // ----------------------------------------------------------------------------
81 template <typename TP, typename TDC>
84 DGtal::InHalfPlaneBy2x2DetComputer<TP,TDC>::isValid() const
91 ///////////////////////////////////////////////////////////////////////////////
92 // Implementation of inline functions //
94 template <typename TP, typename TDC>
97 DGtal::operator<< ( std::ostream & out,
98 const InHalfPlaneBy2x2DetComputer<TP,TDC> & object )
100 object.selfDisplay( out );
105 ///////////////////////////////////////////////////////////////////////////////