iMSTK
Interactive Medical Simulation Toolkit
|
Allows setting the pose of the device from external caller without a real device connected. More...
#include <imstkDummyClient.h>
Public Member Functions | |
DummyClient (const std::string &name="") | |
void | setPosition (const Vec3d &pos) |
Set position. | |
void | setVelocity (const Vec3d &vel) |
Set velocity. | |
void | setOrientation (const Quatd &orient) |
Set orientation. | |
void | setOrientation (double *transform) |
Set orientation from 4x4 transform. | |
void | setButton (const unsigned int buttonId, const bool buttonStatus) |
Set the button status if it exists. | |
![]() | |
SIGNAL (DeviceClient, buttonStateChanged) | |
bool | getTrackingEnabled () const |
Get/Set what listeners to enable on the device: tracking, analogic, force, buttons. | |
void | setTrackingEnabled (const bool status) |
bool | getAnalogicEnabled () const |
void | setAnalogicEnabled (const bool status) |
bool | getButtonsEnabled () const |
void | setButtonsEnabled (const bool status) |
bool | getForceEnabled () const |
void | setForceEnabled (const bool status) |
Vec3d | getPosition () |
Get the device position. | |
Vec3d | getVelocity () |
Get the device velocity. | |
Vec3d | getAngularVelocity () |
Get the device angular velocity. | |
Quatd | getOrientation () |
Get the device orientation. | |
const Vec3d & | getOffset () const |
Get offset from position for device end effector. | |
const std::unordered_map< int, int > & | getButtons () const |
Get button map. | |
int | getButton (const int buttonId) |
Get the state of a button returns 0 if can't find button. | |
std::vector< double > | getAnalog () const |
get values of the analog input | |
double | getAnalog (int i) const |
get single analog value More... | |
virtual void | update () |
Do runtime logic. | |
const std::string & | getIp () |
Get/Set the device IP. | |
void | setIp (const std::string &ip) |
const std::string & | getDeviceName () |
Get/Set the device name. | |
void | setDeviceName (const std::string &deviceName) |
Vec3d | getForce () |
Get/Set the device force. | |
void | setForce (Vec3d force) |
![]() | |
template<typename T > | |
void | postEvent (const T &e) |
Emits the event Direct observers will be immediately called, in sync Queued observers will receive the Command in their queue for later execution, reciever must implement doEvent. | |
template<typename T > | |
void | queueEvent (const T &e) |
Queues event directly to this. | |
void | doEvent () |
Do an event, if none exists return. | |
void | doAllEvents () |
Do all the events in the event queue. | |
void | foreachEvent (std::function< void(Command cmd)> func) |
Thread safe loop over all event commands, one can implement a custom handler. | |
void | rforeachEvent (std::function< void(Command cmd)> func) |
thread safe reverse loop over all event commands, one can implement a custom handler | |
void | clearEvents () |
Removes all events from queue cleans up copies of the event. | |
Protected Member Functions | |
void | init (const unsigned int numButtons=0) |
Initialize the client. | |
void | run ()=delete |
void | cleanUp ()=delete |
![]() | |
DeviceClient (const std::string &name, const std::string &ip) | |
Protected Attributes | |
std::unordered_map< int, bool > | m_buttons |
![]() | |
std::string | m_deviceName |
Device Name. | |
std::string | m_ip |
Connection device IP. | |
bool | m_trackingEnabled = true |
Tracking enabled if true. | |
bool | m_analogicEnabled = true |
Analogic enabled if true. | |
bool | m_buttonsEnabled = true |
Buttons enabled if true. | |
bool | m_forceEnabled = false |
Force enabled if true. | |
Vec3d | m_position |
Position of end effector. | |
Vec3d | m_velocity |
Linear velocity of end effector. | |
Vec3d | m_angularVelocity |
Angular velocity of the end effector. | |
Quatd | m_orientation |
Orientation of the end effector. | |
Vec3d | m_force |
Force vector. | |
Vec3d | m_endEffectorOffset = Vec3d(0.0, 0.0, 0.0) |
Offset from origin. | |
std::unordered_map< int, int > | m_buttons |
std::vector< double > | m_analogChannels |
ParallelUtils::SpinLock | m_transformLock |
Used for devices filling data from other threads. | |
ParallelUtils::SpinLock | m_forceLock |
Used for devices filling data from other threads. | |
ParallelUtils::SpinLock | m_dataLock |
Used for button and analog data. | |
![]() | |
ParallelUtils::SpinLock | eventQueueLock |
std::deque< Command > | eventQueue |
std::vector< std::pair< std::string, std::vector< Observer > > > | queuedObservers |
std::vector< std::pair< std::string, std::vector< Observer > > > | directObservers |
Additional Inherited Members | |
![]() | |
using | Observer = std::tuple< bool, std::weak_ptr< EventObject >, std::function< void(Event *)> > |
Allows setting the pose of the device from external caller without a real device connected.
Definition at line 21 of file imstkDummyClient.h.