#include <GeomagicDriver.h>

Class providing a driver API to handle Geomagic haptic device and the servo loop scheduler. Position and angles of the device will be retrieve inside
| Classes | |
| struct | DeviceData | 
| These data are written by the omni they cnnot be accessed in the simulation loop.  More... | |
| Public Attributes | |
| unsigned int | HD_INVALID_HANDLE = 0 | 
| Data< std::string > | d_deviceName | 
| Name of device Configuration.  More... | |
| Data< Vec3 > | d_positionBase | 
| Position of the device base in the SOFA scene world coordinates.  More... | |
| Data< Quat > | d_orientationBase | 
| Orientation of the device base in the SOFA scene world coordinates.  More... | |
| Data< Quat > | d_orientationTool | 
| Orientation of the tool in the SOFA scene world coordinates.  More... | |
| Data< SReal > | d_scale | 
| Default scale applied to the Device coordinates.  More... | |
| Data< SReal > | d_forceScale | 
| Default scaling factor applied to the force feedback.  More... | |
| Data< SReal > | d_maxInputForceFeedback | 
| Maximum value of the normed input force feedback for device security.  More... | |
| Data< Vec3 > | d_inputForceFeedback | 
| Input force feedback in case of no LCPForceFeedback is found (manual setting)  More... | |
| Data< bool > | d_manualStart | 
| If true, will not automatically initDevice at component init phase.  More... | |
| Data< bool > | d_emitButtonEvent | 
| If true, will send event through the graph when button are pushed/released.  More... | |
| Data< bool > | d_frameVisu | 
| Visualize the frame corresponding to the device tooltip.  More... | |
| Data< bool > | d_omniVisu | 
| Visualize the Geomagic device in the virtual scene.  More... | |
| Data< Coord > | d_posDevice | 
| position of the base of the part of the device  More... | |
| Data< type::Vec6 > | d_angle | 
| Angular values of joint (rad)  More... | |
| Data< bool > | d_button_1 | 
| Button state 1.  More... | |
| Data< bool > | d_button_2 | 
| Button state 2.  More... | |
| sofa::component::haptics::ForceFeedback::SPtr | m_forceFeedback | 
| SingleLink< GeomagicDriver, sofa::component::haptics::ForceFeedback, BaseLink::FLAG_STOREPATH|BaseLink::FLAG_STRONGLINK > | l_forceFeedback | 
| bool | m_simulationStarted | 
| Boolean to warn scheduler when SOFA has started the simulation (changed by AnimateBeginEvent)  More... | |
| bool | m_isInContact | 
| Boolean to warn SOFA side when scheduler has computer contact (forcefeedback no null)  More... | |
| DeviceData | m_hapticData | 
| data structure used by scheduler  More... | |
| DeviceData | m_simuData | 
| data structure used by SOFA loop, values are copied from  More... | |
| SHHD | m_hHD | 
| ID the device.  More... | |
| std::vector< SHDSchedulerHandle > | m_hStateHandles | 
| List of ref to the workers scheduled.  More... | |
|  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::TagSet > | f_tags | 
| Data< sofa::type::BoundingBox > | f_bbox | 
| Data< sofa::core::objectmodel::ComponentState > | d_componentState | 
| std::string | m_definitionSourceFileName | 
| int | m_definitionSourceFilePos | 
| std::string | m_instanciationSourceFileName | 
| int | m_instanciationSourceFilePos | 
| Static Public Attributes | |
| static bool | s_schedulerRunning = false | 
| This static bool is used to know if HD scheduler is already running. No mechanism provided by Hd lib.  More... | |
| Protected Attributes | |
| std::unique_ptr< GeomagicVisualModel > | m_GeomagicVisualModel | 
|  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::DataTrackerCallback > | m_internalEngine | 
| VecData | m_vecData | 
| MapData | m_aliasData | 
| VecLink | m_vecLink | 
| MapLink | m_aliasLink | 
| Public Member Functions | |
| SOFA_CLASS (GeomagicDriver, Controller) | |
| GeomagicDriver () | |
| virtual | ~GeomagicDriver () | 
| void | init () override | 
| void | draw (const sofa::core::visual::VisualParams *vparams) override | 
| void | handleEvent (core::objectmodel::Event *) override | 
| void | computeBBox (const core::ExecParams *params, bool onlyVisible=false) override | 
| virtual void | initDevice () | 
| Public method to init tool. Can be called from thirdparty if.  More... | |
| virtual void | clearDevice () | 
| Method to clear scheduler and free device. Called by default at driver destruction.  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 | onBeginAnimationStep (const double) | 
| 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 | 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) | 
| Base * | findLinkDestClass (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 BaseContext * | getContext () const | 
| BaseContext * | getContext () | 
| const BaseObject * | getMaster () const | 
| BaseObject * | getMaster () | 
| const VecSlaves & | getSlaves () const | 
| BaseObject * | getSlave (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 BaseClass * | getClass () 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::TagSet & | getTags () 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=" ") | 
| BaseData * | findData (const std::string &name) const | 
| std::vector< BaseData * > | findGlobalField (const std::string &name) const | 
| BaseLink * | findLink (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 VecData & | getDataFields () const | 
| const MapData & | getDataAliases () const | 
| const VecLink & | getLinks () const | 
| const MapLink & | getLinkAliases () 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::TagSet & | getTags () 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 | |
| void | updatePosition () | 
| Internal method to update the position of the device in SOFA world using.  More... | |
| void | updateButtonStates () | 
|  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 | 
| Additional Inherited Members | |
|  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 BaseClass * | GetClass () | 
| static std::string | shortName (const T *ptr=nullptr, BaseObjectDescription *=nullptr) | 
| Data<type::Vec6> geomagic::GeomagicDriver::d_angle | 
Angular values of joint (rad)
| Data<bool> geomagic::GeomagicDriver::d_button_1 | 
Button state 1.
| Data<bool> geomagic::GeomagicDriver::d_button_2 | 
Button state 2.
| Data< std::string > geomagic::GeomagicDriver::d_deviceName | 
Name of device Configuration.
| Data<bool> geomagic::GeomagicDriver::d_emitButtonEvent | 
If true, will send event through the graph when button are pushed/released.
| Data<SReal> geomagic::GeomagicDriver::d_forceScale | 
Default scaling factor applied to the force feedback.
| Data<bool> geomagic::GeomagicDriver::d_frameVisu | 
Visualize the frame corresponding to the device tooltip.
| Data<Vec3> geomagic::GeomagicDriver::d_inputForceFeedback | 
Input force feedback in case of no LCPForceFeedback is found (manual setting)
| Data<bool> geomagic::GeomagicDriver::d_manualStart | 
If true, will not automatically initDevice at component init phase.
| Data<SReal> geomagic::GeomagicDriver::d_maxInputForceFeedback | 
Maximum value of the normed input force feedback for device security.
| Data<bool> geomagic::GeomagicDriver::d_omniVisu | 
Visualize the Geomagic device in the virtual scene.
| Data<Quat> geomagic::GeomagicDriver::d_orientationBase | 
Orientation of the device base in the SOFA scene world coordinates.
| Data<Quat> geomagic::GeomagicDriver::d_orientationTool | 
Orientation of the tool in the SOFA scene world coordinates.
| Data<Coord> geomagic::GeomagicDriver::d_posDevice | 
position of the base of the part of the device
| Data<Vec3> geomagic::GeomagicDriver::d_positionBase | 
Position of the device base in the SOFA scene world coordinates.
| Data<SReal> geomagic::GeomagicDriver::d_scale | 
Default scale applied to the Device coordinates.
| unsigned int geomagic::GeomagicDriver::HD_INVALID_HANDLE = 0 | 
| SingleLink<GeomagicDriver, sofa::component::haptics::ForceFeedback, BaseLink::FLAG_STOREPATH | BaseLink::FLAG_STRONGLINK> geomagic::GeomagicDriver::l_forceFeedback | 
| sofa::component::haptics::ForceFeedback::SPtr geomagic::GeomagicDriver::m_forceFeedback | 
| 
 | protected | 
| DeviceData geomagic::GeomagicDriver::m_hapticData | 
data structure used by scheduler
| SHHD geomagic::GeomagicDriver::m_hHD | 
ID the device.
| std::vector< SHDSchedulerHandle > geomagic::GeomagicDriver::m_hStateHandles | 
List of ref to the workers scheduled.
| bool geomagic::GeomagicDriver::m_isInContact | 
Boolean to warn SOFA side when scheduler has computer contact (forcefeedback no null)
| DeviceData geomagic::GeomagicDriver::m_simuData | 
data structure used by SOFA loop, values are copied from
| bool geomagic::GeomagicDriver::m_simulationStarted | 
Boolean to warn scheduler when SOFA has started the simulation (changed by AnimateBeginEvent)
| 
 | inlinestatic | 
This static bool is used to know if HD scheduler is already running. No mechanism provided by Hd lib.
| geomagic::GeomagicDriver::GeomagicDriver | ( | ) | 
| 
 | virtual | 
| 
 | virtual | 
Method to clear scheduler and free device. Called by default at driver destruction.
Reimplemented in geomagic::GeomagicEmulator.
| 
 | override | 
| 
 | overridevirtual | 
Reimplemented from sofa::core::objectmodel::BaseObject.
| 
 | override | 
| 
 | overridevirtual | 
Reimplemented from sofa::core::objectmodel::BaseObject.
| 
 | virtual | 
Public method to init tool. Can be called from thirdparty if.
Reimplemented in geomagic::GeomagicEmulator.
| geomagic::GeomagicDriver::SOFA_CLASS | ( | GeomagicDriver | , | 
| Controller | |||
| ) | 
| 
 | protected | 
Internal method called by
| 
 | protected | 
Internal method to update the position of the device in SOFA world using.