#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... | |
![]() | |
Data< bool > | f_listening |
![]() | |
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 |
![]() | |
Data< bool > | d_handleEventTriggersUpdate |
![]() | |
SingleLink< BaseObject, BaseContext, BaseLink::FLAG_DOUBLELINK > | l_context |
LinkSlaves | l_slaves |
SingleLink< BaseObject, BaseObject, BaseLink::FLAG_DOUBLELINK > | l_master |
![]() | |
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... | |
![]() | |
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 |
![]() | |
SOFA_ABSTRACT_CLASS (BaseController, 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 |
![]() | |
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 () |
![]() | |
Controller () | |
~Controller () override | |
![]() | |
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) |
![]() | |
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) |
![]() | |
virtual | ~IntrusiveObject ()=default |
Additional Inherited Members | |
![]() | |
static bool | canCreate (T *, BaseContext *, BaseObjectDescription *) |
static T::SPtr | create (T *, BaseContext *context, BaseObjectDescription *arg) |
![]() | |
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.