All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
MultiWidgets::InputGrabber Class Reference

Interface for objects that can grab hands and fingers. More...

#include <MultiWidgets/InputGrabber.hpp>

Valuable Attributes

Radiant::FlagsT
< MultiTouch::TrackedObjectType
grab-flags = MultiTouch::TYPE_ALL
 Returns which object types are grabbed. More...
 

Public Member Functions

bool checkGrabFlags (Radiant::FlagsT< MultiTouch::TrackedObjectType > flags) const
 Check the state of the given grab flags. More...
 
void clearGrabFlags (Radiant::FlagsT< MultiTouch::TrackedObjectType > flags)
 Disable grabbing for the selected object types. More...
 
bool grab (GrabManager &gm, MultiTouch::TrackedObject::Id id)
 Grabs the object with the given id. More...
 
unsigned grabbedCount () const
 
unsigned grabbedCount (MultiTouch::TrackedObjectType type) const
 
TrackedObjectIds grabbedObjects (MultiTouch::TrackedObjectType type) const
 
TrackedObjectIds grabbedObjects () const
 
Radiant::FlagsT
< MultiTouch::TrackedObjectType
grabFlags () const
 Returns which object types are grabbed. More...
 
bool grabsFingers () const
 Return true if the object grabs fingers.
 
bool grabsHands () const
 Return true if the object grabs hands.
 
bool grabsMarkers () const
 Return true if the object grabs markers.
 
bool grabsObjectType (MultiTouch::TrackedObjectType type) const
 Return true if the object grabs.
 
bool grabsPens () const
 Return true if the object grabs pens.
 
bool hasGrabbedObjects (Radiant::FlagsT< MultiTouch::TrackedObjectType > types) const
 Checks if any objects of the given type are grabbed. More...
 
Valuable::Nodehost ()
 Return a reference to the host object The host object owns this InputGrabber and is responsible for creating and deleting it. More...
 
 InputGrabber (Valuable::Node &host, InputGrabListener &listener)
 Constructs a new input grabber. More...
 
bool isGrabbed (MultiTouch::TrackedObject::Id id) const
 Return true if the given object id is grabbed.
 
void raiseGrabFlags (Radiant::FlagsT< MultiTouch::TrackedObjectType > flags)
 Enable grabbing for the selected object types. More...
 
void setGrabFlags (Radiant::FlagsT< MultiTouch::TrackedObjectType > flags)
 Sets which object types are grabbed. More...
 
void setGrabsFingers (bool v)
 Sets whether the grabber grabs fingers.
 
void setGrabsHands (bool v)
 Sets whether the grabber grabs hands.
 
void setGrabsMarkers (bool v)
 Sets whether the grabber grabs markers.
 
void setGrabsPens (bool v)
 Sets whether the grabber grabs hands.
 
bool transferGrab (GrabManager &gm, InputGrabber &to, MultiTouch::TrackedObject::Id id)
 Transfers a grabbed object from this grabber to another. More...
 
size_t transferGrabs (GrabManager &gm, InputGrabber &to, Radiant::FlagsT< MultiTouch::TrackedObjectType > types)
 Transfers all grabbed objects of a specific type from this grabber to another. More...
 
bool ungrab (GrabManager &gm, MultiTouch::TrackedObject::Id id)
 Releases the grab on the object by given id. More...
 
void ungrabAll (GrabManager &gm)
 Ungrabs all currently grabbed objects.
 
void update (GrabManager &gm, TrackedObjects &objs, bool includeGrabbed=false)
 Updates the list of grabbed objects. More...
 

Detailed Description

Interface for objects that can grab hands and fingers.

Constructor & Destructor Documentation

MultiWidgets::InputGrabber::InputGrabber ( Valuable::Node host,
InputGrabListener listener 
)

Constructs a new input grabber.

Parameters
hostHost that owns the grabber
listenerListener object that listens for grabs

Member Function Documentation

bool MultiWidgets::InputGrabber::checkGrabFlags ( Radiant::FlagsT< MultiTouch::TrackedObjectType flags) const

Check the state of the given grab flags.

Parameters
flagsflags to check
Returns
true if all given flags are set
void MultiWidgets::InputGrabber::clearGrabFlags ( Radiant::FlagsT< MultiTouch::TrackedObjectType flags)

Disable grabbing for the selected object types.

Parameters
flagsflags to clear
bool MultiWidgets::InputGrabber::grab ( GrabManager gm,
MultiTouch::TrackedObject::Id  id 
)

Grabs the object with the given id.

Returns
true if the grabbing succeeded.
unsigned MultiWidgets::InputGrabber::grabbedCount ( ) const
Returns
number of grabbed objects
unsigned MultiWidgets::InputGrabber::grabbedCount ( MultiTouch::TrackedObjectType  type) const
Returns
number of grabbed objects of the given type
TrackedObjectIds MultiWidgets::InputGrabber::grabbedObjects ( MultiTouch::TrackedObjectType  type) const
Returns
ids of all the grabbed objects of the given type
TrackedObjectIds MultiWidgets::InputGrabber::grabbedObjects ( ) const
Returns
ids of all grabbed objects
Radiant::FlagsT< MultiTouch::TrackedObjectType > MultiWidgets::InputGrabber::grabFlags ( ) const

Returns which object types are grabbed.

Returns
Current value of the grab-flags attribute
bool MultiWidgets::InputGrabber::hasGrabbedObjects ( Radiant::FlagsT< MultiTouch::TrackedObjectType types) const

Checks if any objects of the given type are grabbed.

Parameters
typesBitmask of types to check
Returns
true if any object of the specified types is grabbed, false otherwise
Valuable::Node& MultiWidgets::InputGrabber::host ( )

Return a reference to the host object The host object owns this InputGrabber and is responsible for creating and deleting it.

void MultiWidgets::InputGrabber::raiseGrabFlags ( Radiant::FlagsT< MultiTouch::TrackedObjectType flags)

Enable grabbing for the selected object types.

Parameters
flagsflags to set
void MultiWidgets::InputGrabber::setGrabFlags ( Radiant::FlagsT< MultiTouch::TrackedObjectType flags)

Sets which object types are grabbed.

Setter for attribute grab-flags.

Parameters
flagsbitmask that is usually created by bitwise OR of MultiTouch::TrackedObjectType flags.
flagsnew attribute value
bool MultiWidgets::InputGrabber::transferGrab ( GrabManager gm,
InputGrabber to,
MultiTouch::TrackedObject::Id  id 
)

Transfers a grabbed object from this grabber to another.

Parameters
gmGrabManager instance
toGrabber to transfer grab to
idId of the grabbed object to transfer
Returns
false if the object with the specified id is not grabbed or the transfer is not successful. Returns true on success.
size_t MultiWidgets::InputGrabber::transferGrabs ( GrabManager gm,
InputGrabber to,
Radiant::FlagsT< MultiTouch::TrackedObjectType types 
)

Transfers all grabbed objects of a specific type from this grabber to another.

Parameters
gmGrabManager instance
toGrabber to transfer grabs to
typesBitmask of types that specifies which object types to transfer
Returns
Number of objects that were successfully transferred
bool MultiWidgets::InputGrabber::ungrab ( GrabManager gm,
MultiTouch::TrackedObject::Id  id 
)

Releases the grab on the object by given id.

Returns
true if the ungrabbing succeeded
void MultiWidgets::InputGrabber::update ( GrabManager gm,
TrackedObjects objs,
bool  includeGrabbed = false 
)

Updates the list of grabbed objects.

This function should not be called without proper reason.

Parameters
gmGrabmanager instance
objsoutput variable that contains the objects that are currently tracked by this grabber
includeGrabbedspecifies if already grabbed objects should be included in the list of tracked objects