iMSTK
Interactive Medical Simulation Toolkit
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Friends | List of all members
imstk::OpenVRDeviceClient Class Reference

This class provides quantities for the specified VR device The devices creation is tied to the viewer. It is only acquirable from a VR viewer and exists on the viewers thread. More...

#include <imstkOpenVRDeviceClient.h>

Inheritance diagram for imstk::OpenVRDeviceClient:
Inheritance graph
[legend]
Collaboration diagram for imstk::OpenVRDeviceClient:
Collaboration graph
[legend]

Public Member Functions

DeviceType getDeviceType () const
 
const Vec2d & getTrackpadPosition ()
 
void setTrackpadPosition (const Vec2d &pos)
 
void setPose (const Vec3d &pos, const Quatd &orientation)
 Set the current position and orientation.
 
- Public Member Functions inherited from imstk::DeviceClient
 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)
 
- Public Member Functions inherited from imstk::EventObject
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

 OpenVRDeviceClient (DeviceType deviceType)
 
void emitButtonTouched (const int buttonId)
 Emit various button events.
 
void emitButtonUntouched (const int buttonId)
 
void emitButtonPress (const int buttonId)
 
void emitButtonRelease (const int buttonId)
 
- Protected Member Functions inherited from imstk::DeviceClient
 DeviceClient (const std::string &name, const std::string &ip)
 

Static Protected Member Functions

static std::shared_ptr< OpenVRDeviceClientNew (DeviceType deviceType)
 

Friends

class ::vtkInteractorStyleVR
 

Additional Inherited Members

- Public Types inherited from imstk::EventObject
using Observer = std::tuple< bool, std::weak_ptr< EventObject >, std::function< void(Event *)> >
 
- Protected Attributes inherited from imstk::DeviceClient
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.
 
- Protected Attributes inherited from imstk::EventObject
ParallelUtils::SpinLock eventQueueLock
 
std::deque< CommandeventQueue
 
std::vector< std::pair< std::string, std::vector< Observer > > > queuedObservers
 
std::vector< std::pair< std::string, std::vector< Observer > > > directObservers
 

Detailed Description

This class provides quantities for the specified VR device The devices creation is tied to the viewer. It is only acquirable from a VR viewer and exists on the viewers thread.

Definition at line 24 of file imstkOpenVRDeviceClient.h.

Constructor & Destructor Documentation

◆ OpenVRDeviceClient()

imstk::OpenVRDeviceClient::OpenVRDeviceClient ( DeviceType  deviceType)
inlineprotected

This object is only creatable through its New method

Definition at line 30 of file imstkOpenVRDeviceClient.h.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ New()

std::shared_ptr< OpenVRDeviceClient > imstk::OpenVRDeviceClient::New ( DeviceType  deviceType)
staticprotected

This object is only creatable through this method

Definition at line 12 of file imstkOpenVRDeviceClient.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

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