sofa::component::controller::ArticulatedHierarchyController Class Reference

ArticulatedHierarchyController Class. More...

#include <ArticulatedHierarchyController.h>

Inheritance diagram for sofa::component::controller::ArticulatedHierarchyController:

Inheritance graph
[legend]
Collaboration diagram for sofa::component::controller::ArticulatedHierarchyController:

Collaboration graph
[legend]

Debugging methods.

enum  MouseMode {
  None = 0, BtLeft, BtRight, BtMiddle,
  Wheel
}
 Current MouseMode buffered. More...
MouseMode mouseMode
double signFactor
bool propagationChain
ArtCenterVec m_artCenterVec
 List of ArticulationCenters controlled by the controller.
void dumpActiveArticulations (void) const
void dumpArticulationsAndBindingKeys (void) const
void resetControler (void)
 Set the controller in its initial state.

Public Types

typedef std::vector
< ArticulatedHierarchyContainer::ArticulationCenter * > 
ArtCenterVec
typedef ArtCenterVec::iterator ArtCenterVecIt
typedef std::vector
< ArticulatedHierarchyContainer::ArticulationCenter::Articulation * > 
ArtVec
typedef ArtVec::iterator ArtVecIt

Public Member Functions

 ArticulatedHierarchyController ()
 Default Constructor.
virtual ~ArticulatedHierarchyController ()
 Default Destructor.
virtual void init ()
 Init method called during the scene graph initialization.
virtual void applyController (void)
 Apply the controller current modifications to its controled component.
Controller Interface
void onMouseEvent (core::objectmodel::MouseEvent *)
 Mouse event callback.
void onKeyPressedEvent (core::objectmodel::KeypressedEvent *)
 Key press event callback.
void onBeginAnimationStep (void)
 begin animation callback.

Protected Member Functions

void buildPropagationArticulationsChain (void)
 Build the articulations list related to each controlled articulation.
void buildArray (std::vector< int > &, ArticulatedHierarchyContainer::ArticulationCenter::Articulation *, ArticulatedHierarchyContainer::ArticulationCenter *)
 Build the articulations indices list according to an Articulation and its ArticulationCenter.
void updateActiveArticulationsIndices (const char)
 Set the active articulation from a Key Input.

Protected Attributes

Data< sofa::helper::vector< int > > articulationsIndices
 Stores controlled articulations indices.
Data< sofa::helper::vector
< char > > 
bindingKeys
 Stores controlled articulations keyboard keys.
Data< double > angleDelta
 Angle step added at each event reception.
Data< bool > propagateUserInteraction
 Says wether or not to apportion the articulation modification to its children in the hierarchy.
sofa::helper::vector< bool > activeArticulations
 Stores activated articulations information.
std::map< int,
sofa::helper::vector< int > > 
articulationsPropagationChains

Detailed Description

ArticulatedHierarchyController Class.

Implements an user interaction handler that controls the values of the articulations of an articulated hierarchy container. Mouse Buttons and Wheel are controlling the value. Keyboard is used to select the controlled articulation.

Definition at line 67 of file ArticulatedHierarchyController.h.


Member Typedef Documentation

typedef std::vector< ArticulatedHierarchyContainer::ArticulationCenter * > sofa::component::controller::ArticulatedHierarchyController::ArtCenterVec

Definition at line 70 of file ArticulatedHierarchyController.h.

Definition at line 71 of file ArticulatedHierarchyController.h.

typedef std::vector< ArticulatedHierarchyContainer::ArticulationCenter::Articulation * > sofa::component::controller::ArticulatedHierarchyController::ArtVec

Definition at line 72 of file ArticulatedHierarchyController.h.

Definition at line 73 of file ArticulatedHierarchyController.h.


Member Enumeration Documentation

Current MouseMode buffered.

Enumerator:
None 
BtLeft 
BtRight 
BtMiddle 
Wheel 

Definition at line 157 of file ArticulatedHierarchyController.h.


Constructor & Destructor Documentation

sofa::component::controller::ArticulatedHierarchyController::ArticulatedHierarchyController (  ) 

Default Constructor.

Definition at line 66 of file ArticulatedHierarchyController.cpp.

References m_artCenterVec.

virtual sofa::component::controller::ArticulatedHierarchyController::~ArticulatedHierarchyController (  )  [inline, virtual]

Default Destructor.

Definition at line 83 of file ArticulatedHierarchyController.h.


Member Function Documentation

void sofa::component::controller::ArticulatedHierarchyController::applyController ( void   )  [virtual]

void sofa::component::controller::ArticulatedHierarchyController::buildArray ( std::vector< int > &  artIndices,
ArticulatedHierarchyContainer::ArticulationCenter::Articulation *  artRef,
ArticulatedHierarchyContainer::ArticulationCenter *  artCenterParent 
) [protected]

Build the articulations indices list according to an Articulation and its ArticulationCenter.

Definition at line 144 of file ArticulatedHierarchyController.cpp.

References m_artCenterVec.

Referenced by buildPropagationArticulationsChain().

void sofa::component::controller::ArticulatedHierarchyController::buildPropagationArticulationsChain ( void   )  [protected]

Build the articulations list related to each controlled articulation.

Definition at line 93 of file ArticulatedHierarchyController.cpp.

References articulationsIndices, articulationsPropagationChains, buildArray(), sofa::core::objectmodel::Data< T >::getValue(), and m_artCenterVec.

Referenced by applyController().

void sofa::component::controller::ArticulatedHierarchyController::dumpActiveArticulations ( void   )  const [protected]

void sofa::component::controller::ArticulatedHierarchyController::dumpArticulationsAndBindingKeys ( void   )  const [protected]

void sofa::component::controller::ArticulatedHierarchyController::init ( void   )  [virtual]

void sofa::component::controller::ArticulatedHierarchyController::onBeginAnimationStep ( void   )  [virtual]

begin animation callback.

Called at the beginning of each time step.

Reimplemented from sofa::component::controller::Controller.

Definition at line 306 of file ArticulatedHierarchyController.cpp.

References applyController().

void sofa::component::controller::ArticulatedHierarchyController::onKeyPressedEvent ( core::objectmodel::KeypressedEvent *  kev  )  [virtual]

void sofa::component::controller::ArticulatedHierarchyController::onMouseEvent ( core::objectmodel::MouseEvent *  mev  )  [virtual]

void sofa::component::controller::ArticulatedHierarchyController::resetControler ( void   )  [protected]

Set the controller in its initial state.

Definition at line 313 of file ArticulatedHierarchyController.cpp.

References activeArticulations, mouseMode, and None.

Referenced by init(), and onMouseEvent().

void sofa::component::controller::ArticulatedHierarchyController::updateActiveArticulationsIndices ( const char  keyChar  )  [protected]

Set the active articulation from a Key Input.

Definition at line 220 of file ArticulatedHierarchyController.cpp.

References activeArticulations, articulationsIndices, bindingKeys, dumpActiveArticulations(), and sofa::core::objectmodel::Data< T >::getValue().

Referenced by onKeyPressedEvent().


Field Documentation

Stores activated articulations information.

Definition at line 122 of file ArticulatedHierarchyController.h.

Referenced by applyController(), dumpActiveArticulations(), init(), resetControler(), and updateActiveArticulationsIndices().

Angle step added at each event reception.

Definition at line 119 of file ArticulatedHierarchyController.h.

Referenced by applyController().

Stores controlled articulations keyboard keys.

Definition at line 118 of file ArticulatedHierarchyController.h.

Referenced by dumpArticulationsAndBindingKeys(), init(), and updateActiveArticulationsIndices().

Definition at line 158 of file ArticulatedHierarchyController.h.

Referenced by applyController(), onMouseEvent(), and resetControler().

Says wether or not to apportion the articulation modification to its children in the hierarchy.

Definition at line 120 of file ArticulatedHierarchyController.h.

Referenced by applyController().

Definition at line 161 of file ArticulatedHierarchyController.h.

Referenced by applyController(), and init().

Definition at line 160 of file ArticulatedHierarchyController.h.

Referenced by applyController(), and onMouseEvent().


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

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