sofa::component::controller::MechanicalStateController< DataTypes > Class Template Reference

MechanicalStateController Class. More...

#include <MechanicalStateController.h>

Inheritance diagram for sofa::component::controller::MechanicalStateController< DataTypes >:

Inheritance graph
[legend]
Collaboration diagram for sofa::component::controller::MechanicalStateController< DataTypes >:

Collaboration graph
[legend]

Public Types

typedef DataTypes::VecCoord VecCoord
typedef DataTypes::VecDeriv VecDeriv
typedef DataTypes::Coord Coord
typedef DataTypes::Deriv Deriv
typedef Coord::value_type Real

Public Member Functions

 MechanicalStateController ()
 Default Constructor.
virtual ~MechanicalStateController ()
 Default Destructor.
void init ()
 SceneGraph callback initialization method.
void applyController (void)
 Apply the controller modifications to the controlled MechanicalState.
virtual std::string getTemplateName () const
 Get the template type names (if any) used to instantiate this object.
Controller Interface
void onMouseEvent (core::objectmodel::MouseEvent *mev)
 Mouse event callback.
void onOmniEvent (core::objectmodel::OmniEvent *mev)
 Omni event callback.
void onBeginAnimationStep ()
 Begin Animation event callback.
Accessors
core::componentmodel::behavior::MechanicalState
< DataTypes > * 
getMechanicalState (void) const
 Return the controlled MechanicalState.
void setMechanicalState (core::componentmodel::behavior::MechanicalState< DataTypes > *)
 Set a MechanicalState to the controller.
unsigned int getIndex (void) const
 Return the index of the controlled DOF of the MechanicalState.
void setIndex (const unsigned int)
 Set the index of the controlled DOF of the MechanicalState.
void setMainDirection (const sofa::defaulttype::Vec< 3, Real >)
 Set the direction of the controlled DOF corresponding to the Mouse vertical axis.
const sofa::defaulttype::Vec
< 3, Real > & 
getMainDirection () const
 Return the direction of the controlled DOF corresponding to the Mouse vertical axis.

Static Public Member Functions

static std::string templateName (const MechanicalStateController< DataTypes > *=NULL)

Protected Types

enum  MouseMode {
  None = 0, BtLeft, BtRight, BtMiddle,
  Wheel
}

Protected Attributes

Data< unsigned int > index
 Controlled DOF index.
core::componentmodel::behavior::MechanicalState
< DataTypes > * 
mState
 Controlled MechanicalState.
sofa::defaulttype::Vec< 3, Real > mainDirection
 Direction corresponding to the Mouse vertical axis. Default value is (0.0,0.0,-1.0), Z axis.
DataPtr
< sofa::defaulttype::Vec
< 3, Real > > 
mainDirectionPtr
 Warning ! Only 3d Rigid DOFs can use this mainDirection.
bool omni
MouseMode mouseMode
int eventX
int eventY
 Mouse current position in pixel.
double omniX
double omniY
double omniZ
int mouseSavedPosX
int mouseSavedPosY
 Last recorded mouse position.
Vector3 position
Quat orientation

Detailed Description

template<class DataTypes>
class sofa::component::controller::MechanicalStateController< DataTypes >

MechanicalStateController Class.

Provides a Mouse & Keyboard user control on a Mechanical State. On a Rigid Particle, relative and absolute control is available.

Definition at line 65 of file MechanicalStateController.h.


Member Typedef Documentation

template<class DataTypes >
typedef DataTypes::Coord sofa::component::controller::MechanicalStateController< DataTypes >::Coord

template<class DataTypes >
typedef DataTypes::Deriv sofa::component::controller::MechanicalStateController< DataTypes >::Deriv

template<class DataTypes >
typedef Coord::value_type sofa::component::controller::MechanicalStateController< DataTypes >::Real

template<class DataTypes >
typedef DataTypes::VecCoord sofa::component::controller::MechanicalStateController< DataTypes >::VecCoord

template<class DataTypes >
typedef DataTypes::VecDeriv sofa::component::controller::MechanicalStateController< DataTypes >::VecDeriv


Member Enumeration Documentation

template<class DataTypes >
enum sofa::component::controller::MechanicalStateController::MouseMode [protected]

Enumerator:
None 
BtLeft 
BtRight 
BtMiddle 
Wheel 

Definition at line 170 of file MechanicalStateController.h.


Constructor & Destructor Documentation

template<class DataTypes >
sofa::component::controller::MechanicalStateController< DataTypes >::MechanicalStateController (  )  [inline]

template<class DataTypes >
virtual sofa::component::controller::MechanicalStateController< DataTypes >::~MechanicalStateController (  )  [inline, virtual]

Default Destructor.

Definition at line 82 of file MechanicalStateController.h.


Member Function Documentation

template<class DataTypes >
void sofa::component::controller::MechanicalStateController< DataTypes >::applyController ( void   )  [inline]

Apply the controller modifications to the controlled MechanicalState.

Reimplemented in sofa::component::controller::EdgeSetController< DataTypes >.

Definition at line 146 of file MechanicalStateController.inl.

References sofa::component::controller::MechanicalStateController< DataTypes >::BtLeft, sofa::component::controller::MechanicalStateController< DataTypes >::BtRight, sofa::component::controller::MechanicalStateController< DataTypes >::eventX, sofa::component::controller::MechanicalStateController< DataTypes >::eventY, sofa::simulation::Visitor::execute(), sofa::core::objectmodel::BaseObject::getContext(), sofa::core::objectmodel::Data< T >::getValue(), sofa::core::componentmodel::behavior::MechanicalState< TDataTypes >::getX(), sofa::core::componentmodel::behavior::MechanicalState< TDataTypes >::getXfree(), sofa::component::controller::MechanicalStateController< DataTypes >::index, sofa::component::controller::MechanicalStateController< DataTypes >::mainDirection, sofa::component::controller::MechanicalStateController< DataTypes >::mouseMode, sofa::component::controller::MechanicalStateController< DataTypes >::mouseSavedPosX, sofa::component::controller::MechanicalStateController< DataTypes >::mouseSavedPosY, sofa::component::controller::MechanicalStateController< DataTypes >::mState, sofa::component::controller::MechanicalStateController< DataTypes >::omni, sofa::component::controller::MechanicalStateController< DataTypes >::orientation, sofa::component::controller::MechanicalStateController< DataTypes >::position, and sofa::helper::Quater< Real >::rotate().

Referenced by sofa::component::controller::MechanicalStateController< DataTypes >::onBeginAnimationStep(), sofa::component::controller::MechanicalStateController< DataTypes >::onMouseEvent(), and sofa::component::controller::MechanicalStateController< DataTypes >::onOmniEvent().

template<class DataTypes >
unsigned int sofa::component::controller::MechanicalStateController< DataTypes >::getIndex ( void   )  const [inline]

Return the index of the controlled DOF of the MechanicalState.

Definition at line 248 of file MechanicalStateController.inl.

References sofa::core::objectmodel::Data< T >::getValue(), and sofa::component::controller::MechanicalStateController< DataTypes >::index.

template<class DataTypes >
const sofa::defaulttype::Vec< 3, typename MechanicalStateController< DataTypes >::Real > & sofa::component::controller::MechanicalStateController< DataTypes >::getMainDirection (  )  const [inline]

Return the direction of the controlled DOF corresponding to the Mouse vertical axis.

Definition at line 264 of file MechanicalStateController.inl.

References sofa::component::controller::MechanicalStateController< DataTypes >::mainDirection.

template<class DataTypes >
core::componentmodel::behavior::MechanicalState< DataTypes > * sofa::component::controller::MechanicalStateController< DataTypes >::getMechanicalState ( void   )  const [inline]

Return the controlled MechanicalState.

Definition at line 232 of file MechanicalStateController.inl.

References sofa::component::controller::MechanicalStateController< DataTypes >::mState.

template<class DataTypes >
virtual std::string sofa::component::controller::MechanicalStateController< DataTypes >::getTemplateName (  )  const [inline, virtual]

Get the template type names (if any) used to instantiate this object.

Reimplemented from sofa::core::objectmodel::Base.

Reimplemented in sofa::component::controller::EdgeSetController< DataTypes >.

Definition at line 153 of file MechanicalStateController.h.

References sofa::component::controller::MechanicalStateController< DataTypes >::templateName().

template<class DataTypes >
void sofa::component::controller::MechanicalStateController< DataTypes >::init ( void   )  [inline, virtual]

template<class DataTypes >
void sofa::component::controller::MechanicalStateController< DataTypes >::onBeginAnimationStep ( void   )  [inline, virtual]

template<class DataTypes >
void sofa::component::controller::MechanicalStateController< DataTypes >::onMouseEvent ( core::objectmodel::MouseEvent *  mev  )  [inline, virtual]

template<class DataTypes >
void sofa::component::controller::MechanicalStateController< DataTypes >::onOmniEvent ( core::objectmodel::OmniEvent *  mev  )  [inline, virtual]

template<class DataTypes >
void sofa::component::controller::MechanicalStateController< DataTypes >::setIndex ( const unsigned int  _index  )  [inline]

Set the index of the controlled DOF of the MechanicalState.

Definition at line 256 of file MechanicalStateController.inl.

References sofa::component::controller::MechanicalStateController< DataTypes >::index, and sofa::core::objectmodel::Data< T >::setValue().

template<class DataTypes >
void sofa::component::controller::MechanicalStateController< DataTypes >::setMainDirection ( const sofa::defaulttype::Vec< 3, Real >  _mainDirection  )  [inline]

Set the direction of the controlled DOF corresponding to the Mouse vertical axis.

Definition at line 272 of file MechanicalStateController.inl.

References sofa::component::controller::MechanicalStateController< DataTypes >::mainDirection.

template<class DataTypes >
void sofa::component::controller::MechanicalStateController< DataTypes >::setMechanicalState ( core::componentmodel::behavior::MechanicalState< DataTypes > *  _mState  )  [inline]

template<class DataTypes >
static std::string sofa::component::controller::MechanicalStateController< DataTypes >::templateName ( const MechanicalStateController< DataTypes > *  = NULL  )  [inline, static]


Field Documentation

template<class DataTypes >
int sofa::component::controller::MechanicalStateController< DataTypes >::eventX [protected]

template<class DataTypes >
int sofa::component::controller::MechanicalStateController< DataTypes >::eventY [protected]

template<class DataTypes >
Data< unsigned int > sofa::component::controller::MechanicalStateController< DataTypes >::index [protected]

Warning ! Only 3d Rigid DOFs can use this mainDirection.

Definition at line 168 of file MechanicalStateController.h.

Referenced by sofa::component::controller::MechanicalStateController< DataTypes >::init().

template<class DataTypes >
MouseMode sofa::component::controller::MechanicalStateController< DataTypes >::mouseMode [protected]

template<class DataTypes >
int sofa::component::controller::MechanicalStateController< DataTypes >::mouseSavedPosX [protected]

template<class DataTypes >
int sofa::component::controller::MechanicalStateController< DataTypes >::mouseSavedPosY [protected]

template<class DataTypes >
bool sofa::component::controller::MechanicalStateController< DataTypes >::omni [protected]

template<class DataTypes >
double sofa::component::controller::MechanicalStateController< DataTypes >::omniX [protected]

template<class DataTypes >
double sofa::component::controller::MechanicalStateController< DataTypes >::omniY [protected]

template<class DataTypes >
double sofa::component::controller::MechanicalStateController< DataTypes >::omniZ [protected]

template<class DataTypes >
Quat sofa::component::controller::MechanicalStateController< DataTypes >::orientation [protected]

template<class DataTypes >
Vector3 sofa::component::controller::MechanicalStateController< DataTypes >::position [protected]


The documentation for this class was generated from the following files:

Generated on Sun Nov 23 04:18:37 2008 for Sofa by  doxygen 1.5.7.1