Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members

esve::components::dimn::Differential_Motion_Handler< Transform, impl_Transform > Class Template Reference

Common base class for defining motion via differentials. More...

#include <esve/components/dimn/Differential_Motion_Handler.hxx>

Inheritance diagram for esve::components::dimn::Differential_Motion_Handler< Transform, impl_Transform >:

esve::components::dimn::Supermouse_Motion_Handler esve::components::dimn::Inertial_Motion_Handler esve::components::dimn::Motion_Handler esve::components::dimn::Supermouse_Handler esve::message::impl::Update_Receiver esve::kernel::Wake_State_Handler esve::kernel::impl::Handler esve::message::Update_Receiver esve::kernel::impl::Handler esve::kernel::Handler esve::kernel::Handler esve::components::dim3::Oriented_Rotation_Handler esve::components::dim3::Rotation_Handler esve::components::dim4::Rotation_Handler List of all members.

Public Member Functions

 Differential_Motion_Handler (Transform &)
 Constructor. Give the transform on which this handler operates.

void stop ()
 Stop all motion.

void update (double dt)
 Receive the update() message.

types::real sensitivity () const
 Scalar multiplier for all motion.

void sensitivity (types::real)
 Scalar multiplier for all motion.

void active_transform (Transform &)
 The transform on which this handler operates.

const Transform & active_transform () const
 The transform on which this handler operates.

const Transform & basis (Button) const
 The basis in which the motion is created, for this button. The basis is stored by reference.

void basis (Button, const Transform &basis)
 The basis in which the motion is created, for this button. The basis is stored by reference.


Protected Types

typedef components::dimn::Supermouse Supermouse
 

typedef components::dimn::Supermouse::Button Button
 


Protected Member Functions

bool handle_supermouse_push (Button, const Supermouse &)
 A supermouse button was pushed.

bool handle_supermouse_release (Button, const Supermouse &)
 A supermouse button was released.

bool handle_check_awake (bool currently_awake)
 Do you want to be awake?

virtual void create_motion (Button, const types::pure &du_dt)=0
 Create and store motion data in the subclass.

virtual impl_Transform differential_motion (Button, types::real dt)=0
 Return the differential action corresponding to this time differential (in seconds).

virtual void stop_motion (Button)=0
 Set subclass' motion data to zero velocity.

virtual bool has_motion (Button)=0
 Whether subclass' motion data indicates nonzero velocity.

virtual void normalize (impl_Transform &transform)
 Hook to normalize (or not) after a differential action.

const types::pureu () const
 Position.

const types::puredu_dt () const
 Velocity, units per second.

const types::puredu_dt (Button b) const
 Drag velocity with this button, units per second.

const types::pured2u_dt2 () const
 Acceleration, units per second^2.

const types::pured2u_dt2 (Button b) const
 Drag acceleration with this button, units per second^2.

bool handle_supermouse_move (const Supermouse &)
 The supermouse moved.

bool handle_wake ()
 The command to wake up.

bool handle_sleep ()
 The command to sleep.

bool awake () const
 Are we awake?

const Supermousesupermouse () const
 The current state of the supermouse.


Detailed Description

template<typename Transform, typename impl_Transform>
class esve::components::dimn::Differential_Motion_Handler< Transform, impl_Transform >

Common base class for defining motion via differentials.

The buttons yield parented motion: the left button is grandpa, the middle is pa, and the right is baby.


Member Function Documentation

template<typename Transform, typename impl_Transform>
bool esve::components::dimn::Differential_Motion_Handler< Transform, impl_Transform >::handle_check_awake bool  currently_awake  )  [protected, virtual]
 

Do you want to be awake?

If currently awake, a return value of true indicates a desire to stay awake. If not currently awake, a return value of true indicates a desire to wake up.

Implements esve::kernel::Wake_State_Handler.

template<typename Transform, typename impl_Transform>
virtual void esve::components::dimn::Differential_Motion_Handler< Transform, impl_Transform >::create_motion Button  ,
const types::pure du_dt
[protected, pure virtual]
 

Create and store motion data in the subclass.

Units of du_dt are pixels per second, already adjusted for sensitivity.

Implemented in esve::components::dim3::Oriented_Rotation_Handler, esve::components::dim3::Rotation_Handler, and esve::components::dim4::Rotation_Handler.

template<typename Transform, typename impl_Transform>
virtual void esve::components::dimn::Differential_Motion_Handler< Transform, impl_Transform >::normalize impl_Transform &  transform  )  [protected, virtual]
 

Hook to normalize (or not) after a differential action.

Default calls transform.normalize()


Generated on Tue May 30 11:40:55 2006 for esve by doxygen 1.3.4