cpe::trackball Class Reference

A container class to deal with a trackball, use ArcBall paradigm. More...

Collaboration diagram for cpe::trackball:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 trackball ()
const quaternionquat () const
 get the current quaternion
quaternionquat ()
 get the current quaternion
const quaterniond_quat () const
 get the quaternion to apply
quaterniond_quat ()
 get the quaternion to apply
double & radius ()
 get the disc radius
const double & radius () const
 get the disc radius
double project_to_disc (const double &x, const double &y) const
 return the distance to disc for the 3D coordinate
void 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
void apply_rotation ()
 multiply d_q to current_q
void no_motion ()
 Set d_q to 0.

Private Attributes

quaternion current_q
 the current quaternion
quaternion d_q
 the quaternion to apply
double disc_radius
 internal parameter of the disc radius

Detailed Description

A container class to deal with a trackball, use ArcBall paradigm.


Constructor & Destructor Documentation

cpe::trackball::trackball (  ) 

initial constructor

References current_q.


Member Function Documentation

void cpe::trackball::apply_rotation (  ) 

multiply d_q to current_q

References cpe::quaternion::conjugated(), current_q, and d_q.

Referenced by cpe::navigator_tool::trackball_rotate().

Here is the call graph for this function:

quaternion & cpe::trackball::d_quat (  ) 

get the quaternion to apply

References d_q.

const quaternion & cpe::trackball::d_quat (  )  const

get the quaternion to apply

References d_q.

void cpe::trackball::no_motion (  ) 

Set d_q to 0.

References d_q.

double cpe::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().

quaternion & cpe::trackball::quat (  ) 

get the current quaternion

References current_q.

const quaternion & cpe::trackball::quat (  )  const
const double & cpe::trackball::radius (  )  const

get the disc radius

References disc_radius.

double & cpe::trackball::radius (  ) 

get the disc radius

References disc_radius.

void cpe::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 cpe::v3::cross(), d_q, disc_radius, cpe::v3::norm(), and project_to_disc().

Referenced by cpe::navigator_tool::trackball_rotate().

Here is the call graph for this function:


Member Data Documentation

the current quaternion

Referenced by apply_rotation(), quat(), and trackball().

the quaternion to apply

Referenced by apply_rotation(), d_quat(), no_motion(), and set_2d_coords().

double cpe::trackball::disc_radius [private]

internal parameter of the disc radius

Referenced by project_to_disc(), radius(), and set_2d_coords().


The documentation for this class was generated from the following files:
Generated on Fri Aug 19 14:45:34 2011 by  doxygen 1.6.3