qtmobility/src/sensors/qrotationsensor.cpp
changeset 8 71781823f776
parent 5 453da2cfceef
child 11 06b8e2af4411
--- a/qtmobility/src/sensors/qrotationsensor.cpp	Fri May 14 16:41:33 2010 +0300
+++ b/qtmobility/src/sensors/qrotationsensor.cpp	Thu May 27 13:42:11 2010 +0300
@@ -50,43 +50,51 @@
     \class QRotationReading
     \ingroup sensors_reading
 
-    \preliminary
     \brief The QRotationReading class represents one reading from the
            rotation sensor.
 
     \section2 QRotationReading Units
 
     The rotation reading contains 3 angles, measured in degrees that define
-    the orientation of the device in three-dimensional space. The rotations
-    should not be confused with relative rotations such as yaw and pitch.
-    These rotations are of the devices axes relative to the external
-    reference points that define the reference co-ordinate axes: X, Y and Z
-    in the diagram.
-    
+    the orientation of the device in three-dimensional space. These angles
+    are similar to yaw, pitch and roll but are defined using only right hand
+    rotation with axes as defined by the right hand cartesian coordinate system.
+
+    \image sensors-rotation.jpg
+
     The three angles are applied to the device in the following order.
 
     \list
-    \o Right-handed rotation z (-180, 180]. Starting from the x-axis and
-     incrementing in the direction of the y-axis.
+    \o Right-handed rotation z (-180, 180]. Starting from the y-axis and
+     incrementing in the counter-clockwise direction.
     \o Right-handed rotation x [-90, 90]. Starting from the new
      (once-rotated) y-axis and incrementing towards the z-axis.
     \o Right-handed rotation y (-180, 180]. Starting from the new
      (twice-rotated) z-axis and incrementing towards the x-axis.
     \endlist
 
-    \image Rotation_angles.png Visual representation of the rotation angles.
+    Here is a visualisation showing the order in which angles are applied.
+
+    \image sensors-rotation-anim.gif
 
     The 0 point for the z angle is defined as a fixed, external entity and
     is device-specific. While magnetic North is typically used as this
     reference point it may not be. Do not attempt to compare values
     for the z angle between devices or even on the same device if it has
     moved a significant distance.
-    
+
     If the device cannot detect a fixed, external entity the z angle will
     always be 0 and the QRotationSensor::hasZ property will be set to false.
 
     The 0 point for the x and y angles are defined as when the x and y axes
-    of the device are oriented towards the horizon.
+    of the device are oriented towards the horizon. Here is an example of
+    how the x value will change with device movement.
+
+    \image sensors-rotation2.jpg
+
+    Here is an example of how the y value will change with device movement.
+
+    \image sensors-rotation3.jpg
 
     Note that when x is 90 or -90, values for z and y achieve rotation around
     the same axis (due to the order of operations). In this case the y
@@ -162,7 +170,6 @@
     \class QRotationFilter
     \ingroup sensors_filter
 
-    \preliminary
     \brief The QRotationFilter class is a convenience wrapper around QSensorFilter.
 
     The only difference is that the filter() method features a pointer to QRotationReading
@@ -183,7 +190,6 @@
     \class QRotationSensor
     \ingroup sensors_type
 
-    \preliminary
     \brief The QRotationSensor class is a convenience wrapper around QSensor.
 
     The only behavioural difference is that this class sets the type properly.