iMSTK
Interactive Medical Simulation Toolkit
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends | List of all members
imstk::MouseDeviceClient Class Reference
Inheritance diagram for imstk::MouseDeviceClient:
Inheritance graph
[legend]
Collaboration diagram for imstk::MouseDeviceClient:
Collaboration graph
[legend]

Public Member Functions

 SIGNAL (MouseDeviceClient, mouseButtonPress)
 Posted when a button on the mouse is pressed (not continuously)
 
 SIGNAL (MouseDeviceClient, mouseButtonRelease)
 Posted when a button on the mouse is released (not continuously)
 
 SIGNAL (MouseDeviceClient, mouseScroll)
 Posted when mouse scrolls.
 
 SIGNAL (MouseDeviceClient, mouseMove)
 Posted when mouse moves.
 
const Vec2d & getPos () const
 Get the current position of the mouse.
 
const Vec2d & getPrevPos () const
 Get the previous position of the mouse.
 
bool isButtonDown (const MouseButtonType buttonId) const
 Query if the button is down.
 
- 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

 MouseDeviceClient ()
 
void updateMousePos (const Vec2d &pos)
 Update the mouse position.
 
void emitButtonPress (const MouseButtonType buttonId)
 Post a click down event.
 
void emitButtonRelease (const MouseButtonType buttonId)
 Post a click release event.
 
void emitScroll (const double dx)
 Post a mouse scroll event.
 
- Protected Member Functions inherited from imstk::DeviceClient
 DeviceClient (const std::string &name, const std::string &ip)
 

Static Protected Member Functions

static std::shared_ptr< MouseDeviceClientNew ()
 

Protected Attributes

Vec2d m_prevPos
 
Vec2d m_pos
 
- 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
 

Friends

class VTKInteractorStyle
 

Additional Inherited Members

- Public Types inherited from imstk::EventObject
using Observer = std::tuple< bool, std::weak_ptr< EventObject >, std::function< void(Event *)> >
 

Detailed Description

Definition at line 60 of file imstkMouseDeviceClient.h.

Constructor & Destructor Documentation

◆ MouseDeviceClient()

imstk::MouseDeviceClient::MouseDeviceClient ( )
inlineprotected

This object is only creatable through its New method

Definition at line 66 of file imstkMouseDeviceClient.h.

Here is the caller graph for this function:

Member Function Documentation

◆ New()

std::shared_ptr< MouseDeviceClient > imstk::MouseDeviceClient::New ( )
staticprotected

This object is only creatable through this method

Definition at line 12 of file imstkMouseDeviceClient.cpp.

Here is the call graph for this function:

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