opensurgsim
Public Member Functions | Friends | List of all members
SurgSim::Devices::LeapDevice Class Reference

A class implementing the communication with one hand tracked by Leap Motion camera. More...

#include <LeapDevice.h>

Inheritance diagram for SurgSim::Devices::LeapDevice:
SurgSim::Input::CommonDevice SurgSim::Input::DeviceInterface SurgSim::Framework::Accessible SurgSim::Framework::FactoryBase1< DeviceInterface, std::string >

Public Member Functions

 LeapDevice (const std::string &name)
 Constructor. More...
 
 SURGSIM_CLASSNAME (SurgSim::Devices::LeapDevice)
 
virtual ~LeapDevice ()
 Destructor.
 
void setHandType (HandType type)
 Set the type of hand. More...
 
HandType getHandType () const
 Get the type of hand. More...
 
void setUseHmdTrackingMode (bool useHmdTrackingMode)
 Set the hand tracking mode to HMD This is a global setting that optimizes hand tracking based on the Leap camera placement. More...
 
bool isUsingHmdTrackingMode () const
 Is Using HMD Tracking Mode. More...
 
void setProvideImages (bool provideImages)
 Set if the device should provide the stereo infrared images. More...
 
bool isProvidingImages () const
 Get if the device should provide the stereo infrared images. More...
 
bool initialize () override
 Fully initialize the device. More...
 
bool isInitialized () const override
 
- Public Member Functions inherited from SurgSim::Input::CommonDevice
 CommonDevice (const std::string &name)
 Constructor. More...
 
 CommonDevice (const std::string &name, const DataStructures::DataGroup &inputData)
 Constructor. More...
 
 CommonDevice (const std::string &name, DataStructures::DataGroup &&inputData)
 Constructor. More...
 
virtual ~CommonDevice ()
 Destructor.
 
std::string getName () const override
 Return a (hopefully unique) device name.
 
std::string getClassName () const override
 The class name for this class. More...
 
void setNameForCallback (const std::string &name)
 Set the name used for calling the input consumers and output producer. More...
 
std::string getNameForCallback () const
 Get the name used for calling the input consumers and output producer. More...
 
bool addInputConsumer (std::shared_ptr< InputConsumerInterface > inputConsumer) override
 Adds an input consumer that will be notified when the application input state is updated. More...
 
bool removeInputConsumer (std::shared_ptr< InputConsumerInterface > inputConsumer) override
 Removes an input consumer previously added via addInputConsumer. More...
 
void clearInputConsumers () override
 Removes all InputConsumers.
 
bool setOutputProducer (std::shared_ptr< OutputProducerInterface > outputProducer) override
 Sets an output producer that will be asked for application output state when the device needs it. More...
 
bool removeOutputProducer (std::shared_ptr< OutputProducerInterface > outputProducer) override
 Removes an output producer previously added via setOutputProducer. More...
 
bool hasOutputProducer () override
 Query if this object has output producer. More...
 
void clearOutputProducer () override
 Removes any OutputProducer.
 
- Public Member Functions inherited from SurgSim::Input::DeviceInterface
virtual ~DeviceInterface ()
 Virtual destructor (empty).
 
- Public Member Functions inherited from SurgSim::Framework::Accessible
 Accessible ()
 Default Constructor.
 
 ~Accessible ()
 Destructor.
 
template<class T >
getValue (const std::string &name) const
 Retrieves the value with the name by executing the getter if it is found and tries to convert it to the given type. More...
 
boost::any getValue (const std::string &name) const
 Retrieves the value with the name by executing the getter if it is found. More...
 
template<class T >
bool getValue (const std::string &name, T *value) const
 Retrieves the value with the name by executing the getter if it is found, and converts it to the type of the output parameter. More...
 
void setValue (const std::string &name, const boost::any &value)
 Sets a value of a property that has setter. More...
 
bool isReadable (const std::string &name) const
 Check whether a property is readable. More...
 
bool isWriteable (const std::string &name) const
 Check whether a property is writable. More...
 
void setGetter (const std::string &name, GetterType func)
 Sets a getter for a given property. More...
 
void setSetter (const std::string &name, SetterType func)
 Sets a setter for a given property. More...
 
void setAccessors (const std::string &name, GetterType getter, SetterType setter)
 Sets the accessors getter and setter in one function. More...
 
void removeAccessors (const std::string &name)
 Removes all the accessors (getter and setter) for a given property. More...
 
void forwardProperty (const std::string &name, const Accessible &target, const std::string &targetProperty)
 Adds a property with the given name that uses the targets accessors, in effect forwarding the value to the target. More...
 
void setSerializable (const std::string &name, EncoderType encoder, DecoderType decoder)
 Sets the functions used to convert data from and to a YAML::Node. More...
 
void setDecoder (const std::string &name, DecoderType decoder)
 Sets the functions used to convert data from a YAML::Node. More...
 
YAML::Node encode () const
 Encode this Accessible to a YAML::Node. More...
 
void decode (const YAML::Node &node, const std::vector< std::string > &ignoredProperties=std::vector< std::string >())
 Decode this Accessible from a YAML::Node, will throw an exception if the data type cannot be converted. More...
 
std::vector< std::string > getProperties ()
 
template<>
boost::any getValue (const std::string &name) const
 

Friends

class LeapScaffold
 

Additional Inherited Members

- Public Types inherited from SurgSim::Framework::Accessible
typedef std::function< boost::any(void)> GetterType
 
typedef std::function< void(boost::any)> SetterType
 
typedef std::function< YAML::Node(void)> EncoderType
 
typedef std::function< void(const YAML::Node *)> DecoderType
 
- Public Types inherited from SurgSim::Framework::FactoryBase1< DeviceInterface, std::string >
typedef ObjectFactory1< DeviceInterface, std::string > FactoryType
 
- Static Public Member Functions inherited from SurgSim::Framework::FactoryBase1< DeviceInterface, std::string >
static FactoryTypegetFactory ()
 
- Protected Member Functions inherited from SurgSim::Input::CommonDevice
virtual void pushInput ()
 Push application input to consumers.
 
virtual bool pullOutput ()
 Pull application output from a producer.
 
DataStructures::DataGroupgetInputData ()
 Getter for the input data DataGroup. More...
 
const DataStructures::DataGroupgetOutputData () const
 Getter for the output data DataGroup. More...
 

Detailed Description

A class implementing the communication with one hand tracked by Leap Motion camera.

Application input provided by the device:
type name
image "left" Left infrared image, each pixel value is between 0 and 1.
image "right" Right infrared image, each pixel value is between 0 and 1.
image "left_distortion" Left distortion calibration map
image "right_distortion" Right distortion calibration map
pose "pose" Hand pose
pose "ThumbProximal" Pose of thumb proximal joint
pose "ThumbIntermediate" Pose of thumb intermediate joint
pose "ThumbDistal" Pose of thumb distal joint
pose "IndexFingerProximal" Pose of index finger proximal joint
pose "IndexFingerIntermediate" Pose of index finger intermediate joint
pose "IndexFingerDistal" Pose of index finger distal joint
pose "MiddleFingerProximal" Pose of middle finger proximal joint
pose "MiddleFingerIntermediate" Pose of middle finger intermediate joint
pose "MiddleFingerDistal" Pose of middle finger distal joint
pose "RingFingerProximal" Pose of ring finger proximal joint
pose "RingFingerIntermediate" Pose of ring finger intermediate joint
pose "RingFingerDistal" Pose of ring finger distal joint
pose "SmallFingerProximal" Pose of small finger proximal joint
pose "SmallFingerIntermediate" Pose of small finger intermediate joint
pose "SmallFingerDistal" Pose of small finger distal joint
Application output used by the device: none.
See also
SurgSim::Devices::LeapScaffold

Constructor & Destructor Documentation

§ LeapDevice()

SurgSim::Devices::LeapDevice::LeapDevice ( const std::string &  name)
explicit

Constructor.

Parameters
nameA unique name for the device that will be used by the application.

Member Function Documentation

§ getHandType()

HandType SurgSim::Devices::LeapDevice::getHandType ( ) const

Get the type of hand.

Returns
The hand type, either HANDTYPE_LEFT or HANDTYPE_RIGHT

§ initialize()

bool SurgSim::Devices::LeapDevice::initialize ( )
overridevirtual

Fully initialize the device.

When the manager object creates the device, the internal state of the device usually isn't fully initialized yet. This method performs any needed initialization.

Implements SurgSim::Input::DeviceInterface.

§ isInitialized()

bool SurgSim::Devices::LeapDevice::isInitialized ( ) const
overridevirtual
Returns
true if the device has been initialized and has not yet been finalized.

Implements SurgSim::Input::DeviceInterface.

§ isProvidingImages()

bool SurgSim::Devices::LeapDevice::isProvidingImages ( ) const

Get if the device should provide the stereo infrared images.

Returns
True if providing images

§ isUsingHmdTrackingMode()

bool SurgSim::Devices::LeapDevice::isUsingHmdTrackingMode ( ) const

Is Using HMD Tracking Mode.

Returns
True is HMD Tracking Mode is on

§ setHandType()

void SurgSim::Devices::LeapDevice::setHandType ( HandType  type)

Set the type of hand.

Parameters
typeThe hand type, either HANDTYPE_LEFT or HANDTYPE_RIGHT

§ setProvideImages()

void SurgSim::Devices::LeapDevice::setProvideImages ( bool  provideImages)

Set if the device should provide the stereo infrared images.

Parameters
provideImagesTrue if providing images

§ setUseHmdTrackingMode()

void SurgSim::Devices::LeapDevice::setUseHmdTrackingMode ( bool  useHmdTrackingMode)

Set the hand tracking mode to HMD This is a global setting that optimizes hand tracking based on the Leap camera placement.

The default is desktop mode, where the camera is placed face up on a desktop. Use Hmd mode when the camera is attached to the front of a head mounted display.

Parameters
useHmdTrackingModeTrue if Hmd tracking mode is to be used

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