2 #ifndef vcsl_rotation_h_ 3 #define vcsl_rotation_h_ 107 double time)
const override;
115 double time)
const override;
131 #endif // vcsl_rotation_h_
vnl_vector< double > execute(const vnl_vector< double > &v, double time) const override
Image of ‘v’ by ‘this’.
void set_angle(list_of_scalars const &new_angle)
Set the angle variation along the time in radians.
vcsl_rotation()
Default constructor. Sets 3D rotation mode.
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’.
list_of_vectors axis() const
Return the direction variation along the time.
list_of_scalars angle() const
Return the angle variation along the time in radians.
bool is_invertible(double) const override
Is ‘this’ invertible at time ‘time’?.
bool is_2d() const
Is ‘this’ a 2D rotation ?.
bool are_unit_axes(list_of_vectors const &new_axis) const
Are ‘new_vector’ a list of unit vectors ?.
void set_2d()
Set ‘this’ as a 2D rotation.
void set_static_2d(double new_angle)
Set the parameters of a static 2D rotation.
void set_axis(list_of_vectors const &new_axis)
Set the direction vector variation along the time.
void set_3d()
Set ‘this’ as a 3D rotation.
~vcsl_rotation() override=default
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’.
Rotation transformation (either 2D or 3D).
bool is_valid() const override
Is ‘this’ correctly set ?.