SoTouchManager Class Reference

Class for managing events from touch screen input devices. More...

#include <Inventor/touch/SoTouchManager.h>

List of all members.

Public Member Functions

 SoTouchManager ()
virtual ~SoTouchManager ()
const SoTouchEventgetEventById (unsigned long id) const
const SoTouchEventgetEventbyIndex (int index) const
const std::vector< unsigned
long > & 
getAllFingerIds () const
int getFingerNumber () const
int getMaxSimultaneousFingers () const
void setMaxSimultaneousFingers (int fingers)
void setThreshold (float t)
float getThreshold () const
bool isTouchScreenAvailable ()
void setTouchScreenAvailability (bool available)
void removeRecognizer (SoGestureRecognizer *gesture)
void addRecognizer (SoGestureRecognizer *recognizer)
void addDefaultRecognizers ()
void removeDefaultRecognizers ()
const std::vector
< SoGestureRecognizer * > & 
getRecognizerList () const
const std::vector< const
SoEvent * > & 
getTouchDownEvent (unsigned long fingerId, const SbVec2f &fingerPos, const SbTime &time)
const std::vector< const
SoEvent * > & 
getTouchUpEvent (unsigned long fingerId, const SbVec2f &fingerPos, const SbTime &time)
const std::vector< const
SoEvent * > & 
getTouchMoveEvent (unsigned long fingerId, const SbVec2f &fingerPos, const SbTime &time)

Deprecated



SoDEPRECATED SoTouchManager (SoSceneManager *sM)
SoDEPRECATED SoTouchEventupdateAndProcessTouchEvent (unsigned long id, SoTouchEvent::State state, SbVec2f position, SbTime time)

Detailed Description

Class for managing events from touch screen input devices.

This is the base class for managing events from touch screen input devices. A touch manager has a SoTouchEvent table and a finger ids table which are updated each time a finger moves. A touch manager has a list of gesture recognizers that generate events when the gesture is recognized. By default, the list is empty and recognizers must be added to generate the corresponding events. The addDefaultRecognizers() method is provided for convenience.

Note that all registered gesture recognizers are active simultaneously. During a gesture event, events may generated for a different gesture. The application is responsible for enforcing a "one gesture at a time" policy if appropriate.

Note: Unlike mouse and keyboard events, the application must explicitly register a touch screen device (e.g. SoWinTouchScreen) in order to get touch events.

EXAMPLE

SEE ALSO

SoQtTouchScreen, SoWinTouchScreen, SoTouchEvent, SoGestureEvent, SoGestureRecognizer


Constructor & Destructor Documentation

SoTouchManager::SoTouchManager (  ) 
virtual SoTouchManager::~SoTouchManager (  )  [virtual]
SoDEPRECATED SoTouchManager::SoTouchManager ( SoSceneManager sM  ) 
Deprecated:

Deprecated since Open Inventor 9500
Scene manager argument is useless.

Member Function Documentation

void SoTouchManager::addDefaultRecognizers (  ) 

Add a default list of recognizers to the recognizer list.

The following recognizers are added:

void SoTouchManager::addRecognizer ( SoGestureRecognizer recognizer  ) 

Add a gesture recognizer to the recognizer list.

const std::vector<unsigned long>& SoTouchManager::getAllFingerIds (  )  const

Get the table with ids of all fingers touching the screen.

const SoTouchEvent* SoTouchManager::getEventById ( unsigned long  id  )  const

Get the corresponding event for the finger id, NULL if id is incorrect.

const SoTouchEvent* SoTouchManager::getEventbyIndex ( int  index  )  const

Get the corresponding event for the index, NULL if index is incorrect.

Use getFingerNumber() to know the number of fingers touching the screen.

int SoTouchManager::getFingerNumber (  )  const

Get the current number of fingers touching the screen.

int SoTouchManager::getMaxSimultaneousFingers (  )  const

Get the maximum number of simultaneous fingers supported by the device.

const std::vector<SoGestureRecognizer*>& SoTouchManager::getRecognizerList (  )  const

Returns the gesture recognizers list.

float SoTouchManager::getThreshold (  )  const

Get the detection threshold (in pixels).

const std::vector<const SoEvent*>& SoTouchManager::getTouchDownEvent ( unsigned long  fingerId,
const SbVec2f fingerPos,
const SbTime time 
)

Translate the given touch down event into a list of SoEvent.

This list may contain some recognized SoGestureEvent.

Returns:
this list.
Parameters:
fingerId id of the finger used.
fingerPos position of the finger in pixels.
time timestamp of the touch event in seconds.
const std::vector<const SoEvent*>& SoTouchManager::getTouchMoveEvent ( unsigned long  fingerId,
const SbVec2f fingerPos,
const SbTime time 
)

Translate the given touch move event into a list of SoEvent.

This list may contain some recognized SoGestureEvent.

Returns:
this list.
Parameters:
fingerId id of the finger used.
fingerPos position of the finger in pixels.
time timestamp of the touch event in seconds.
const std::vector<const SoEvent*>& SoTouchManager::getTouchUpEvent ( unsigned long  fingerId,
const SbVec2f fingerPos,
const SbTime time 
)

Translate the given touch up event into a list of SoEvent.

This list may contain some recognized SoGestureEvent.

Returns:
this list.
Parameters:
fingerId id of the finger used.
fingerPos position of the finger in pixels.
time timestamp of the touch event in seconds.
bool SoTouchManager::isTouchScreenAvailable (  ) 

Returns true if the touch screen device is available, false otherwise.

void SoTouchManager::removeDefaultRecognizers (  ) 

Remove the default recognizers from the recognizer list.

It removes all the recognizers previously added by addDefaultRecognizers().

void SoTouchManager::removeRecognizer ( SoGestureRecognizer gesture  ) 

Remove a gesture recognizer from the recognizer list.

void SoTouchManager::setMaxSimultaneousFingers ( int  fingers  ) 

Set the maximum number of simultaneous fingers supported by the device.

void SoTouchManager::setThreshold ( float  t  ) 

Set the detection threshold (0.0001 pixels by default).

This is the minimum difference between previous and current event positions to consider that the finger has moved.

void SoTouchManager::setTouchScreenAvailability ( bool  available  ) 

Set the touch screen availability.

SoDEPRECATED SoTouchEvent* SoTouchManager::updateAndProcessTouchEvent ( unsigned long  id,
SoTouchEvent::State  state,
SbVec2f  position,
SbTime  time 
)

Update finger's id of the event identified by id and process it with the scene manager.

Events are also analyzed by every recognizer in the recognizers list. Position is in pixels and time is in seconds.

Deprecated:

Deprecated since Open Inventor 9500
Use getTouchDownEvent, getTouchUpEvent or getTouchMoveEvent instead. Process the events by using SoRenderAreaCore instead.

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

Open Inventor Toolkit reference manual, generated on 12 Feb 2024
Copyright © Thermo Fisher Scientific All rights reserved.
http://www.openinventor.com/