5 # include <vcl_msvc_warnings.h> 13 constexpr
double epsilon = 0.001;
15 list_of_vectors::const_iterator i;
18 for (i=new_axis.begin();result&&i!=new_axis.end();++i)
19 result=(((*i).two_norm())-1)<epsilon;
74 result.
put(0,
v.get(0));
75 result.
put(1,
v.get(1));
105 result.
put(0,
v.get(0));
106 result.
put(1,
v.get(1));
166 result=
lqi(q0,q1,i,time);
170 assert(!
"vcsl_cubic net yet implemented");
173 assert(!
"vcsl_spline net yet implemented");
176 assert(!
"This is impossible");
vnl_vector< double > execute(const vnl_vector< double > &v, double time) const override
Image of ‘v’ by ‘this’.
list_of_scalars angle_
Angle variation along the time in radians.
bool mode_2d_
False if ‘this’ is a 3D rotation, true if ‘this’ is a 2D rotation.
list_of_vectors axis_
Direction vector variation along the time.
vnl_vector< double > inverse(const vnl_vector< double > &v, double time) const override
Image of ‘v’ by the inverse of ‘this’.
bool is_invertible(double) const override
Is ‘this’ invertible at time ‘time’?.
bool is_2d() const
Is ‘this’ a 2D rotation ?.
vnl_quaternion< T > conjugate() const
bool are_unit_axes(list_of_vectors const &new_axis) const
Are ‘new_vector’ a list of unit vectors ?.
T const * data_block() const
void put(size_t i, double const &v)
void set_static_2d(double new_angle)
Set the parameters of a static 2D rotation.
Rotation transformation (either 2D or 3D)
vnl_vector_fixed< T, 3 > rotate(vnl_vector_fixed< T, 3 > const &) const
void set_axis(list_of_vectors const &new_axis)
Set the direction vector variation along the time.
bool is_3d() const
Is ‘this’ a 3D rotation ?.
vnl_quaternion< double > quaternion(double time) const
Compute the value of the quaternion at time ‘time’.
void put(unsigned int i, T const &v)
bool is_valid() const override
Is ‘this’ correctly set ?.