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 Kacper Pluta (\c kacper.pluta@esiee.fr )
20 * Laboratoire d'Informatique Gaspard-Monge - LIGM, A3SI, France
24 * Implementation of inline methods defined in Knot_6_2.h
26 * This file is part of the DGtal library.
29///////////////////////////////////////////////////////////////////////////////
30// IMPLEMENTATION of inline methods.
31///////////////////////////////////////////////////////////////////////////////
33//////////////////////////////////////////////////////////////////////////////
34//////////////////////////////////////////////////////////////////////////////
38///////////////////////////////////////////////////////////////////////////////
39// Implementation of inline methods //
43DGtal::Knot_6_2<T>::Knot_6_2 ( long double scale_1, long double scale_2, long double scale_3 ) : scale {scale_1, scale_2, scale_3}
48typename DGtal::Knot_6_2<T>::RealPoint DGtal::Knot_6_2<T>::x ( const long double t ) const
51 scale[0] * 3. / 4. * t * ( -11. + t * t ) * ( -4 + t * t ),
52 scale[1] * t * t * ( -12. + t * t ),
53 scale[2] * 1. / 200. * t * ( -12. + t * t ) * ( -10. + t * t ) * ( -9 + t * t )
54 * ( -3. + t * t ) * ( -1. + t * t )
60typename DGtal::Knot_6_2<T>::RealPoint DGtal::Knot_6_2<T>::xp ( const long double t ) const
63 scale[0] * 3. / 4. * ( 44. - 45. * t * t + 5. * std::pow ( t, 4 ) ),
64 scale[1] * 4. * t * ( -6. + t * t ),
65 scale[2] * 1. / 200. * ( -3240. + 15822. * t * t - 12225. * std::pow ( t, 4 ) + 3115.
66 * std::pow ( t, 6 ) - 315. * std::pow ( t, 8 ) + 11. * std::pow ( t, 10 ) )
73void DGtal::Knot_6_2<T>::selfDisplay ( std::ostream & out ) const
78///////////////////////////////////////////////////////////////////////////////
79// Implementation of inline functions and external operators //
82 * Overloads 'operator<<' for displaying objects of class 'Knot_6_2'.
83 * @param out the output stream where the object is written.
84 * @param object the object of class 'Knot_6_2' to write.
85 * @return the output stream after the writing.
90DGtal::operator<< ( std::ostream & out, const Knot_6_2<T> & object )
92 object.selfDisplay ( out );
97///////////////////////////////////////////////////////////////////////////////