From cd5cfc2662e5fdcb7b30ff4f4dfb9cd7e33e0312 Mon Sep 17 00:00:00 2001
From: Mirko Waechter <mirko.waechter@kit.edu>
Date: Fri, 16 Nov 2012 15:20:13 +0000
Subject: [PATCH] Fixed some documentation

git-svn-id: https://svn.sfb588.uni-karlsruhe.de/svn/HumanoidRobotAPI@20 e7ad446d-f7d8-486a-9efb-df2f5bbea5c6
---
 etc/doxygen/HumanoidRobotAPI.Doxyfile.in      |  20 +-
 etc/doxygen/layout/Doxygen.css                | 634 +++++++++++++++---
 .../MotionControlTest/MotionControlTestApp.h  |   2 +-
 .../motioncontrol/MotionControl.cpp           |  30 +-
 .../motioncontrol/MotionControl.h             |  19 +-
 5 files changed, 589 insertions(+), 116 deletions(-)

diff --git a/etc/doxygen/HumanoidRobotAPI.Doxyfile.in b/etc/doxygen/HumanoidRobotAPI.Doxyfile.in
index 6f90b1e3a..75cafd574 100644
--- a/etc/doxygen/HumanoidRobotAPI.Doxyfile.in
+++ b/etc/doxygen/HumanoidRobotAPI.Doxyfile.in
@@ -38,7 +38,7 @@ PROJECT_NUMBER         =
 # If a relative path is entered, it will be relative to the location
 # where doxygen was started. If left blank the current directory will be used.
 
-OUTPUT_DIRECTORY       = "@PROJECT_BUILD_DIR@"
+OUTPUT_DIRECTORY       = "@PROJECT_BINARY_DIR@"
 
 # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
 # 4096 sub-directories (in 2 levels) under the output directory of each output
@@ -515,8 +515,8 @@ WARN_LOGFILE           =
 # with spaces.
 
 INPUT                  = "@PROJECT_SOURCE_DIR@/source" \
-                         "@PROJECT_DOCUMENTATION_PAGES_DIR@" \
-                         "@PROJECT_BUILD_DIR@/propertydocs.dox"
+                         "@PROJECT_DOCUMENTATION_DIR@/doxygen" \
+                         "@PROJECT_BINARY_DIR@/propertydocs.dox"
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
@@ -545,7 +545,7 @@ RECURSIVE              = YES
 # excluded from the INPUT source files. This way you can easily exclude a
 # subdirectory from a directory tree whose root is specified with the INPUT tag.
 
-EXCLUDE                = 
+EXCLUDE                =
 
 # The EXCLUDE_SYMLINKS tag can be used select whether or not files or
 # directories that are symbolic links (a Unix filesystem feature) are excluded
@@ -569,8 +569,8 @@ EXCLUDE_PATTERNS       = moc* \
                          */cmake/* \
                          */config/* \
                          */test/* \
-			 
-                         
+
+
 
 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
 # (namespaces, classes, functions, etc.) that should be excluded from the
@@ -578,7 +578,7 @@ EXCLUDE_PATTERNS       = moc* \
 # wildcard * is used, a substring. Examples: ANamespace, AClass,
 # AClass::ANamespace, ANamespace::*Test
 
-EXCLUDE_SYMBOLS        = 
+EXCLUDE_SYMBOLS        =
 
 # The EXAMPLE_PATH tag can be used to specify one or more files or
 # directories that contain example code fragments that are included (see
@@ -751,6 +751,10 @@ HTML_FOOTER            = @PROJECT_DOCUMENTATION_LAYOUT_DIR_REL@/Footer.html
 
 HTML_STYLESHEET        = @PROJECT_DOCUMENTATION_LAYOUT_DIR_REL@/Doxygen.css
 
+# Customized layout
+
+LAYOUT_FILE = @PROJECT_DOCUMENTATION_LAYOUT_DIR_REL@/DoxygenLayout.xml
+
 # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
 # files or namespaces will be aligned in HTML using tables. If set to
 # NO a bullet list will be used.
@@ -1170,7 +1174,7 @@ TAGFILES               =
 # When a file name is specified after GENERATE_TAGFILE, doxygen will create
 # a tag file that is based on the input files it reads.
 
-GENERATE_TAGFILE       = "@PROJECT_NAME@.tag"
+GENERATE_TAGFILE       = "@PROJECT_DOCUMENTATION_HTML_OUTPUT_DIR@/@PROJECT_NAME@.tag"
 
 # If the ALLEXTERNALS tag is set to YES all external classes will be listed
 # in the class index. If set to NO only the inherited external classes
diff --git a/etc/doxygen/layout/Doxygen.css b/etc/doxygen/layout/Doxygen.css
index d932840e5..c7f9d7459 100755
--- a/etc/doxygen/layout/Doxygen.css
+++ b/etc/doxygen/layout/Doxygen.css
@@ -1,35 +1,81 @@
+/* The standard CSS for doxygen */
+
 body, table, div, p, dl {
 	font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
-	font-size: 14px;
+	font-size: 12px;
 }
 
 /* @group Heading Levels */
 
 h1 {
-	text-align: center;
 	font-size: 150%;
 }
 
+.title {
+	font-size: 150%;
+	font-weight: bold;
+	margin: 10px 2px;
+}
+
 h2 {
 	font-size: 120%;
 }
 
+h2 ~ *:not(h2) {
+    margin-left: 10px;
+}
+
 h3 {
 	font-size: 100%;
 }
 
+dt {
+	font-weight: bold;
+}
+
+div.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+}
+
+p.startli, p.startdd, p.starttd {
+	margin-top: 2px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+p.endtd {
+	margin-bottom: 2px;
+}
+
 /* @end */
 
 caption {
 	font-weight: bold;
 }
 
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
 div.qindex, div.navtab{
-	background-color: #e8eef2;
-	border: 1px solid #84b0c7;
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
 	text-align: center;
-	margin: 2px;
-	padding: 2px;
 }
 
 div.qindex, div.navpath {
@@ -44,13 +90,13 @@ div.navtab {
 /* @group Link Styling */
 
 a {
-	color: #153788;
+	color: #3D578C;
 	font-weight: normal;
 	text-decoration: none;
 }
 
 .contents a:visited {
-	color: #1b77c5;
+	color: #4665A2;
 }
 
 a:hover {
@@ -63,9 +109,9 @@ a.qindex {
 
 a.qindexHL {
 	font-weight: bold;
-	background-color: #6666cc;
+	background-color: #9CAFD4;
 	color: #ffffff;
-	border: 1px double #9295C2;
+	border: 1px double #869DCA;
 }
 
 .contents a.qindexHL:visited {
@@ -80,9 +126,11 @@ a.elRef {
 }
 
 a.code {
+	color: #4665A2;
 }
 
 a.codeRef {
+	color: #4665A2;
 }
 
 /* @end */
@@ -97,10 +145,14 @@ dl.el {
 }
 
 pre.fragment {
-	border: 1px solid #CCCCCC;
-	background-color: #f5f5f5;
+	border: 1px solid #C4CFE5;
+	background-color: #FBFCFD;
 	padding: 4px 6px;
 	margin: 4px 8px 4px 2px;
+	overflow: auto;
+	word-wrap: break-word;
+	font-size:  9pt;
+	line-height: 125%;
 }
 
 div.ah {
@@ -108,13 +160,22 @@ div.ah {
 	font-weight: bold;
 	color: #ffffff;
 	margin-bottom: 3px;
-	margin-top: 3px
+	margin-top: 3px;
+	padding: 0.2em;
+	border: solid thin #333;
+	border-radius: 0.5em;
+	-webkit-border-radius: .5em;
+	-moz-border-radius: .5em;
+	box-shadow: 2px 2px 3px #999;
+	-webkit-box-shadow: 2px 2px 3px #999;
+	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
 }
 
 div.groupHeader {
 	margin-left: 16px;
 	margin-top: 12px;
-	margin-bottom: 6px;
 	font-weight: bold;
 }
 
@@ -124,29 +185,34 @@ div.groupText {
 }
 
 body {
-	background: white;
+	background-color: white;
 	color: black;
-	margin-right: 20px;
-	margin-left: 20px;
+        margin: 0;
+}
+
+div.contents {
+	margin-top: 10px;
+	margin-left: 8px;
+	margin-right: 8px;
 }
 
 td.indexkey {
-	background-color: #e8eef2;
+	background-color: #EBEFF6;
 	font-weight: bold;
-	border: 1px solid #CCCCCC;
+	border: 1px solid #C4CFE5;
 	margin: 2px 0px 2px 0;
 	padding: 2px 10px;
 }
 
 td.indexvalue {
-	background-color: #e8eef2;
-	border: 1px solid #CCCCCC;
+	background-color: #EBEFF6;
+	border: 1px solid #C4CFE5;
 	padding: 2px 10px;
 	margin: 2px 0px;
 }
 
 tr.memlist {
-	background-color: #f0f0f0;
+	background-color: #EEF1F7;
 }
 
 p.formulaDsp {
@@ -161,6 +227,27 @@ img.formulaInl {
 	vertical-align: middle;
 }
 
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+address.footer {
+	text-align: right;
+	padding-right: 12px;
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
 /* @group Code Colorization */
 
 span.keyword {
@@ -209,6 +296,7 @@ span.vhdllogic {
 
 /* @end */
 
+/*
 .search {
 	color: #003399;
 	font-weight: bold;
@@ -225,6 +313,7 @@ input.search {
 	font-weight: normal;
 	background-color: #e8eef2;
 }
+*/
 
 td.tiny {
 	font-size: 75%;
@@ -233,26 +322,35 @@ td.tiny {
 .dirtab {
 	padding: 4px;
 	border-collapse: collapse;
-	border: 1px solid #84b0c7;
+	border: 1px solid #A3B4D7;
 }
 
 th.dirtab {
-	background: #e8eef2;
+	background: #EBEFF6;
 	font-weight: bold;
 }
 
 hr {
-	height: 0;
+	height: 0px;
 	border: none;
-	border-top: 1px solid #666;
+	border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+	height: 1px;
 }
 
 /* @group Member Descriptions */
 
+table.memberdecls {
+	border-spacing: 0px;
+	padding: 0px;
+}
+
 .mdescLeft, .mdescRight,
 .memItemLeft, .memItemRight,
 .memTemplItemLeft, .memTemplItemRight, .memTemplParams {
-	background-color: #FAFAFA;
+	background-color: #F9FAFC;
 	border: none;
 	margin: 4px;
 	padding: 1px 0 0 8px;
@@ -264,11 +362,20 @@ hr {
 }
 
 .memItemLeft, .memItemRight, .memTemplParams {
-	border-top: 1px solid #ccc;
+	border-top: 1px solid #C4CFE5;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+.memItemRight {
+	width: 100%;
 }
 
 .memTemplParams {
-	color: #606060;
+	color: #4665A2;
+        white-space: nowrap;
 }
 
 /* @end */
@@ -279,51 +386,92 @@ hr {
 
 .memtemplate {
 	font-size: 80%;
-	color: #606060;
+	color: #4665A2;
 	font-weight: normal;
-	margin-left: 3px;
+	margin-left: 9px;
 }
 
 .memnav {
-	background-color: #e8eef2;
-	border: 1px solid #84b0c7;
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
 	text-align: center;
 	margin: 2px;
 	margin-right: 15px;
 	padding: 2px;
 }
 
-.memitem {
-	padding: 0;
-}
-
-.memname {
-	white-space: nowrap;
-	font-weight: bold;
-}
-
-.memproto, .memdoc {
-	border: 1px solid #84b0c7;	
+.mempage {
+	width: 100%;
 }
 
-.memproto {
+.memitem {
 	padding: 0;
-	background-color: #d5e1e8;
-	font-weight: bold;
-	-webkit-border-top-left-radius: 8px;
-	-webkit-border-top-right-radius: 8px;
-	-moz-border-radius-topleft: 8px;
-	-moz-border-radius-topright: 8px;
+	margin-bottom: 10px;
+	margin-right: 5px;
 }
 
-.memdoc {
-	padding: 2px 5px;
-	background-color: #eef3f5;
-	border-top-width: 0;
-	-webkit-border-bottom-left-radius: 8px;
-	-webkit-border-bottom-right-radius: 8px;
-	-moz-border-radius-bottomleft: 8px;
-	-moz-border-radius-bottomright: 8px;
+.memname {
+        white-space: nowrap;
+        font-weight: bold;
+        margin-left: 6px;
+}
+
+.memproto, dl.reflist dt {
+        border-top: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;
+        padding: 6px 0px 6px 0px;
+        color: #253555;
+        font-weight: bold;
+        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+        /* opera specific markup */
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        border-top-right-radius: 8px;
+        border-top-left-radius: 8px;
+        /* firefox specific markup */
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 8px;
+        -moz-border-radius-topleft: 8px;
+        /* webkit specific markup */
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 8px;
+        -webkit-border-top-left-radius: 8px;
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+
+}
+
+.memdoc, dl.reflist dd {
+        border-bottom: 1px solid #A8B8D9;      
+        border-left: 1px solid #A8B8D9;      
+        border-right: 1px solid #A8B8D9; 
+        padding: 2px 5px;
+        background-color: #FBFCFD;
+        border-top-width: 0;
+        /* opera specific markup */
+        border-bottom-left-radius: 8px;
+        border-bottom-right-radius: 8px;
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        /* firefox specific markup */
+        -moz-border-radius-bottomleft: 8px;
+        -moz-border-radius-bottomright: 8px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7);
+        /* webkit specific markup */
+        -webkit-border-bottom-left-radius: 8px;
+        -webkit-border-bottom-right-radius: 8px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7));
+}
+
+dl.reflist dt {
+        padding: 5px;
+}
+
+dl.reflist dd {
+        margin: 0px 0px 10px 0px;
+        padding: 5px;
 }
 
 .paramkey {
@@ -342,6 +490,28 @@ hr {
 	font-style: normal;
 }
 
+.params, .retval, .exception, .tparams {
+        border-spacing: 6px 2px;
+}       
+
+.params .paramname, .retval .paramname {
+        font-weight: bold;
+        vertical-align: top;
+}
+        
+.params .paramtype {
+        font-style: italic;
+        vertical-align: top;
+}       
+        
+.params .paramdir {
+        font-family: "courier new",courier,monospace;
+        vertical-align: top;
+}
+
+
+
+
 /* @end */
 
 /* @group Directory (tree) */
@@ -350,7 +520,7 @@ hr {
 
 .ftvtree {
 	font-family: sans-serif;
-	margin: 0.5em;
+	margin: 0px;
 }
 
 /* these are for tree view when used as main index */
@@ -358,6 +528,7 @@ hr {
 .directory {
 	font-size: 9pt;
 	font-weight: bold;
+	margin: 5px;
 }
 
 .directory h3 {
@@ -435,42 +606,345 @@ proper pixel height of your image.
 
 /* @end */
 
+div.dynheader {
+        margin-top: 8px;
+}
+
 address {
 	font-style: normal;
-	font-size : 12px
-	color: #333;
+	color: #2A3D61;
+}
+
+table.doxtable {
+	border-collapse:collapse;
+}
+
+table.doxtable td, table.doxtable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+	text-align:left;
+}
+
+table.fieldtable {
+        width: 100%;
+        margin-bottom: 10px;
+        border: 1px solid #A8B8D9;
+        border-spacing: 0px;
+        -moz-border-radius: 4px;
+        -webkit-border-radius: 4px;
+        border-radius: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+        padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+        white-space: nowrap;
+        border-right: 1px solid #A8B8D9;
+        border-bottom: 1px solid #A8B8D9;
+        vertical-align: top;
+}
+
+.fieldtable td.fielddoc {
+        border-bottom: 1px solid #A8B8D9;
+        width: 100%;
+}
+
+.fieldtable tr:last-child td {
+        border-bottom: none;
+}
+
+.fieldtable th {
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+        font-size: 90%;
+        color: #253555;
+        padding-bottom: 4px;
+        padding-top: 5px;
+        text-align:left;
+        -moz-border-radius-topleft: 4px;
+        -moz-border-radius-topright: 4px;
+        -webkit-border-top-left-radius: 4px;
+        -webkit-border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        border-top-right-radius: 4px;
+        border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+	top: 0px;
+	left: 10px;
+	height: 36px;
+	background-image: url('tab_b.png');
+	z-index: 101;
+	overflow: hidden;
+	font-size: 13px;
+}
+
+.navpath ul
+{
+	font-size: 11px;
+	background-image:url('tab_b.png');
+	background-repeat:repeat-x;
+	height:30px;
+	line-height:30px;
+	color:#8AA0CC;
+	border:solid 1px #C2CDE4;
+	overflow:hidden;
+	margin:0px;
+	padding:0px;
+}
+
+.navpath li
+{
+	list-style-type:none;
+	float:left;
+	padding-left:10px;
+	padding-right:15px;
+	background-image:url('bc_s.png');
+	background-repeat:no-repeat;
+	background-position:right;
+	color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+	height:32px;
+	display:block;
+	text-decoration: none;
+	outline: none;
+}
+
+.navpath li.navelem a:hover
+{
+	color:#6884BD;
+}
+
+.navpath li.footer
+{
+        list-style-type:none;
+        float:right;
+        padding-left:10px;
+        padding-right:15px;
+        background-image:none;
+        background-repeat:no-repeat;
+        background-position:right;
+        color:#364D7C;
+        font-size: 8pt;
+}
+
+
+div.summary
+{
+	float: right;
+	font-size: 8pt;
+	padding-right: 5px;
+	width: 50%;
+	text-align: right;
+}       
+
+div.summary a
+{
+	white-space: nowrap;
+}
+
+div.ingroups
+{
+	margin-left: 5px;
+	font-size: 8pt;
+	padding-left: 5px;
+	width: 50%;
+	text-align: left;
+}
+
+div.ingroups a
+{
+	white-space: nowrap;
+}
+
+div.header
+{
+        background-image:url('nav_h.png');
+        background-repeat:repeat-x;
+	background-color: #F9FAFC;
+	margin:  0px;
+	border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+	padding: 5px 5px 5px 7px;
+}
+
+dl
+{
+        padding: 0 0 0 10px;
+}
+
+dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug
+{
+        border-left:4px solid;
+        padding: 0 0 0 6px;
+}
+
+dl.note
+{
+        border-color: #D0C000;
 }
 
-/* Override settings from tabs.css */
-DIV.tabs
+dl.warning, dl.attention
 {
-   background		: none;
-   background-color	: #EEEEFF;
-   border-width		: 1px;
-   border-style		: solid;
-   border-color		: #CCCCCC;
+        border-color: #FF0000;
 }
 
-DIV.tabs A
+dl.pre, dl.post, dl.invariant
 {
-   background       : none;
-   border-bottom    : none;
+        border-color: #00D000;
 }
 
-DIV.tabs A:hover
+dl.deprecated
 {
-   background-color: #DDDDFF;
+        border-color: #505050;
 }
 
-DIV.tabs SPAN
+dl.todo
 {
-   background       : none;
+        border-color: #00C0E0;
+}
+
+dl.test
+{
+        border-color: #3030E0;
+}
+
+dl.bug
+{
+        border-color: #C08050;
+}
+
+#projectlogo
+{
+	text-align: center;
+	vertical-align: bottom;
+	border-collapse: separate;
+}
+ 
+#projectlogo img
+{ 
+	border: 0px none;
+}
+ 
+#projectname
+{
+	font: 300% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 2px 0px;
+}
+    
+#projectbrief
+{
+	font: 120% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#projectnumber
+{
+	font: 50% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#titlearea
+{
+	padding: 0px;
+	margin: 0px;
+	width: 100%;
+	border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+        text-align: center;
+}
+
+.dotgraph
+{
+        text-align: center;
+}
+
+.mscgraph
+{
+        text-align: center;
+}
+
+.caption
+{
+	font-weight: bold;
+}
+
+div.zoom
+{
+	border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+        margin-bottom:50px;
+}
+
+dl.citelist dt {
+        color:#334975;
+        float:left;
+        font-weight:bold;
+        margin-right:10px;
+        padding:5px;
+}
+
+dl.citelist dd {
+        margin:2px 0;
+        padding:5px 0;
 }
 
-DIV.tabs LI.current SPAN
+@media print
 {
-   background-color: #6666cc;
-   color           : #FFFFFF;
+  #top { display: none; }
+  #side-nav { display: none; }
+  #nav-path { display: none; }
+  body { overflow:visible; }
+  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+  .summary { display: none; }
+  .memitem { page-break-inside: avoid; }
+  #doc-content
+  {
+    margin-left:0 !important;
+    height:auto !important;
+    width:auto !important;
+    overflow:inherit;
+    display:inline;
+  }
+  pre.fragment
+  {
+    overflow: visible;
+    text-wrap: unrestricted;
+    white-space: -moz-pre-wrap; /* Moz */
+    white-space: -pre-wrap; /* Opera 4-6 */
+    white-space: -o-pre-wrap; /* Opera 7 */
+    white-space: pre-wrap; /* CSS3  */
+    word-wrap: break-word; /* IE 5.5+ */
+  }
 }
 
-/* @end of Override settings from tabs.css */
diff --git a/source/HumanoidRobotAPI/applications/MotionControlTest/MotionControlTestApp.h b/source/HumanoidRobotAPI/applications/MotionControlTest/MotionControlTestApp.h
index 48e275d2f..d8f4cd261 100755
--- a/source/HumanoidRobotAPI/applications/MotionControlTest/MotionControlTestApp.h
+++ b/source/HumanoidRobotAPI/applications/MotionControlTest/MotionControlTestApp.h
@@ -32,7 +32,7 @@ namespace armarx
 	{
         void setup(const ManagedIceObjectRegistryInterfacePtr& registry, Ice::PropertiesPtr properties)
         {
-            registry->addObject( Component::create<MoveHelpers::MotionControl>(properties) );
+            registry->addObject( Component::create<MoveHelpers::MotionControlHandler>(properties) );
         };
     };
 };
diff --git a/source/HumanoidRobotAPI/motioncontrol/MotionControl.cpp b/source/HumanoidRobotAPI/motioncontrol/MotionControl.cpp
index d652e3e7c..27e192fe3 100644
--- a/source/HumanoidRobotAPI/motioncontrol/MotionControl.cpp
+++ b/source/HumanoidRobotAPI/motioncontrol/MotionControl.cpp
@@ -15,13 +15,13 @@
 using namespace armarx;
 using namespace armarx::MoveHelpers;
 
-MotionControl::MotionControl()
+MotionControlHandler::MotionControlHandler()
 {
 }
 
 
 
-void MotionControl::onInitRemoteStateHandler()
+void MotionControlHandler::onInitRemoteStateHandler()
 {
     //addState<MoveJoints>("MoveJoints");
     //addState<MotionControlTestState>("MotionControlTestState");
@@ -30,7 +30,7 @@ void MotionControl::onInitRemoteStateHandler()
 
 
 
-void MotionControl::onConnectRemoteStateHandler()
+void MotionControlHandler::onConnectRemoteStateHandler()
 {
 }
 
@@ -40,9 +40,7 @@ void MoveJoints::defineParameters()
 {
     context = getContext<RobotStatechartContext>();
 
-    std::string configFilepathAbsolute;
-    ArmarXDataPath::getAbsolutePath("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml", configFilepathAbsolute);
-    setConfigFile(configFilepathAbsolute);
+    setConfigFile("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml");
 
     addToInputAsList("jointNames", VariantType::String, false);
     addToInputAsList("targetJointValues", VariantType::Float, false);
@@ -137,9 +135,7 @@ void MoveJointsVelocityControl::defineParameters()
 {
     context = getContext<RobotStatechartContext>();
 
-    std::string configFilepathAbsolute;
-    ArmarXDataPath::getAbsolutePath("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml", configFilepathAbsolute);
-    setConfigFile(configFilepathAbsolute);
+    setConfigFile("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml");
 
     addToInputAsList("jointNames", VariantType::String, false);
     addToInputAsList("targetJointVelocities", VariantType::Float, false);
@@ -229,9 +225,7 @@ void MoveTCPPoseIK::defineParameters()
 {
     context = getContext<RobotStatechartContext>();
 
-    std::string configFilepathAbsolute;
-    ArmarXDataPath::getAbsolutePath("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml", configFilepathAbsolute);
-    setConfigFile(configFilepathAbsolute);
+    setConfigFile("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml");
 
     addToInput("kinematicChainName", VariantType::String, false);
     addToInput("targetTCPPosition", VariantType::LinkedPosition, false);
@@ -285,9 +279,7 @@ void MoveTCPTrajectory::defineParameters()
 {
     context = getContext<RobotStatechartContext>();
 
-    std::string configFilepathAbsolute;
-    ArmarXDataPath::getAbsolutePath("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml", configFilepathAbsolute);
-    setConfigFile(configFilepathAbsolute);
+    setConfigFile("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml");
 
     addToInput("kinematicChainName", VariantType::String, false);
     addToInputAsList("targetTCPPositions", VariantType::LinkedPosition, false);
@@ -583,9 +575,7 @@ void ValidateJointAngleConfiguration::onEnter()
 
 void MotionControlTestState::defineParameters()
 {
-    std::string configFilepathAbsolute;
-    ArmarXDataPath::getAbsolutePath("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml", configFilepathAbsolute);
-    setConfigFile(configFilepathAbsolute);
+    setConfigFile("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml");
 
     addToInputAsList("jointNames", VariantType::String, false);
     addToInputAsList("targetJointValues", VariantType::Float, false);
@@ -617,9 +607,7 @@ void MotionControlTestState::defineSubstates()
 
 void MotionControlTestStateIK::defineParameters()
 {
-    std::string configFilepathAbsolute;
-    ArmarXDataPath::getAbsolutePath("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml", configFilepathAbsolute);
-    setConfigFile(configFilepathAbsolute);
+    setConfigFile("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml");
 
     addToInput("kinematicChainName", VariantType::String, false);
     //addToInput("targetTCPPosition", VariantType::LinkedPosition, false);
diff --git a/source/HumanoidRobotAPI/motioncontrol/MotionControl.h b/source/HumanoidRobotAPI/motioncontrol/MotionControl.h
index 79f65bd58..850621e83 100644
--- a/source/HumanoidRobotAPI/motioncontrol/MotionControl.h
+++ b/source/HumanoidRobotAPI/motioncontrol/MotionControl.h
@@ -21,7 +21,7 @@ namespace MoveHelpers
 
     \section HowTo How to use the states
     To use one of the Move Helpers state, you have to make it a substate of your own state (see Statechart). To set its parameters,
-    you can either modify the configuration file (HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml) or map them from you own state to it.
+    you can either modify the configuration file (${ArmarX_Home}/data/HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml) or map them from you own state to it.
 
     Two kinds of kinematic entities are controlled using the MoveHelpers: single joints and kinematic chains. A kinematic chain is a list of joints
     that usually belong to a part of the robot, e.g. an arm. The joints and the kinematic chains are all defined in the xml files that describe the
@@ -80,16 +80,17 @@ namespace MoveHelpers
 */
 
     /**
-    *  \class MotionControl
+    *  \class MotionControlHandler
     *  \ingroup MoveHelpers
-    *  MotionControl contains convenience functions that allow to move parts of the robot,
+    *  MotionControlHandler is the remote state interface for the MotionControl-
+    *  States. It contains convenience states that allow to move parts of the robot,
     *  i.e. direct and inverse kinematics for arbitrary kinematic chains and predefined
     *  parts like the arms.
     */
-    class MotionControl : public RemoteStateHandler<RobotStatechartContext>
+    class MotionControlHandler : public RemoteStateHandler<RobotStatechartContext>
     {
     public:
-        MotionControl();
+        MotionControlHandler();
         void onInitRemoteStateHandler();
         void onConnectRemoteStateHandler();
         std::string getDefaultName() const { return "MotionControl"; }
@@ -120,6 +121,7 @@ namespace MoveHelpers
 
 
     /**
+    *  \ingroup MoveHelpers
     *   Move the joints of a kinematic chain to the desired values.
     *   \param jointNames the names of the joints to be moved
     *   \param targetJointValues the desired joint values
@@ -139,6 +141,7 @@ namespace MoveHelpers
 
 
     /**
+    *  \ingroup MoveHelpers
     *   Move the joints of a kinematic chain to the desired values using velocity control.
     *   \param jointNames the names of the joints to be moved
     *   \param targetJointVelocities the desired joint velocities
@@ -157,6 +160,7 @@ namespace MoveHelpers
 
 
     /**
+    *  \ingroup MoveHelpers
     *   Move the TCP to a desired pose.
     *   \param kinematicChainName the name of the kinematic chain that is used
     *   \param targetTCPPosition the target position for the TCP
@@ -181,6 +185,7 @@ namespace MoveHelpers
     DEFINEEVENT(EvLastPointNotYetReached)
 
     /**
+    *  \ingroup MoveHelpers
     *   Move the TCP along a trajectory of poses.
     *   \param kinematicChainName the name of the kinematic chain that is used
     *   \param targetTCPPositions the list of target positions for the TCP
@@ -204,7 +209,9 @@ namespace MoveHelpers
 
 
     /**
-    *   Stop all motion of the robot.
+    *  \ingroup MoveHelpers
+    * Stop all motion of the robot. It sets all velocities to 0. No Smooth stopping
+    * is implemented here.
     */
     struct StopRobot : StateTemplate<StopRobot>
     {
-- 
GitLab