#include <esve/components/dimn/Differential_Motion_Handler.hxx>
Inheritance diagram for esve::components::dimn::Differential_Motion_Handler< Transform, impl_Transform >:

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::pure & | u () const |
| Position. | |
| const types::pure & | du_dt () const |
| Velocity, units per second. | |
| const types::pure & | du_dt (Button b) const |
| Drag velocity with this button, units per second. | |
| const types::pure & | d2u_dt2 () const |
| Acceleration, units per second^2. | |
| const types::pure & | d2u_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 Supermouse & | supermouse () const |
| The current state of the supermouse. | |
The buttons yield parented motion: the left button is grandpa, the middle is pa, and the right is baby.
|
||||||||||
|
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. |
|
||||||||||||||||
|
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. |
|
||||||||||
|
Hook to normalize (or not) after a differential action. Default calls transform.normalize() |
1.3.4