DGtal 1.4.0
Loading...
Searching...
No Matches
InHalfPlaneBy2x2DetComputer.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 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
21 *
22 * @date 2013/11/22
23 *
24 * Implementation of inline methods defined in InHalfPlaneBy2x2DetComputer.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// ----------------------------------------------------------------------------
40template <typename TP, typename TDC>
41inline
42void
43DGtal::InHalfPlaneBy2x2DetComputer<TP,TDC>::init( const Point& aP, const Point& aQ )
44{
45 myA = static_cast<ArgumentInteger>( aP[0] );
46 myB = static_cast<ArgumentInteger>( aP[1] );
47
48 myDetComputer.init( static_cast<ArgumentInteger>( aQ[0] ) - myA,
49 static_cast<ArgumentInteger>( aQ[1] ) - myB );
50}
51
52// ----------------------------------------------------------------------------
53template <typename TP, typename TDC>
54inline
55void
56DGtal::InHalfPlaneBy2x2DetComputer<TP,TDC>::init( const PointArray& aA )
57{
58 init( aA[0], aA[1] );
59}
60
61// ----------------------------------------------------------------------------
62template <typename TP, typename TDC>
63inline
64typename DGtal::InHalfPlaneBy2x2DetComputer<TP,TDC>::Value
65DGtal::InHalfPlaneBy2x2DetComputer<TP,TDC>::operator()( const Point& aR ) const
66{
67 return myDetComputer( static_cast<ArgumentInteger>( aR[0] ) - myA,
68 static_cast<ArgumentInteger>( aR[1] ) - myB );
69}
70
71// ----------------------------------------------------------------------------
72template <typename TP, typename TDC>
73inline
74void
75DGtal::InHalfPlaneBy2x2DetComputer<TP,TDC>::selfDisplay ( std::ostream & out ) const
76{
77 out << "[InHalfPlaneBy2x2DetComputer]";
78}
79
80// ----------------------------------------------------------------------------
81template <typename TP, typename TDC>
82inline
83bool
84DGtal::InHalfPlaneBy2x2DetComputer<TP,TDC>::isValid() const
85{
86 return true;
87}
88
89
90
91///////////////////////////////////////////////////////////////////////////////
92// Implementation of inline functions //
93
94template <typename TP, typename TDC>
95inline
96std::ostream&
97DGtal::operator<< ( std::ostream & out,
98 const InHalfPlaneBy2x2DetComputer<TP,TDC> & object )
99{
100 object.selfDisplay( out );
101 return out;
102}
103
104// //
105///////////////////////////////////////////////////////////////////////////////
106
107