From 6c95f8530955947405e68c895d2545e3e23d3867 Mon Sep 17 00:00:00 2001
From: Joseph Mirabel <jmirabel@laas.fr>
Date: Mon, 7 Jul 2014 19:27:11 +0200
Subject: [PATCH] Add Graph class

---
 include/hpp/manipulation/graph/fwd.hh   |  1 -
 include/hpp/manipulation/graph/graph.hh | 46 +++++++++++++++++++++++++
 include/hpp/manipulation/graph/node.hh  |  1 +
 3 files changed, 47 insertions(+), 1 deletion(-)
 create mode 100644 include/hpp/manipulation/graph/graph.hh

diff --git a/include/hpp/manipulation/graph/fwd.hh b/include/hpp/manipulation/graph/fwd.hh
index 73b398b5..f53672c6 100644
--- a/include/hpp/manipulation/graph/fwd.hh
+++ b/include/hpp/manipulation/graph/fwd.hh
@@ -18,7 +18,6 @@
 # define HPP_MANIPULATION_GRAPH_FWD_HH
 
 #include <hpp/util/pointer.hh>
-#include <hpp/util/config.h>
 
 namespace hpp {
   namespace manipulation {
diff --git a/include/hpp/manipulation/graph/graph.hh b/include/hpp/manipulation/graph/graph.hh
new file mode 100644
index 00000000..5ff9e4a1
--- /dev/null
+++ b/include/hpp/manipulation/graph/graph.hh
@@ -0,0 +1,46 @@
+// Copyright (c) 2014, LAAS-CNRS
+// Authors: Joseph Mirabel (joseph.mirabel@laas.fr)
+//
+// This file is part of hpp-manipulation.
+// hpp-manipulation 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.
+//
+// hpp-manipulation 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
+// hpp-manipulation. If not, see <http://www.gnu.org/licenses/>.
+
+
+#ifndef HPP_MANIPULATION_GRAPHGRAPH_HH
+# define HPP_MANIPULATION_GRAPHGRAPH_HH
+
+#include "hpp/manipulation/fwd.hh"
+#include "hpp/manipulation/graph/fwd.hh"
+
+namespace hpp {
+  namespace manipulation {
+    namespace graph {
+      /// Description of the constraint graph
+      /// This class contains a graph representing a robot with several
+      /// end-effectors.
+      class HPP_MANIPULATION_DLLAPI Graph
+      {
+        public:
+
+        private:
+          /// This list contains a node selector for each end-effector.
+          set::list < NodeSelectorPtr_t > nodeSelectors_;
+
+          /// A set of constraints that will always be used, for example
+          /// stability constraints.
+          ConstraintSetPtr_t constraints_;
+      }
+    } // namespace graph
+  } // namespace manipulation
+} // namespace hpp
+
+#endif // HPP_MANIPULATION_GRAPHGRAPH_HH
diff --git a/include/hpp/manipulation/graph/node.hh b/include/hpp/manipulation/graph/node.hh
index 08880ef4..9e9a0fcc 100644
--- a/include/hpp/manipulation/graph/node.hh
+++ b/include/hpp/manipulation/graph/node.hh
@@ -20,6 +20,7 @@
 #include <hpp/core/constraints-set.hh>
 
 #include "hpp/manipulation/fwd.hh"
+#include "hpp/manipulation/graph/fwd.hh"
 
 namespace hpp {
   namespace manipulation {
-- 
GitLab