Fix Eigen3 unaligned array in iTaSC. The unaligned array cause crash when SSE2 is...
authorBenoit Bolsee <benoit.bolsee@online.be>
Sun, 3 Jun 2012 12:00:41 +0000 (12:00 +0000)
committerBenoit Bolsee <benoit.bolsee@online.be>
Sun, 3 Jun 2012 12:00:41 +0000 (12:00 +0000)
intern/itasc/kdl/segment.hpp
intern/itasc/kdl/tree.cpp
intern/itasc/kdl/tree.hpp

index 7c82ab4..87d972e 100644 (file)
@@ -46,8 +46,8 @@ namespace KDL {
     class Segment {
         friend class Chain;
     private:
-        Joint joint;
         Inertia M;
+        Joint joint;
         Frame f_tip;
 
     public:
index 097a729..8776e43 100644 (file)
@@ -29,15 +29,18 @@ using namespace std;
 
 Tree::Tree() :
     nrOfJoints(0), nrOfSegments(0) {
-    segments.insert(make_pair("root", TreeElement::Root()));
+       TreeElement root;
+       std::pair<std::string, TreeElement> val("root", root);
+    segments.insert(val);
 }
 
 Tree::Tree(const Tree& in) {
     segments.clear();
     nrOfSegments = 0;
     nrOfJoints = 0;
-
-    segments.insert(make_pair("root", TreeElement::Root()));
+       TreeElement root;
+       std::pair<std::string, TreeElement> val("root", root);
+    segments.insert(val);
     this->addTree(in, "", "root");
 
 }
@@ -46,8 +49,9 @@ Tree& Tree::operator=(const Tree& in) {
     segments.clear();
     nrOfSegments = 0;
     nrOfJoints = 0;
-
-    segments.insert(make_pair("root", TreeElement::Root()));
+       TreeElement root;
+       std::pair<std::string, TreeElement> val("root", root);
+    segments.insert(val);
     this->addTree(in, "", "root");
     return *this;
 }
@@ -60,8 +64,10 @@ bool Tree::addSegment(const Segment& segment, const std::string& segment_name,
         return false;
     pair<SegmentMap::iterator, bool> retval;
     //insert new element
-    retval = segments.insert(make_pair(segment_name, TreeElement(segment,
-            parent, nrOfJoints)));
+       TreeElement elem(segment, parent, nrOfJoints);
+       std::pair<std::string, TreeElement> val(segment_name, elem);
+
+    retval = segments.insert(val);
     //check if insertion succeeded
     if (!retval.second)
         return false;
index 4dfb55c..08c1aad 100644 (file)
@@ -43,7 +43,7 @@ namespace KDL
 #endif
     class TreeElement
     {
-    private:
+    public:
         TreeElement():q_nr(0)
         {};
     public: