SOFA plugin: ArticulatedSystemPlugin  master
Open source framework for multi-physics simuation
articulatedsystemplugin::ArticulatedHierarchyController Class Reference

#include <ArticulatedHierarchyController.h>

ArticulatedHierarchyController Class. More...

Inheritance diagram for articulatedsystemplugin::ArticulatedHierarchyController:

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.

Public Member Functions

 SOFA_CLASS (ArticulatedHierarchyController, Controller)
 
virtual void init () override
 Init method called during the scene graph initialization. More...
 
- Public Member Functions inherited from sofa::component::controller::Controller
 SOFA_CLASS (Controller, core::behavior::BaseController)
 
virtual void onMouseEvent (core::objectmodel::MouseEvent *)
 
virtual void onHapticDeviceEvent (core::objectmodel::HapticDeviceEvent *)
 
virtual void onKeyPressedEvent (core::objectmodel::KeypressedEvent *)
 
virtual void onKeyReleasedEvent (core::objectmodel::KeyreleasedEvent *)
 
virtual void onJoystickEvent (core::objectmodel::JoystickEvent *)
 
virtual void onEndAnimationStep (const double)
 
virtual void onGUIEvent (core::objectmodel::GUIEvent *)
 
void handleEvent (core::objectmodel::Event *) override
 
- Public Member Functions inherited from sofa::core::behavior::BaseController
 SOFA_ABSTRACT_CLASS (BaseController, core::objectmodel::BaseObject)
 
- Public Member Functions inherited from sofa::core::objectmodel::BaseObject
 SOFA_CLASS (BaseObject, Base)
 
virtual void draw (const core::visual::VisualParams *)
 
virtual void computeBBox (const core::ExecParams *, bool=false)
 
void setSrc (const std::string &v, std::vector< std::string > *attributeList=nullptr)
 
void setSrc (const std::string &v, const BaseObject *loader, std::vector< std::string > *attributeList=nullptr)
 
BasefindLinkDestClass (const BaseClass *destType, const std::string &path, const BaseLink *link) override
 
virtual std::string getPathName () const override
 
virtual bool insertInNode (BaseNode *)
 
virtual bool removeInNode (BaseNode *)
 
SReal getTime () const
 
const BaseContextgetContext () const
 
BaseContextgetContext ()
 
const BaseObjectgetMaster () const
 
BaseObjectgetMaster ()
 
const VecSlavesgetSlaves () const
 
BaseObjectgetSlave (const std::string &name) const
 
virtual void addSlave (BaseObject::SPtr s)
 
virtual void removeSlave (BaseObject::SPtr s)
 
virtual void handleTopologyChange ()
 
virtual void handleTopologyChange (core::topology::Topology *t)
 
void parse (BaseObjectDescription *arg) override
 
virtual void bwdInit ()
 
virtual void reinit ()
 
void updateInternal ()
 
virtual void storeResetState ()
 
virtual void reset ()
 
virtual void cleanup ()
 
SReal getTime () const
 
- Public Member Functions inherited from sofa::core::objectmodel::Base
virtual const BaseClassgetClass () const
 
void addDeprecatedAttribute (lifecycle::DeprecatedData *attribute)
 
void addUpdateCallback (const std::string &name, std::initializer_list< BaseData * > inputs, std::function< sofa::core::objectmodel::ComponentState(const DataTracker &)> function, std::initializer_list< BaseData * > outputs)
 
void addOutputsToCallback (const std::string &name, std::initializer_list< BaseData * > outputs)
 
const std::string & getName () const
 
void setName (const std::string &n)
 
void setName (const std::string &n, int counter)
 
std::string getTypeName () const
 
virtual std::string getClassName () const
 
virtual std::string getTemplateName () const final
 
std::string getNameSpaceName () const
 
void setDefinitionSourceFileName (const std::string &sourceFileName)
 
const std::string & getDefinitionSourceFileName () const
 
void setDefinitionSourceFilePos (const int)
 
int getDefinitionSourceFilePos () const
 
void setInstanciationSourceFileName (const std::string &sourceFileName)
 
const std::string & getInstanciationSourceFileName () const
 
void setInstanciationSourceFilePos (const int)
 
int getInstanciationSourceFilePos () const
 
void addMessage (const sofa::helper::logging::Message &m) const
 
size_t countLoggedMessages (sofa::helper::logging::Message::TypeSet t=sofa::helper::logging::Message::AnyTypes) const
 
const std::deque< sofa::helper::logging::Message > & getLoggedMessages () const
 
const std::string getLoggedMessagesAsString (sofa::helper::logging::Message::TypeSet t=sofa::helper::logging::Message::AnyTypes) const
 
void clearLoggedMessages () const
 
bool notMuted () const
 
const sofa::core::objectmodel::TagSetgetTags () const
 
bool hasTag (Tag t) const
 
void addTag (Tag t)
 
void removeTag (Tag t)
 
ComponentState getComponentState () const
 
bool isComponentStateValid () const
 
bool isComponentStateInvalid () const
 
 SOFA_ATTRIBUTE_DEPRECATED__TOBASECONSTRAINT () virtual const behavior
 
virtual bool parseField (const std::string &attribute, const std::string &value)
 
virtual bool hasField (const std::string &attribute) const
 
void parseFields (const std::list< std::string > &str)
 
virtual void parseFields (const std::map< std::string, std::string * > &str)
 
void writeDatas (std::map< std::string, std::string * > &str)=delete
 
void writeDatas (std::ostream &out, const std::string &separator=" ")
 
BaseDatafindData (const std::string &name) const
 
std::vector< BaseData * > findGlobalField (const std::string &name) const
 
BaseLinkfindLink (const std::string &name) const
 
std::vector< BaseLink * > findLinks (const std::string &name) const
 
virtual void updateLinks (bool logErrors=true)
 
BaseData::BaseInitData initData (::sofa::core::objectmodel::Data< T > *field, const char *name, const char *help, ::sofa::core::objectmodel::BaseData::DataFlags dataflags)
 
BaseData::BaseInitData initData (Data< T > *field, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false)
 
Data< T >::InitData initData (Data< T > *field, const T &value, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false)
 
void addData (BaseData *f, const std::string &name)
 
void addData (BaseData *f)
 
void removeData (BaseData *f)
 
void addAlias (BaseData *field, const char *alias)
 
void addLink (BaseLink *l)
 
void addAlias (BaseLink *link, const char *alias)
 
const VecDatagetDataFields () const
 
const MapDatagetDataAliases () const
 
const VecLinkgetLinks () const
 
const MapLinkgetLinkAliases () const
 
virtual bool findDataLinkDest (BaseData *&ptr, const std::string &path, const BaseLink *link)
 
bool findLinkDest (T *&ptr, const std::string &path, const BaseLink *link)
 
const sofa::core::objectmodel::TagSetgetTags () const
 
bool hasTag (Tag t) const
 
void addTag (Tag t)
 
void removeTag (Tag t)
 
ComponentState getComponentState () const
 
bool isComponentStateValid () const
 
bool isComponentStateInvalid () const
 
 SOFA_ATTRIBUTE_DEPRECATED__TOBASECONSTRAINT () virtual const behavior
 

Protected Member Functions

 ArticulatedHierarchyController ()
 Default Constructor. More...
 
virtual ~ArticulatedHierarchyController ()
 Default Destructor. More...
 
- Protected Member Functions inherited from sofa::component::controller::Controller
 Controller ()
 
 ~Controller () override
 
- Protected Member Functions inherited from sofa::core::objectmodel::BaseObject
 BaseObject ()
 
 ~BaseObject () override
 
virtual void doUpdateInternal ()
 
void changeContextLink (BaseContext *before, BaseContext *&after)
 
void changeSlavesLink (BaseObject::SPtr ptr, std::size_t, bool add)
 
void trackInternalData (const BaseData &data)
 
void cleanTracker ()
 
bool hasDataChanged (const BaseData &data)
 
- Protected Member Functions inherited from sofa::core::objectmodel::Base
 Base ()
 
virtual ~Base ()
 
void initData0 (BaseData *field, BaseData::BaseInitData &res, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false)
 
void initData0 (BaseData *field, BaseData::BaseInitData &res, const char *name, const char *help, BaseData::DataFlags dataFlags)
 
void initData0 (Data< T > *field, typename Data< T >::InitData &res, const T &value, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false)
 
- Protected Member Functions inherited from sofa::core::IntrusiveObject
virtual ~IntrusiveObject ()=default
 

Debugging methods.

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

Controller Interface

Data< type::vector< int > > articulationsIndices
 Indices of articulations controlled by the keyboard. More...
 
Data< type::vector< char > > bindingKeys
 Keys to press to control the articulations. More...
 
Data< double > angleDelta
 Angle incrementation due to each user interaction. More...
 
Data< bool > propagateUserInteraction
 Says wether or not the user interaction is local on the articulations, or must be propagated to children recursively. More...
 
type::vector< bool > activeArticulations
 Stores activated articulations information. More...
 
std::map< int, type::vector< int > > articulationsPropagationChains
 
void onMouseEvent (core::objectmodel::MouseEvent *) override
 Mouse event callback. More...
 
void onKeyPressedEvent (core::objectmodel::KeypressedEvent *) override
 Key press event callback. More...
 
void onBeginAnimationStep (const double dt) override
 begin animation callback. Called at the beginning of each time step. More...
 
virtual void applyController (void)
 Apply the controller current modifications to its controlled component. More...
 
void buildPropagationArticulationsChain (void)
 Build the articulations list related to each controlled articulation. More...
 
void buildArray (std::vector< int > &, Articulation *, ArticulationCenter *)
 Build the articulations indices list according to an Articulation and its ArticulationCenter. More...
 
void updateActiveArticulationsIndices (const char)
 Set the active articulation from a Key Input. More...
 

Additional Inherited Members

- Public Attributes inherited from sofa::core::objectmodel::BaseObject
Data< bool > f_listening
 
- Public Attributes inherited from sofa::core::objectmodel::Base
std::vector< lifecycle::DeprecatedData * > m_oldAttributes
 
Data< int > d_messageLogCount
 
Data< std::string > name
 
Data< bool > f_printLog
 
Data< sofa::core::objectmodel::TagSetf_tags
 
Data< sofa::type::BoundingBoxf_bbox
 
Data< sofa::core::objectmodel::ComponentStated_componentState
 
std::string m_definitionSourceFileName
 
int m_definitionSourceFilePos
 
std::string m_instanciationSourceFileName
 
int m_instanciationSourceFilePos
 
- Protected Attributes inherited from sofa::component::controller::Controller
Data< bool > d_handleEventTriggersUpdate
 
- Protected Attributes inherited from sofa::core::objectmodel::BaseObject
SingleLink< BaseObject, BaseContext, BaseLink::FLAG_DOUBLELINK > l_context
 
LinkSlaves l_slaves
 
SingleLink< BaseObject, BaseObject, BaseLink::FLAG_DOUBLELINK > l_master
 
- Protected Attributes inherited from sofa::core::objectmodel::Base
std::map< std::string, sofa::core::DataTrackerCallbackm_internalEngine
 
VecData m_vecData
 
MapData m_aliasData
 
VecLink m_vecLink
 
MapLink m_aliasLink
 
- Static Public Member Functions inherited from sofa::core::objectmodel::BaseObject
static bool canCreate (T *, BaseContext *, BaseObjectDescription *)
 
static T::SPtr create (T *, BaseContext *context, BaseObjectDescription *arg)
 
- Static Public Member Functions inherited from sofa::core::objectmodel::Base
static const BaseClassGetClass ()
 
static std::string shortName (const T *ptr=nullptr, BaseObjectDescription *=nullptr)
 

Attribute details

◆ activeArticulations

type::vector< bool > articulatedsystemplugin::ArticulatedHierarchyController::activeArticulations
protected

Stores activated articulations information.

◆ angleDelta

Data< double > articulatedsystemplugin::ArticulatedHierarchyController::angleDelta
protected

Angle incrementation due to each user interaction.

◆ articulationsIndices

Data<type::vector< int > > articulatedsystemplugin::ArticulatedHierarchyController::articulationsIndices
protected

Indices of articulations controlled by the keyboard.

◆ articulationsPropagationChains

std::map<int, type::vector< int > > articulatedsystemplugin::ArticulatedHierarchyController::articulationsPropagationChains
protected

◆ bindingKeys

Data<type::vector< char > > articulatedsystemplugin::ArticulatedHierarchyController::bindingKeys
protected

Keys to press to control the articulations.

◆ m_artCenterVec

ArtCenterVec articulatedsystemplugin::ArticulatedHierarchyController::m_artCenterVec
protected

List of ArticulationCenters controlled by the controller.

◆ mouseMode

MouseMode articulatedsystemplugin::ArticulatedHierarchyController::mouseMode
protected

◆ propagateUserInteraction

Data< bool > articulatedsystemplugin::ArticulatedHierarchyController::propagateUserInteraction
protected

Says wether or not the user interaction is local on the articulations, or must be propagated to children recursively.

◆ propagationChain

bool articulatedsystemplugin::ArticulatedHierarchyController::propagationChain
protected

◆ signFactor

double articulatedsystemplugin::ArticulatedHierarchyController::signFactor
protected

Constructor details

◆ ArticulatedHierarchyController()

articulatedsystemplugin::ArticulatedHierarchyController::ArticulatedHierarchyController ( )
protected

Default Constructor.

◆ ~ArticulatedHierarchyController()

virtual articulatedsystemplugin::ArticulatedHierarchyController::~ArticulatedHierarchyController ( )
inlineprotectedvirtual

Default Destructor.

Function details

◆ applyController()

void articulatedsystemplugin::ArticulatedHierarchyController::applyController ( void  )
virtual

Apply the controller current modifications to its controlled component.

Reimplemented in articulatedsystemplugin::ArticulatedHierarchyBVHController.

◆ buildArray()

void articulatedsystemplugin::ArticulatedHierarchyController::buildArray ( std::vector< int > &  artIndices,
Articulation artRef,
ArticulationCenter artCenterParent 
)
protected

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

◆ buildPropagationArticulationsChain()

void articulatedsystemplugin::ArticulatedHierarchyController::buildPropagationArticulationsChain ( void  )
protected

Build the articulations list related to each controlled articulation.

◆ dumpActiveArticulations()

void articulatedsystemplugin::ArticulatedHierarchyController::dumpActiveArticulations ( void  ) const
protected

◆ dumpArticulationsAndBindingKeys()

void articulatedsystemplugin::ArticulatedHierarchyController::dumpArticulationsAndBindingKeys ( void  ) const
protected

◆ init()

void articulatedsystemplugin::ArticulatedHierarchyController::init ( void  )
overridevirtual

Init method called during the scene graph initialization.

Reimplemented from sofa::core::objectmodel::BaseObject.

Reimplemented in articulatedsystemplugin::ArticulatedHierarchyBVHController.

◆ onBeginAnimationStep()

void articulatedsystemplugin::ArticulatedHierarchyController::onBeginAnimationStep ( const double  dt)
overridevirtual

begin animation callback. Called at the beginning of each time step.

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

◆ onKeyPressedEvent()

void articulatedsystemplugin::ArticulatedHierarchyController::onKeyPressedEvent ( core::objectmodel::KeypressedEvent *  kev)
override

Key press event callback.

◆ onMouseEvent()

void articulatedsystemplugin::ArticulatedHierarchyController::onMouseEvent ( core::objectmodel::MouseEvent *  mev)
override

Mouse event callback.

◆ resetControler()

void articulatedsystemplugin::ArticulatedHierarchyController::resetControler ( void  )
protected

Set the controller in its initial state.

◆ SOFA_CLASS()

articulatedsystemplugin::ArticulatedHierarchyController::SOFA_CLASS ( ArticulatedHierarchyController  ,
Controller   
)

◆ updateActiveArticulationsIndices()

void articulatedsystemplugin::ArticulatedHierarchyController::updateActiveArticulationsIndices ( const char  keyChar)
protected

Set the active articulation from a Key Input.

Enum details

◆ MouseMode

Current MouseMode buffered.

Enumerator
None 
BtLeft 
BtRight 
BtMiddle 
Wheel