From e49094e87ea9a972df8558e0f06a096e92bc155a Mon Sep 17 00:00:00 2001
From: Florent Lamiraux <florent@laas.fr>
Date: Wed, 3 Feb 2016 17:17:50 +0100
Subject: [PATCH] Start documentation using doxygen.

---
 doc/Doxyfile.extra.in        |  2 +-
 doc/additionalDoc/crtp.hh    | 26 ++++++++++++++++
 doc/additionalDoc/loading.hh | 52 +++++++++++++++++++++++++++++++
 doc/additionalDoc/package.hh | 60 +++++++++++++++++++++++-------------
 4 files changed, 118 insertions(+), 22 deletions(-)
 create mode 100644 doc/additionalDoc/crtp.hh
 create mode 100644 doc/additionalDoc/loading.hh

diff --git a/doc/Doxyfile.extra.in b/doc/Doxyfile.extra.in
index 733ef2e24..a67a7c4b0 100644
--- a/doc/Doxyfile.extra.in
+++ b/doc/Doxyfile.extra.in
@@ -2,6 +2,6 @@ INPUT                  = @CMAKE_SOURCE_DIR@/src \
                          @CMAKE_SOURCE_DIR@/doc/additionalDoc
 IMAGE_PATH             = @CMAKE_SOURCE_DIR@/doc/pictures
 
-FILE_PATTERNS          = *.cc *.cpp *.h *.hpp *.hxx
+FILE_PATTERNS          = *.cc *.cpp *.h *.hpp *.hxx *.hh
 
 TAGFILES               = \
diff --git a/doc/additionalDoc/crtp.hh b/doc/additionalDoc/crtp.hh
new file mode 100644
index 000000000..f783c0ebf
--- /dev/null
+++ b/doc/additionalDoc/crtp.hh
@@ -0,0 +1,26 @@
+//
+// Copyright (c) 2016 CNRS
+// Author: Florent Lamiraux
+//
+// 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/>.
+
+/** \page pinocchio_page_crtp Curiously recurring template pattern
+
+Pinocchio library makes intensive use of the so called CRTP desing
+pattern. This patterns is used for performance reasons in the
+implementation of static polymorphism.
+
+\sa https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern
+ */
diff --git a/doc/additionalDoc/loading.hh b/doc/additionalDoc/loading.hh
new file mode 100644
index 000000000..bd3ac73a8
--- /dev/null
+++ b/doc/additionalDoc/loading.hh
@@ -0,0 +1,52 @@
+//
+// Copyright (c) 2016 CNRS
+// Author: Florent Lamiraux
+//
+// 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/>.
+
+/** \page pinocchio_page_loading Loading a model
+
+\section pinocchio_page_loading_introduction Introduction
+
+The most convenient way to build a robot model consists in parsing a description
+file.
+
+\section pinocchio_page_loading_supported_formats Supported formats
+
+Two format are supported.
+
+\subsection pinocchio_page_loading_urdf Format urdf
+
+To load an urdf file in C++ code, copy the following lines:
+\code
+#include <pinocchio/multibody/model.hpp>
+#include <pinocchio/multibody/parser/urdf.hpp>
+#include <pinocchio/multibody/parser/utils.hpp>
+bool verbose = false;
+se3::Model model = se3::urdf::buildModel (filename, verbose);
+\endcode
+
+\subsection pinocchio_page_loading_lua Format lua
+
+To load an lua file in C++ code, copy the following lines:
+\code
+#include <pinocchio/multibody/model.hpp>
+#include <pinocchio/multibody/parser/lua.hpp>
+#include <pinocchio/multibody/parser/utils.hpp>
+bool verbose = false;
+se3::Model model = se3::lua::buildModel (filename, false, verbose);
+\endcode
+
+ */
diff --git a/doc/additionalDoc/package.hh b/doc/additionalDoc/package.hh
index 2ce3915d1..57fac3677 100644
--- a/doc/additionalDoc/package.hh
+++ b/doc/additionalDoc/package.hh
@@ -1,26 +1,44 @@
-/*
- * Copyright 2010,
- * François Bleibel,
- * Olivier Stasse,
- *
- * CNRS/AIST
- *
- * This file is part of sot-dynamic.
- * sot-dynamic 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.
- * sot-dynamic 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 Lesser General Public License for more details.  You should
- * have received a copy of the GNU Lesser General Public License along
- * with sot-dynamic.  If not, see <http://www.gnu.org/licenses/>.
- */
+//
+// Copyright (c) 2016 CNRS
+// Author: Florent Lamiraux
+//
+// 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/>.
 
 /** \mainpage
-\section soth_section_introduction Introduction
+\section pinocchio_section_introduction Introduction
 
-The soth package is ...
+This package implements efficient forward kinematics algorithms for multi-body
+kinematic chains. One of the main features is the separation between models (constant values representing an object) and data (used for intermediate computations).
 
+The main classes are
+\li se3::Model that represents a kinematic chain composed of joints that move
+    links with mass and inertia,
+\li se3::Data that stores intermediate data for kinematic computations.
+
+\section pinocchio_section_kinematics Kinematics
+
+The library provides some classes to represent kinematic objects:
+\li se3::SE3Tpl represents a rigid-body transformation.
+
+\section pinocchio_section_collision_checking Collision Checking
+
+Collision checking between bodies of the kinematic chain and external
+obstacles is implemented using library hpp-fcl (a modified version of
+Flexible Collision Library). The computation of the position of objects in 3D
+space for a given configuration is performed by the following classes:
+\li se3::GeometryModel that represents a kinematic chain moving objects,
+\li se3::GeometryData that stores intermediate data like the position of objects
+in a given configuration of the kinematic chain.
 **/
-- 
GitLab