A container class to deal with a trackball. More...
Public Member Functions | |
MC_trackball () | |
~MC_trackball () | |
classical destructor | |
const MC_quaternion & | quaternion () const |
get the current quaternion | |
MC_quaternion & | quaternion () |
get the current quaternion | |
const MC_quaternion & | d_quaternion () const |
get the quaternion to apply | |
MC_quaternion & | d_quaternion () |
get the quaternion to apply | |
double | project_to_disc (const double &x, const double &y) const |
return the distance to disc for the 3D coordinate | |
MC_trackball & | set_2d_coords (const double &x0, const double &y0, const double &x1, const double &y1) |
given a set of 2d coords difference, return the corresponding quaternion | |
MC_trackball & | apply_rotation () |
multiply d_q to current_q | |
MC_trackball & | no_motion () |
Set d_q to 0. | |
Public Attributes | |
double | disc_radius |
internal parameter of the disc radius | |
Private Attributes | |
MC_quaternion | current_q |
the current quaternion | |
MC_quaternion | d_q |
the quaternion to apply |
A container class to deal with a trackball.
mesh_conv::MC_trackball::MC_trackball | ( | ) |
initial constructor
References disc_radius.
mesh_conv::MC_trackball::~MC_trackball | ( | ) |
classical destructor
MC_trackball & mesh_conv::MC_trackball::apply_rotation | ( | ) |
multiply d_q to current_q
References mesh_conv::MC_quaternion::conjugated(), current_q, and d_q.
MC_quaternion & mesh_conv::MC_trackball::d_quaternion | ( | ) |
get the quaternion to apply
References d_q.
const MC_quaternion & mesh_conv::MC_trackball::d_quaternion | ( | ) | const |
get the quaternion to apply
References d_q.
MC_trackball & mesh_conv::MC_trackball::no_motion | ( | ) |
Set d_q to 0.
References d_q.
double mesh_conv::MC_trackball::project_to_disc | ( | const double & | x, | |
const double & | y | |||
) | const |
return the distance to disc for the 3D coordinate
References disc_radius.
Referenced by set_2d_coords().
MC_quaternion & mesh_conv::MC_trackball::quaternion | ( | ) |
get the current quaternion
References current_q.
const MC_quaternion & mesh_conv::MC_trackball::quaternion | ( | ) | const |
get the current quaternion
References current_q.
Referenced by mesh_conv::MC_navigator_tool::current_cam1(), mesh_conv::MC_navigator_tool::current_light1(), mesh_conv::MC_navigator_tool::go_forward_trackball_cam1(), mesh_conv::MC_navigator_tool::go_right_trackball_cam1(), mesh_conv::MC_navigator_tool::go_up_trackball_cam1(), mesh_conv::MC_navigator_tool::read_cam1(), mesh_conv::MC_navigator_tool::read_light1(), mesh_conv::MC_navigator_tool::write_cam1(), and mesh_conv::MC_navigator_tool::write_light1().
MC_trackball & mesh_conv::MC_trackball::set_2d_coords | ( | const double & | x0, | |
const double & | y0, | |||
const double & | x1, | |||
const double & | y1 | |||
) |
given a set of 2d coords difference, return the corresponding quaternion
References mesh_conv::MC_v3d::cross(), d_q, disc_radius, mesh_conv::MC_v3d::norm(), and project_to_disc().
the current quaternion
Referenced by apply_rotation(), and quaternion().
MC_quaternion mesh_conv::MC_trackball::d_q [private] |
the quaternion to apply
Referenced by apply_rotation(), d_quaternion(), no_motion(), and set_2d_coords().
internal parameter of the disc radius
Referenced by MC_trackball(), project_to_disc(), and set_2d_coords().