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// ----------------------------------------------------------------------------
40template <typename TP, typename TDC>
43DGtal::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// ----------------------------------------------------------------------------
53template <typename TP, typename TDC>
56DGtal::InHalfPlaneBy2x2DetComputer<TP,TDC>::init( const PointArray& aA )
61// ----------------------------------------------------------------------------
62template <typename TP, typename TDC>
64typename DGtal::InHalfPlaneBy2x2DetComputer<TP,TDC>::Value
65DGtal::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// ----------------------------------------------------------------------------
72template <typename TP, typename TDC>
75DGtal::InHalfPlaneBy2x2DetComputer<TP,TDC>::selfDisplay ( std::ostream & out ) const
77 out << "[InHalfPlaneBy2x2DetComputer]";
80// ----------------------------------------------------------------------------
81template <typename TP, typename TDC>
84DGtal::InHalfPlaneBy2x2DetComputer<TP,TDC>::isValid() const
91///////////////////////////////////////////////////////////////////////////////
92// Implementation of inline functions //
94template <typename TP, typename TDC>
97DGtal::operator<< ( std::ostream & out,
98 const InHalfPlaneBy2x2DetComputer<TP,TDC> & object )
100 object.selfDisplay( out );
105///////////////////////////////////////////////////////////////////////////////