summaryrefslogtreecommitdiffstats
path: root/examples/custominput/doc/src/custominput.qdoc
diff options
context:
space:
mode:
authorKeränen Pasi <pasi.keranen@digia.com>2013-11-28 23:44:22 +0200
committerPasi Keränen <pasi.keranen@digia.com>2013-11-29 14:01:11 +0200
commit91c9f6791af049b873b7c60a88aa226eaec70c18 (patch)
tree2045e8d4dffe2d79cbc5db98b4a295924cc55540 /examples/custominput/doc/src/custominput.qdoc
parenta7273a8f86d8f67afb9b9693b0a0be0ae030c8a6 (diff)
InputHandler C++ Example Documentation.
Task-id: QTRD-2634 Change-Id: I486f210ed9c87079d6bc93ec10ab1f1831254d3f Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'examples/custominput/doc/src/custominput.qdoc')
-rw-r--r--examples/custominput/doc/src/custominput.qdoc44
1 files changed, 42 insertions, 2 deletions
diff --git a/examples/custominput/doc/src/custominput.qdoc b/examples/custominput/doc/src/custominput.qdoc
index 69333d96..9bb5607f 100644
--- a/examples/custominput/doc/src/custominput.qdoc
+++ b/examples/custominput/doc/src/custominput.qdoc
@@ -22,9 +22,49 @@
\ingroup qtdatavisualization_examples
\brief Implementing custom input handler in a widget application.
- TBD...
+ The Custom Input example shows how to customize the 3D graph controls in a widget application using a custom graph input handler to capture and process mouse events.
+ The code in this example shows also how the camera is controlled by using QPropertyAnimation to animate the camera and item selection
+ is done on mouseover rather than clicking any mouse buttons. Also the code shows how to implement similar zoom with mouse wheel functionality as the default
+ input handler implements.
\image custominput-example.png
- TBD...
+ \section1 Replacing default input handling
+
+ The default input handling mechanism is replaced by setting the active input handler of \l Q3DScatter
+ to \c CustomInputHandler that implements the custom behavior.
+
+ \snippet ../examples/custominput/scatterdatamodifier.cpp 0
+
+ \section1 Implementing custom selection handling
+
+ The on mouseover selection handling is implemented in the \c CustomInputHandler that captures the mouse events.
+ It then stores the last known coordinates to the \l QAbstract3DInputHandler::inputPosition property.
+
+ \snippet ../examples/custominput/custominputhandler.cpp 0
+
+ As the selection is one shot, and is cleared each time a 3D frame is rendered, a timer is setup to retrigger selection so that the selection moves to the item
+ currently under the mouse cursor as the camera animates around the graph even when the mouse cursor is not moving.
+
+ \snippet ../examples/custominput/scatterdatamodifier.cpp 1
+
+ \section1 Implementing custom zoom handling
+
+ The camera has a zoom factor that represents amount of zoom in percentages. In this example the zoom range is limited
+ between 10% and 500%. This range is then divided to four subranges where \c angleDelta is scaled to different amount of zoom change
+ based on the current subrange.
+
+ \snippet ../examples/custominput/custominputhandler.cpp 1
+
+ \section1 Implementing custom camera handling
+
+ The camera is animated to constantly rotate around the graph with two animations. The rotation around the graph is done with
+ a simple QPropertyAnimation that just increments during 20 seconds from 0 degrees to 360 degrees and sets the \l Q3DCamera::xRotation property.
+
+ \snippet ../examples/custominput/scatterdatamodifier.cpp 2
+
+ The camera movement up and down is implemented with a QSequentialAnimationGroup that varies the \l Q3DCamera::yRotation property of the camera
+ from 5 degrees to 45 degrees and back with in and out easing.
+
+ \snippet ../examples/custominput/scatterdatamodifier.cpp 3
*/