summaryrefslogtreecommitdiff
path: root/graphics/blender/patches/patch-intern_itasc_kdl_tree.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/blender/patches/patch-intern_itasc_kdl_tree.hpp')
-rw-r--r--graphics/blender/patches/patch-intern_itasc_kdl_tree.hpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/graphics/blender/patches/patch-intern_itasc_kdl_tree.hpp b/graphics/blender/patches/patch-intern_itasc_kdl_tree.hpp
new file mode 100644
index 00000000000..8bf76b9b2c4
--- /dev/null
+++ b/graphics/blender/patches/patch-intern_itasc_kdl_tree.hpp
@@ -0,0 +1,59 @@
+$NetBSD: patch-intern_itasc_kdl_tree.hpp,v 1.1 2014/01/10 20:06:46 joerg Exp $
+
+--- intern/itasc/kdl/tree.hpp.orig 2012-12-15 11:15:05.000000000 +0000
++++ intern/itasc/kdl/tree.hpp
+@@ -41,32 +41,28 @@ namespace KDL
+ {
+ //Forward declaration
+ class TreeElement;
+-#if defined(__APPLE__)
+-# if MAC_OS_X_VERSION_MIN_REQUIRED <= 1050
++#if defined(__APPLE__) && MAC_OS_X_VERSION_MIN_REQUIRED <= 1050
+ typedef std::map<std::string,TreeElement> SegmentMap;
+-# else
+- // Eigen allocator is needed for alignment of Eigen data types
+- typedef std::map<std::string,TreeElement, std::less<std::string>, Eigen::aligned_allocator<std::pair<std::string, TreeElement> > > SegmentMap;
+-# endif /* MAC_OS_X_VERSION_MIN_REQUIRED */
+ #else
+ // Eigen allocator is needed for alignment of Eigen data types
+ typedef std::map<std::string,TreeElement, std::less<std::string>, Eigen::aligned_allocator<std::pair<std::string, TreeElement> > > SegmentMap;
+ #endif
++
+ class TreeElement
+ {
+ public:
+- TreeElement():q_nr(0)
++ TreeElement():q_nr(0),parent(0)
+ {};
+ public:
+ Segment segment;
+ unsigned int q_nr;
+- SegmentMap::const_iterator parent;
++ SegmentMap::value_type const *parent;
+ std::vector<SegmentMap::const_iterator > children;
+- TreeElement(const Segment& segment_in,const SegmentMap::const_iterator& parent_in,unsigned int q_nr_in)
++ TreeElement(const Segment& segment_in,const SegmentMap::value_type& parent_in,unsigned int q_nr_in)
+ {
+ q_nr=q_nr_in;
+ segment=segment_in;
+- parent=parent_in;
++ parent=&parent_in;
+ };
+ static TreeElement Root()
+ {
+@@ -167,7 +163,15 @@ namespace KDL
+ return segments.find(segment_name);
+ };
+
++ SegmentMap::value_type const* getSegmentPtr(const std::string& segment_name)const
++ {
++ SegmentMap::const_iterator it = segments.find(segment_name);
++
++ if (it == segments.end())
++ return 0;
+
++ return &*it;
++ };
+
+ const SegmentMap& getSegments()const
+ {