From b57cb3efa6bf58593c81d909cf1f3334a54c1449 Mon Sep 17 00:00:00 2001
From: Valenza Florian <fvalenza@laas.fr>
Date: Fri, 9 Sep 2016 11:28:27 +0200
Subject: [PATCH] [DOC] Reworked layout and pages

---
 .../creating-models.dox}                      | 37 ++++++++++----
 .../{crtp.hh => Chapters/crtp.dox}            |  4 +-
 .../Chapters/data-driven-algorithms.dox       | 27 ++++++++++
 .../Chapters/dynamic-algorithms.dox           | 27 ++++++++++
 doc/additionalDoc/Chapters/fcl-geometries.dox | 27 ++++++++++
 .../Chapters/modeling-rigid-body.dox          | 27 ++++++++++
 .../Chapters/python-bindings.dox              | 27 ++++++++++
 .../Chapters/spatial-algebra.dox              | 27 ++++++++++
 doc/additionalDoc/GettingStarted/install.dox  | 27 ++++++++++
 doc/additionalDoc/GettingStarted/intro.dox    | 27 ++++++++++
 .../GettingStarted/simple-humanoid.dox        | 27 ++++++++++
 .../urdf-loading-displaying.dox               | 27 ++++++++++
 doc/additionalDoc/users.dox                   | 28 +++++++++++
 doc/layout.xml                                |  2 +-
 doc/treeview.dox                              | 49 ++++++++++++++-----
 15 files changed, 364 insertions(+), 26 deletions(-)
 rename doc/additionalDoc/{loading.hh => Chapters/creating-models.dox} (60%)
 rename doc/additionalDoc/{crtp.hh => Chapters/crtp.dox} (90%)
 create mode 100644 doc/additionalDoc/Chapters/data-driven-algorithms.dox
 create mode 100644 doc/additionalDoc/Chapters/dynamic-algorithms.dox
 create mode 100644 doc/additionalDoc/Chapters/fcl-geometries.dox
 create mode 100644 doc/additionalDoc/Chapters/modeling-rigid-body.dox
 create mode 100644 doc/additionalDoc/Chapters/python-bindings.dox
 create mode 100644 doc/additionalDoc/Chapters/spatial-algebra.dox
 create mode 100644 doc/additionalDoc/GettingStarted/install.dox
 create mode 100644 doc/additionalDoc/GettingStarted/intro.dox
 create mode 100644 doc/additionalDoc/GettingStarted/simple-humanoid.dox
 create mode 100644 doc/additionalDoc/GettingStarted/urdf-loading-displaying.dox
 create mode 100644 doc/additionalDoc/users.dox

diff --git a/doc/additionalDoc/loading.hh b/doc/additionalDoc/Chapters/creating-models.dox
similarity index 60%
rename from doc/additionalDoc/loading.hh
rename to doc/additionalDoc/Chapters/creating-models.dox
index 0e27d7668..5b95a979a 100644
--- a/doc/additionalDoc/loading.hh
+++ b/doc/additionalDoc/Chapters/creating-models.dox
@@ -1,6 +1,6 @@
 //
 // Copyright (c) 2016 CNRS
-// Author: Florent Lamiraux
+// Author: Florent Lamiraux, Justin Carpentier, Florian Valenza
 //
 // This file is part of Pinocchio
 // Pinocchio is free software: you can redistribute it
@@ -16,18 +16,22 @@
 // Pinocchio If not, see
 // <http://www.gnu.org/licenses/>.
 
-/** \page pinocchio_page_loading Loading a model
+namespace pinocchio
+{
+  
+/** \page Chapters_CreatingModels Creating models
 
-\section pinocchio_page_loading_introduction Introduction
+Here you can find the differents ways to create a model ( simple models, python/lua/urdf loading, Joint after Joint)
 
-The most convenient way to build a robot model consists in parsing a description
-file.
+\section Chapters_CreatingModels_introduction Introduction
 
-\section pinocchio_page_loading_supported_formats Supported formats
+In Pinocchio you can create Models in many ways. We have built-in parsers for different kind of format ( urdf, python, Lua)
+but you can also create a Model from scratch and fill it with the Joints you want.
 
-Two format are supported.
+\section Chapters_CreatingModels_supported_formats Supported formats
 
-\subsection pinocchio_page_loading_urdf Format urdf
+
+\subsection Chapters_CreatingModels_urdf Format urdf
 
 To load an urdf file in C++ code, copy the following lines:
 \code
@@ -43,7 +47,19 @@ se3::Model model = se3::urdf::buildModel (filename, rootJoint, verbose);
 se3::Data data (model);
 \endcode
 
-\subsection pinocchio_page_loading_lua Format lua
+\subsection Chapters_CreatingModels_Python Format Python
+
+To load a python file in C++ code, copy the following lines:
+\code
+#include <pinocchio/multibody/model.hpp>
+#include <pinocchio/multibody/parser/python.hpp>
+#include <pinocchio/multibody/parser/utils.hpp>
+#include <pinocchio/multibody/joint.hpp>
+
+//put here code to load from python
+\endcode
+
+\subsection Chapters_CreatingModels_lua Format lua
 
 To load an lua file in C++ code, copy the following lines:
 \code
@@ -58,4 +74,5 @@ se3::Model model = se3::lua::buildModel (filename, freeflyer);
 se3::Data data (model);
 \endcode
 
- */
+*/  
+}
\ No newline at end of file
diff --git a/doc/additionalDoc/crtp.hh b/doc/additionalDoc/Chapters/crtp.dox
similarity index 90%
rename from doc/additionalDoc/crtp.hh
rename to doc/additionalDoc/Chapters/crtp.dox
index 3dd6007cb..4025fb9e3 100644
--- a/doc/additionalDoc/crtp.hh
+++ b/doc/additionalDoc/Chapters/crtp.dox
@@ -1,6 +1,6 @@
 //
 // Copyright (c) 2016 CNRS
-// Author: Florent Lamiraux, Justin Carpentier
+// Author: Florent Lamiraux, Justin Carpentier, Florian Valenza
 //
 // This file is part of Pinocchio
 // Pinocchio is free software: you can redistribute it
@@ -16,7 +16,7 @@
 // Pinocchio If not, see
 // <http://www.gnu.org/licenses/>.
 
-/** \page pinocchio_page_crtp Curiously recurring template pattern
+/** \page  Chapters_crtp Curiously recurring template pattern
 
 Similarly to Eigen, Pinocchio library makes intensive use of the so called CRTP design
 pattern. This pattern is used for performance reasons in the
diff --git a/doc/additionalDoc/Chapters/data-driven-algorithms.dox b/doc/additionalDoc/Chapters/data-driven-algorithms.dox
new file mode 100644
index 000000000..21ad10530
--- /dev/null
+++ b/doc/additionalDoc/Chapters/data-driven-algorithms.dox
@@ -0,0 +1,27 @@
+//
+// Copyright (c) 2016 CNRS
+// Author: Florian Valenza
+//
+// This file is part of Pinocchio
+// Pinocchio is free software: you can redistribute it
+// and/or modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation, either version
+// 3 of the License, or (at your option) any later version.
+//
+// Pinocchio is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Lesser Public License for more details. You should have
+// received a copy of the GNU Lesser General Public License along with
+// Pinocchio If not, see
+// <http://www.gnu.org/licenses/>.
+
+namespace pinocchio
+{
+  
+/** \page Chapters_DataDrivenAlgorithms Data Driven Algorithms
+
+Here you can find informations about how information is stored in PInocchio and how algorithms workd
+
+*/  
+}
\ No newline at end of file
diff --git a/doc/additionalDoc/Chapters/dynamic-algorithms.dox b/doc/additionalDoc/Chapters/dynamic-algorithms.dox
new file mode 100644
index 000000000..8a0dfe6da
--- /dev/null
+++ b/doc/additionalDoc/Chapters/dynamic-algorithms.dox
@@ -0,0 +1,27 @@
+//
+// Copyright (c) 2016 CNRS
+// Author: Florian Valenza
+//
+// This file is part of Pinocchio
+// Pinocchio is free software: you can redistribute it
+// and/or modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation, either version
+// 3 of the License, or (at your option) any later version.
+//
+// Pinocchio is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Lesser Public License for more details. You should have
+// received a copy of the GNU Lesser General Public License along with
+// Pinocchio If not, see
+// <http://www.gnu.org/licenses/>.
+
+namespace pinocchio
+{
+  
+/** \page Chapters_DynamicAlgorithms Dynamic Algorithms
+
+Here you can find informations about dynamic algorithms
+
+*/  
+}
\ No newline at end of file
diff --git a/doc/additionalDoc/Chapters/fcl-geometries.dox b/doc/additionalDoc/Chapters/fcl-geometries.dox
new file mode 100644
index 000000000..c7f0541de
--- /dev/null
+++ b/doc/additionalDoc/Chapters/fcl-geometries.dox
@@ -0,0 +1,27 @@
+//
+// Copyright (c) 2016 CNRS
+// Author: Florian Valenza
+//
+// This file is part of Pinocchio
+// Pinocchio is free software: you can redistribute it
+// and/or modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation, either version
+// 3 of the License, or (at your option) any later version.
+//
+// Pinocchio is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Lesser Public License for more details. You should have
+// received a copy of the GNU Lesser General Public License along with
+// Pinocchio If not, see
+// <http://www.gnu.org/licenses/>.
+
+namespace pinocchio
+{
+  
+/** \page Chapters_FclGeometries Geometry
+
+Here you can find informations about how geometries are stored ( index of parent ) and used via FCL
+
+*/  
+}
\ No newline at end of file
diff --git a/doc/additionalDoc/Chapters/modeling-rigid-body.dox b/doc/additionalDoc/Chapters/modeling-rigid-body.dox
new file mode 100644
index 000000000..47af9ef5c
--- /dev/null
+++ b/doc/additionalDoc/Chapters/modeling-rigid-body.dox
@@ -0,0 +1,27 @@
+//
+// Copyright (c) 2016 CNRS
+// Author: Florian Valenza
+//
+// This file is part of Pinocchio
+// Pinocchio is free software: you can redistribute it
+// and/or modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation, either version
+// 3 of the License, or (at your option) any later version.
+//
+// Pinocchio is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Lesser Public License for more details. You should have
+// received a copy of the GNU Lesser General Public License along with
+// Pinocchio If not, see
+// <http://www.gnu.org/licenses/>.
+
+namespace pinocchio
+{
+  
+/** \page Chapters_RigidBodyDynamicModel Modeling rigid bodies
+
+Here you can find informations related to how pinocchio models a rigid multi body model. (ie Joints augmented by inertias)
+
+*/  
+}
\ No newline at end of file
diff --git a/doc/additionalDoc/Chapters/python-bindings.dox b/doc/additionalDoc/Chapters/python-bindings.dox
new file mode 100644
index 000000000..3df4bbba6
--- /dev/null
+++ b/doc/additionalDoc/Chapters/python-bindings.dox
@@ -0,0 +1,27 @@
+//
+// Copyright (c) 2016 CNRS
+// Author: Florian Valenza
+//
+// This file is part of Pinocchio
+// Pinocchio is free software: you can redistribute it
+// and/or modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation, either version
+// 3 of the License, or (at your option) any later version.
+//
+// Pinocchio is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Lesser Public License for more details. You should have
+// received a copy of the GNU Lesser General Public License along with
+// Pinocchio If not, see
+// <http://www.gnu.org/licenses/>.
+
+namespace pinocchio
+{
+  
+/** \page Chapters_PythonBindings Python Bindings
+
+Here you can find explications concerning python bindings and calls to C++ methods + RobotWrapper Class
+
+*/  
+}
\ No newline at end of file
diff --git a/doc/additionalDoc/Chapters/spatial-algebra.dox b/doc/additionalDoc/Chapters/spatial-algebra.dox
new file mode 100644
index 000000000..e42fc2eab
--- /dev/null
+++ b/doc/additionalDoc/Chapters/spatial-algebra.dox
@@ -0,0 +1,27 @@
+//
+// Copyright (c) 2016 CNRS
+// Author: Florian Valenza
+//
+// This file is part of Pinocchio
+// Pinocchio is free software: you can redistribute it
+// and/or modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation, either version
+// 3 of the License, or (at your option) any later version.
+//
+// Pinocchio is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Lesser Public License for more details. You should have
+// received a copy of the GNU Lesser General Public License along with
+// Pinocchio If not, see
+// <http://www.gnu.org/licenses/>.
+
+namespace pinocchio
+{
+  
+/** \page Chapters_SpatialAlgebra Spatial Algebra
+
+Here you can find informations related to Roy FeatherStone's book Rigid Body Dynamic Algorithms and spatial algebra
+
+*/  
+}
\ No newline at end of file
diff --git a/doc/additionalDoc/GettingStarted/install.dox b/doc/additionalDoc/GettingStarted/install.dox
new file mode 100644
index 000000000..5c374237d
--- /dev/null
+++ b/doc/additionalDoc/GettingStarted/install.dox
@@ -0,0 +1,27 @@
+//
+// Copyright (c) 2016 CNRS
+// Author: Florian Valenza
+//
+// This file is part of Pinocchio
+// Pinocchio is free software: you can redistribute it
+// and/or modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation, either version
+// 3 of the License, or (at your option) any later version.
+//
+// Pinocchio is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Lesser Public License for more details. You should have
+// received a copy of the GNU Lesser General Public License along with
+// Pinocchio If not, see
+// <http://www.gnu.org/licenses/>.
+
+namespace pinocchio
+{
+  
+/** \page GettingStarted_install install
+
+Here you can find the installation procedure. What to put ? Copy paste from github ?
+
+*/  
+}
\ No newline at end of file
diff --git a/doc/additionalDoc/GettingStarted/intro.dox b/doc/additionalDoc/GettingStarted/intro.dox
new file mode 100644
index 000000000..ba34d1124
--- /dev/null
+++ b/doc/additionalDoc/GettingStarted/intro.dox
@@ -0,0 +1,27 @@
+//
+// Copyright (c) 2016 CNRS
+// Author: Florian Valenza
+//
+// This file is part of Pinocchio
+// Pinocchio is free software: you can redistribute it
+// and/or modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation, either version
+// 3 of the License, or (at your option) any later version.
+//
+// Pinocchio is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Lesser Public License for more details. You should have
+// received a copy of the GNU Lesser General Public License along with
+// Pinocchio If not, see
+// <http://www.gnu.org/licenses/>.
+
+namespace pinocchio
+{
+
+/** \page GettingStarted Getting started
+
+Here you can find the installation procedure and some examples or HowTo
+
+*/
+}
\ No newline at end of file
diff --git a/doc/additionalDoc/GettingStarted/simple-humanoid.dox b/doc/additionalDoc/GettingStarted/simple-humanoid.dox
new file mode 100644
index 000000000..b0f2db22f
--- /dev/null
+++ b/doc/additionalDoc/GettingStarted/simple-humanoid.dox
@@ -0,0 +1,27 @@
+//
+// Copyright (c) 2016 CNRS
+// Author: Florian Valenza
+//
+// This file is part of Pinocchio
+// Pinocchio is free software: you can redistribute it
+// and/or modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation, either version
+// 3 of the License, or (at your option) any later version.
+//
+// Pinocchio is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Lesser Public License for more details. You should have
+// received a copy of the GNU Lesser General Public License along with
+// Pinocchio If not, see
+// <http://www.gnu.org/licenses/>.
+
+namespace pinocchio
+{
+  
+/** \page GettingStarted_simple_huma_IK Inverse Kinematics
+
+Here you can find how to use pinocchio API to build a really simple model and compute inverse kinematics
+
+*/  
+}
\ No newline at end of file
diff --git a/doc/additionalDoc/GettingStarted/urdf-loading-displaying.dox b/doc/additionalDoc/GettingStarted/urdf-loading-displaying.dox
new file mode 100644
index 000000000..e95e2a055
--- /dev/null
+++ b/doc/additionalDoc/GettingStarted/urdf-loading-displaying.dox
@@ -0,0 +1,27 @@
+//
+// Copyright (c) 2016 CNRS
+// Author: Florian Valenza
+//
+// This file is part of Pinocchio
+// Pinocchio is free software: you can redistribute it
+// and/or modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation, either version
+// 3 of the License, or (at your option) any later version.
+//
+// Pinocchio is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Lesser Public License for more details. You should have
+// received a copy of the GNU Lesser General Public License along with
+// Pinocchio If not, see
+// <http://www.gnu.org/licenses/>.
+
+namespace pinocchio
+{
+  
+/** \page GettingStarted_urdf_loading_viewer  Loading an urdf file
+
+Here you can find how to create a model from an urdf file and how to display it in gepetto viewer using the python bindings
+
+*/  
+}
\ No newline at end of file
diff --git a/doc/additionalDoc/users.dox b/doc/additionalDoc/users.dox
new file mode 100644
index 000000000..08b4875a1
--- /dev/null
+++ b/doc/additionalDoc/users.dox
@@ -0,0 +1,28 @@
+//
+// Copyright (c) 2016 CNRS
+// Author: Florian Valenza
+//
+// This file is part of Pinocchio
+// Pinocchio is free software: you can redistribute it
+// and/or modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation, either version
+// 3 of the License, or (at your option) any later version.
+//
+// Pinocchio is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Lesser Public License for more details. You should have
+// received a copy of the GNU Lesser General Public License along with
+// Pinocchio If not, see
+// <http://www.gnu.org/licenses/>.
+
+namespace pinocchio
+{
+
+/** \page Users Current Users
+
+Somes teams/companies that are currently using Pinocchio
+
+ */
+
+}
\ No newline at end of file
diff --git a/doc/layout.xml b/doc/layout.xml
index 3fb457ffc..2e5f2f643 100644
--- a/doc/layout.xml
+++ b/doc/layout.xml
@@ -2,7 +2,7 @@
   <!-- Navigation index tabs for HTML output -->
   <navindex>
     <tab type="mainpage" visible="yes" title="hello"/>
-    <tab type="pages" visible="yes" title="Getting Started" intro=""/>
+    <tab type="pages" visible="yes" title="Pages" intro=""/>
     <tab type="modules" visible="yes" title="" intro=""/>
 <!--     <tab type="namespaces" visible="yes" title="">
       <tab type="namespacelist" visible="yes" title="" intro=""/>
diff --git a/doc/treeview.dox b/doc/treeview.dox
index be6532d8c..157d3492b 100644
--- a/doc/treeview.dox
+++ b/doc/treeview.dox
@@ -1,3 +1,21 @@
+//
+// Copyright (c) 2016 CNRS
+// Author: Florian Valenza
+//
+// This file is part of Pinocchio
+// Pinocchio is free software: you can redistribute it
+// and/or modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation, either version
+// 3 of the License, or (at your option) any later version.
+//
+// Pinocchio is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Lesser Public License for more details. You should have
+// received a copy of the GNU Lesser General Public License along with
+// Pinocchio If not, see
+// <http://www.gnu.org/licenses/>.
+
 //
 // This file strutures pages and modules into a convenient hierarchical structure.
 //
@@ -9,23 +27,24 @@ namespace pinocchio {
   // Pages/ tutorials organization
   //
 
-  /** \page UserManual_Generalities General topics
-       - \subpage pinocchio_page_crtp
-       - \subpage pinocchio_page_loading
-       - \subpage UserManual_UnderstandingEigen
+  /** \page GettingStarted  Getting Started
+       - \subpage GettingStarted_install
+       - \subpage GettingStarted_simple_huma_IK
+       - \subpage GettingStarted_urdf_loading_viewer
   */
   
-  /** \page UserManual_ModelCreation Build a Model
-       - \subpage pinocchio_page_create_from_scratch
-       - \subpage pinocchio_page_loading
-          - \subpage pinocchio_page_urdf_loading
-          - \subpage pinocchio_page_python_loading
+  /** \page Chapters Chapters
+       - \subpage Chapters_SpatialAlgebra
+       - \subpage Chapters_RigidBodyDynamicModel
+       - \subpage Chapters_DynamicAlgorithms
+       - \subpage Chapters_DataDrivenAlgorithms
+       - \subpage Chapters_FclGeometries
+       - \subpage Chapters_CreatingModels
+       - \subpage Chapters_PythonBindings
+       - \subpage Chapters_crtp
   */
 
-  /** \page UserManual_UnderstandingEigen Understanding Eigen
-        \subpage TopicInsideEigenExample
-        \subpage TopicClassHierarchy
-        \subpage TopicLazyEvaluation
+  /** \page Users Current Users
   */
 
 
@@ -70,4 +89,8 @@ namespace pinocchio {
 
 
   /** \defgroup tools_group Tools */
+
+  /** \defgroup bench_group Benchmarks */
+
+  /** \defgroup unittest_group Unittests */
 } 
\ No newline at end of file
-- 
GitLab