path: root/doc
diff options
authorLorn Potter <>2012-02-27 14:50:04 +1000
committerQt by Nokia <>2012-02-27 06:53:23 +0100
commit6833af05c86253de1eca622017ec9224ba84643a (patch)
tree61ffb27902034f43acbe8dc4a986b6eafdd28634 /doc
parent081026022ab49d59df2724ef07feae7a21c86155 (diff)
add more information about gesture recognizer development.
Change-Id: Idf24c9227b69bfe05e83ec03f762c1fc055219b9 Reviewed-by: Lincoln Ramsay <>
Diffstat (limited to 'doc')
1 files changed, 39 insertions, 1 deletions
diff --git a/doc/src/qtsensorgestures-plugins.qdoc b/doc/src/qtsensorgestures-plugins.qdoc
index 6bc57947..43d9d63d 100644
--- a/doc/src/qtsensorgestures-plugins.qdoc
+++ b/doc/src/qtsensorgestures-plugins.qdoc
@@ -33,6 +33,14 @@
The QtSensorGestures recognizer plugins are the way to create your own
sensor gestures.
+Creating software to recognize motion gestures using sensors is a huge subject not covered here.
+The QSensorGesture API does not limit usage to any of the common classification methods of gesture
+recognition such as Hidden Markov Models, Neural Networks, Dynamic Time Warping, or even the
+ad-hoc heuristic recognizers of Qt's built-in sensor gesture recognizers. It's basically a
+signaling system for lower level gesture recogition methods and algorithms to communicate to the
+higher level applications.
\section1 Overview
@@ -44,19 +52,49 @@ sensor gestures.
\o Create an instance of that recognizer in the derived QSensorGesturePluginInterface class, and call
QSensorGestureManager::registerSensorGestureRecognizer(sRec); in your registerRecognizers()
function. QSensorGestureManager will retain ownership of the recognizer object.
+This is the class in which the gesture recognizer system should be implemented from.
\snippet snippets/sensorgestures/plugin.cpp Plugin
\section2 Recognizer Classes
If you are making sensorgestures available through the QtSensorGestures API, these are the
-sensor gesture classes to use.
+classes to subclass.
\annotatedlist sensorgestures_recognizer
\target Qt Sensor Gestures
\section3 Recognizer Plugins
+The Sensor Gesture Recognizers that come with Qt are made using an ad-hock heurustic approach.
+The user cannot define their own gestures, and must learn how to perform and accomodate the
+pre-defined gestures herein.
+A developer may use any method including computationally and training intensive well
+ known classifiers, to produce gesture recognizers. There are currently no classes in Qt for
+gesture training, nor ability for the user to define their own sensor based motion gestures.
+A procedure for writing ad-hock recognizers might include:
+ \o Obtain and gather output from the accelerometer through QAccelerometerReading of a gesture being performed.
+ \o Use various methods and constraints on the accelerometer data to recognize the various states:
+ \list i
+ \o Initial 'listening' state for a gesture
+ \o Start of a possible gesture, moving into a 'detecting' state
+ \o End of a possible gesture, moving into a 'recognizing' state
+ \o and finally, if it is recognized, the 'recognized' state, or if not recognized, move back to
+ the 'listening' state.
+ \endlist
+ \o Test procedure to make sure it is easy to perform, and will not
+ produce too many false positive recognitions. And if used with other gestures, collisions. Meaning
+that gestures performed get recognized as another gesture instead.
Here is a list of included plugins and their signals
For ShakeGestures plugin: