From 40746f60de4bd16bd7708605dba0809f0af06fa6 Mon Sep 17 00:00:00 2001
From: Raphael Grimm <ufdrv@student.kit.edu>
Date: Thu, 4 Dec 2014 16:58:49 +0100
Subject: [PATCH] added documentation with an image

---
 .../images/JoystickControlWidget_widget.png   | Bin 0 -> 2384 bytes
 .../JoystickControlWidget.h                   |  32 ++++++++++++++++++
 2 files changed, 32 insertions(+)
 create mode 100644 etc/doxygen/images/JoystickControlWidget_widget.png

diff --git a/etc/doxygen/images/JoystickControlWidget_widget.png b/etc/doxygen/images/JoystickControlWidget_widget.png
new file mode 100644
index 0000000000000000000000000000000000000000..b00adcb95edbf7ae27be3a00667bd092dfda856f
GIT binary patch
literal 2384
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
G!u%UJl_i@1

literal 0
HcmV?d00001

diff --git a/source/RobotAPI/gui_plugins/PlatformUnitPlugin/JoystickControlWidget.h b/source/RobotAPI/gui_plugins/PlatformUnitPlugin/JoystickControlWidget.h
index b11fb1732..877795cbf 100644
--- a/source/RobotAPI/gui_plugins/PlatformUnitPlugin/JoystickControlWidget.h
+++ b/source/RobotAPI/gui_plugins/PlatformUnitPlugin/JoystickControlWidget.h
@@ -79,6 +79,38 @@ namespace armarx
 
     /**
      * @brief Provides a simple joystick control.
+     *
+     * The widget emits signals when the control is moved.
+     *
+     * The signal
+     * @code{.cpp}
+     * positionChanged(QPointF)
+     * @endcode
+     * passes the nibble's current position.
+     * The position is in the unit circle.
+     * The x-axis is horizontal and increases to the right.
+     * The y-axis is vertical and increases upwards.
+     *
+     * The signal
+     * @code{.cpp}
+     * rotationChanged(double)
+     * @endcode
+     * passes the position vectors rotation in polar coordinates (-pi,pi].
+     * The up position is 0.
+     * The down position is pi.
+     * The Quadrants 1 and 4 have positive value.
+     *
+     * If the constructor is called with useQuadrant3and4==true the control is the whole unit circle.
+     * If the constructor is called with useQuadrant3and4==false the control is the unit circle's upper semicircle. (y>=0)
+     *
+     * Possible positions can be influenced with
+     * \code{.cpp}
+     * setSteps(int steps);
+     * \endcode
+     *      - steps>0 : only position vectors with a length from {n/steps | n in {0,1,...,steps} are valid. The nibble snaps to a valid position.
+     *      - steps<=0: all positions in the unit circle are valid.
+     *
+     * @image html JoystickControlWidget_widget.png "Left: A widget with 2 steps using the whole unit circle. Right: A widget using the unit circle's upper semi circle." width=300px
      */
     class JoystickControlWidget : public QWidget
     {
-- 
GitLab