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().
1.6.1