Update to Blender 2.69. Add fixes for building with Clang, either from
upstream or submitted for upstream. Import changes: A new hidden wire display option was added to help with retopology. Mesh Bisect is a new tool to cut meshes in half. The Bridge, Edgenet fill, Grid fill and Symmetrize tools were improved. New curve and lattice editing tools were added too. Hair rendering was improved with a new Hair shader and reorganized settings. Subsurface scattering uses a new sampling algorithm and now supports bump mapping and texture blurring. Sky rendering now uses a more accurate sky model. New blackbody, vector transform and HSV nodes were added. The non-progressive integrator was renamed to Branched Path Integrator, and is now available for GPU rendering. The Motion tracker now supports plane tracking, which can be used to replace billboards, screens and other flat things in footage. Lists in the user interface can now be resized, sorted and filtered. Further there are small improvements for vertex parenting, empty objects, the shrinkwrap modifier, mask editing, armatures, f-curves and drivers. FBX Import support has been added and FBX/OBJ can now export split normals (without the need for the edge split modifier). In addition to the new features, over 270 bugs that existed in previous releases have been fixed.
This commit is contained in:
parent
31b35cd438
commit
877c39bd77
22 changed files with 1931 additions and 1289 deletions
|
@ -1,7 +1,6 @@
|
|||
# $NetBSD: Makefile,v 1.100 2013/12/27 01:59:42 dholland Exp $
|
||||
# $NetBSD: Makefile,v 1.101 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
DISTNAME= blender-2.68a
|
||||
PKGREVISION= 3
|
||||
DISTNAME= blender-2.69
|
||||
CATEGORIES= graphics
|
||||
MASTER_SITES= http://download.blender.org/source/
|
||||
|
||||
|
@ -24,12 +23,9 @@ FIND_PREFIX:= SCONSDIR=scons
|
|||
|
||||
INSTALLATION_DIRS= bin share/blender
|
||||
|
||||
.if ${OPSYS} == "NetBSD"
|
||||
# This doesn't seem right...
|
||||
.if !empty(OS_VERSION:M6.99.*) || !empty(OS_VERSION:M7.*)
|
||||
.if ${OPSYS} == "NetBSD" && exists(/usr/include/execinfo.h)
|
||||
LDFLAGS+= -lexecinfo
|
||||
.endif
|
||||
.endif
|
||||
|
||||
# To pass LDFLAGS to compiler/linker
|
||||
MYLDFLAGS= `printf "'%s'," ${LDFLAGS} | sed -e 's:,$$::'`
|
||||
|
@ -68,8 +64,8 @@ do-build:
|
|||
|
||||
# build is done in install phase.
|
||||
do-install:
|
||||
cd ${WRKSRC} && \
|
||||
${SCONSDIR}/bin/scons ${SCONS_ARGS}
|
||||
cd ${WRKSRC:Q} && ${PKGSRC_SETENV} ${MAKE_ENV} \
|
||||
${SCONSDIR}/bin/scons ${SCONS_ARGS} ${_MAKE_JOBS}
|
||||
|
||||
CHECK_INTERPRETER_SKIP= share/blender/${DISTNAME:S/blender-//:C/[a-z]//}/scripts/*.py share/blender/${DISTNAME:S/blender-//:C/[a-z]//}datafiles/*.py \
|
||||
share/blender/${DISTNAME:S/blender-//:C/[a-z]//}/python/lib/python3.3/venv/scripts/posix/pydoc
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,16 +1,33 @@
|
|||
$NetBSD: distinfo,v 1.38 2013/10/12 22:11:00 ryoon Exp $
|
||||
$NetBSD: distinfo,v 1.39 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
SHA1 (blender-2.68a.tar.gz) = b01e73b560c791f5a6086deaed6072ef5f8dd3b3
|
||||
RMD160 (blender-2.68a.tar.gz) = ee451f735f0814e067f178097d95eb5d89592fee
|
||||
Size (blender-2.68a.tar.gz) = 40042207 bytes
|
||||
SHA1 (patch-ab) = 2541584b0a4317f32558f581649a8c5c9ac427b7
|
||||
SHA1 (patch-build__files_scons_config_netbsd6-config.py) = 520fa968b4f1f9f10adb1055803e05dafc96f0fe
|
||||
SHA1 (blender-2.69.tar.gz) = 9500410d2457d99e685ca506bec12851454dc5d4
|
||||
RMD160 (blender-2.69.tar.gz) = 27997d071a767630baeaddc0017e19dccb99b1a9
|
||||
Size (blender-2.69.tar.gz) = 41274518 bytes
|
||||
SHA1 (patch-ab) = f752ba279aed273bb5c93ede64c2d7292f33fd83
|
||||
SHA1 (patch-build__files_scons_config_netbsd6-config.py) = a2ef239cc40430a5eaafd006b423e7f70ac9ee80
|
||||
SHA1 (patch-build__files_scons_tools_btools.py) = 09fe67666091daafcf586aa70dc19fa6964b2098
|
||||
SHA1 (patch-doc_python__api_sphinx__doc__gen.sh) = 52c9ee0e0c73b9b9628a3d82292a9588ff0060da
|
||||
SHA1 (patch-extern_carve_lib_triangulator.cpp) = ad539e2f04a3b181504c4a9135f106189fccbda0
|
||||
SHA1 (patch-extern_libmv_libmv_numeric_numeric.h) = 37649c996eda56c2a6e0776b9933df28fac645e3
|
||||
SHA1 (patch-extern_libmv_libmv_tracking_brute__region__tracker.cc) = be5fe12d44221bde94326cccb30316bcf29f9aba
|
||||
SHA1 (patch-extern_libmv_third__party_ceres_internal_ceres_collections__port.h) = 5a276e652ad222aca3ff626da4b4850e5043672c
|
||||
SHA1 (patch-extern_libmv_third__party_glog_src_config.h) = d889d56d47167222ab54fad1c8f87c7ddb02852a
|
||||
SHA1 (patch-extern_libmv_third__party_glog_src_config__netbsd.h) = 423dda12bb5871f810938666c0267ac73b3f856e
|
||||
SHA1 (patch-extern_libmv_third__party_glog_src_utilities.h) = 32fea10d935621ef0529fe56b3e857685fbc5d1f
|
||||
SHA1 (patch-extern_rangetree_range__tree.hh) = 976881b9caad67a2cfb24039652e887867fa6cc0
|
||||
SHA1 (patch-intern_cycles_util_util__types.h) = 85624299d7b3ed354ba06406c9022393a448ad54
|
||||
SHA1 (patch-intern_ghost_SConscript) = 84dad76663e6dfc3bd6636fe8924921fe04caa2f
|
||||
SHA1 (patch-intern_itasc_Armature.cpp) = ee841eff87e7cb85657868246285644994263fa2
|
||||
SHA1 (patch-intern_itasc_kdl_frameacc.hpp) = 06c5b13e889968b87513ff8ad7952b34173147de
|
||||
SHA1 (patch-intern_itasc_kdl_frames.hpp) = afcf3d74e50e12d4b8b2efd9b6d2fdfbee8fc629
|
||||
SHA1 (patch-intern_itasc_kdl_framevel.hpp) = fbf4accd352be468d3bdc039e315a86ce42010bd
|
||||
SHA1 (patch-intern_itasc_kdl_jacobian.hpp) = 490f67d9938e321b41c4bd93ccca06fe0c2d920a
|
||||
SHA1 (patch-intern_itasc_kdl_jntarray.hpp) = ff1b5befef08c8a7eb7f542a01305854b303156d
|
||||
SHA1 (patch-intern_itasc_kdl_jntarrayacc.hpp) = 05088dc8422c7fef2c7d80fd32547e8c46fb1158
|
||||
SHA1 (patch-intern_itasc_kdl_jntarrayvel.hpp) = 5673396e00d984448543959064a0d44e23baa09b
|
||||
SHA1 (patch-intern_itasc_kdl_tree.cpp) = 15d3b38b8a936c40726407ec17ee4c2dc7e0ac53
|
||||
SHA1 (patch-intern_itasc_kdl_tree.hpp) = 776b17eb67e4a619539d41c680b221d3c6f57dc8
|
||||
SHA1 (patch-intern_itasc_kdl_treefksolverpos__recursive.cpp) = bed5ba3ac0578161f35b561a6d4d1595ca085b88
|
||||
SHA1 (patch-intern_itasc_kdl_treefksolverpos__recursive.hpp) = da02d9c1bfe1f5825b1afded32ac1b1400613c08
|
||||
SHA1 (patch-intern_itasc_kdl_treejnttojacsolver.cpp) = bde39ea3c0b56cfbc7836cf5a30b94b7adbdfaff
|
||||
SHA1 (patch-user-config.py) = a3cf1a22185496f13b068a31d4b9638c8821f941
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
$NetBSD: patch-ab,v 1.11 2013/10/12 22:11:00 ryoon Exp $
|
||||
$NetBSD: patch-ab,v 1.12 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
--- source/blender/blenlib/intern/storage.c.orig 2013-04-25 16:35:57.000000000 +0000
|
||||
--- source/blender/blenlib/intern/storage.c.orig 2013-08-20 08:33:04.000000000 +0000
|
||||
+++ source/blender/blenlib/intern/storage.c
|
||||
@@ -42,13 +42,13 @@
|
||||
#include <time.h>
|
||||
|
@ -9,7 +9,7 @@ $NetBSD: patch-ab,v 1.11 2013/10/12 22:11:00 ryoon Exp $
|
|||
-#if defined(__sun__) || defined(__sun) || defined(__NetBSD__)
|
||||
+#if defined(__sun__) || defined(__sun) || defined(__NetBSD__) || defined(__DragonFly__)
|
||||
# include <sys/statvfs.h> /* Other modern unix os's should probably use this also */
|
||||
#elif !defined(__FreeBSD__) && !defined(linux) && (defined(__sparc) || defined(__sparc__))
|
||||
#elif !defined(__FreeBSD__) && !defined(__linux__) && (defined(__sparc) || defined(__sparc__))
|
||||
# include <sys/statfs.h>
|
||||
#endif
|
||||
|
||||
|
@ -18,7 +18,7 @@ $NetBSD: patch-ab,v 1.11 2013/10/12 22:11:00 ryoon Exp $
|
|||
# include <sys/param.h>
|
||||
# include <sys/mount.h>
|
||||
#endif
|
||||
@@ -173,7 +173,7 @@ double BLI_dir_free_space(const char *di
|
||||
@@ -172,7 +172,7 @@ double BLI_dir_free_space(const char *di
|
||||
return (double) (freec * bytesps * sectorspc);
|
||||
#else
|
||||
|
||||
|
@ -27,12 +27,12 @@ $NetBSD: patch-ab,v 1.11 2013/10/12 22:11:00 ryoon Exp $
|
|||
struct statvfs disk;
|
||||
#else
|
||||
struct statfs disk;
|
||||
@@ -198,7 +198,7 @@ double BLI_dir_free_space(const char *di
|
||||
@@ -197,7 +197,7 @@ double BLI_dir_free_space(const char *di
|
||||
if (statfs(name, &disk)) return(-1);
|
||||
#endif
|
||||
|
||||
-#if defined(__sun__) || defined(__sun) || defined(__NetBSD__)
|
||||
+#if defined(__sun__) || defined(__sun) || defined(__NetBSD__) || defined(__DragonFly__)
|
||||
if (statvfs(name, &disk)) return(-1);
|
||||
#elif !defined(__FreeBSD__) && !defined(linux) && (defined(__sparc) || defined(__sparc__))
|
||||
#elif !defined(__FreeBSD__) && !defined(__linux__) && (defined(__sparc) || defined(__sparc__))
|
||||
/* WARNING - This may not be supported by geeneric unix os's - Campbell */
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
$NetBSD: patch-build__files_scons_config_netbsd6-config.py,v 1.2 2013/01/02 02:22:08 ryoon Exp $
|
||||
$NetBSD: patch-build__files_scons_config_netbsd6-config.py,v 1.3 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
* config file for NetBSD 6
|
||||
|
||||
--- build_files/scons/config/netbsd6-config.py.orig 2012-12-22 20:01:05.000000000 +0000
|
||||
--- build_files/scons/config/netbsd6-config.py.orig 2013-11-20 14:12:04.000000000 +0000
|
||||
+++ build_files/scons/config/netbsd6-config.py
|
||||
@@ -0,0 +1,227 @@
|
||||
+CC = 'gcc'
|
||||
|
@ -185,7 +185,7 @@ $NetBSD: patch-build__files_scons_config_netbsd6-config.py,v 1.2 2013/01/02 02:2
|
|||
+BF_BOOST_LIB_INTERNATIONAL = 'boost_locale'
|
||||
+BF_BOOST_LIBPATH = BF_BOOST + '/lib'
|
||||
+
|
||||
+WITH_BF_OPENMP = True
|
||||
+WITH_BF_OPENMP = False
|
||||
+
|
||||
+WITH_GHOST_XDND = False
|
||||
+
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
$NetBSD: patch-extern_carve_lib_triangulator.cpp,v 1.1 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
--- extern/carve/lib/triangulator.cpp.orig 2013-11-20 21:53:04.000000000 +0000
|
||||
+++ extern/carve/lib/triangulator.cpp
|
||||
@@ -122,7 +122,7 @@ namespace {
|
||||
std::vector<vertex_info *> queue;
|
||||
|
||||
void checkheap() {
|
||||
-#ifdef __GNUC__
|
||||
+#if defined(__GNUC__) && !defined(_LIBCPP_VERSION)
|
||||
CARVE_ASSERT(std::__is_heap(queue.begin(), queue.end(), vertex_info_ordering()));
|
||||
#endif
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
$NetBSD: patch-extern_libmv_third__party_ceres_internal_ceres_collections__port.h,v 1.1 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
--- extern/libmv/third_party/ceres/internal/ceres/collections_port.h.orig 2013-11-20 21:36:24.000000000 +0000
|
||||
+++ extern/libmv/third_party/ceres/internal/ceres/collections_port.h
|
||||
@@ -33,11 +33,13 @@
|
||||
#ifndef CERES_INTERNAL_COLLECTIONS_PORT_H_
|
||||
#define CERES_INTERNAL_COLLECTIONS_PORT_H_
|
||||
|
||||
+#include <cstddef>
|
||||
+
|
||||
#if defined(CERES_NO_TR1)
|
||||
# include <map>
|
||||
# include <set>
|
||||
#else
|
||||
-# if defined(_MSC_VER)
|
||||
+# if defined(_MSC_VER) || defined(_LIBCPP_VERSION) || __cplusplus >= 201103L
|
||||
# include <unordered_map>
|
||||
# include <unordered_set>
|
||||
# else
|
||||
@@ -71,11 +73,24 @@ struct HashSet : set<K> {};
|
||||
namespace ceres {
|
||||
namespace internal {
|
||||
|
||||
+#if defined(_LIBCPP_VERSION) || __cplusplus >= 201103L
|
||||
+#undef CERES_HASH_NAMESPACE_START
|
||||
+#define CERES_HASH_NAMESPACE_START namespace std {
|
||||
+#undef CERES_HASH_NAMESPACE_END
|
||||
+#define CERES_HASH_NAMESPACE_END }
|
||||
+
|
||||
+template<typename K, typename V>
|
||||
+struct HashMap : std::unordered_map<K, V> {};
|
||||
+
|
||||
+template<typename K>
|
||||
+struct HashSet : std::unordered_set<K> {};
|
||||
+#else
|
||||
template<typename K, typename V>
|
||||
struct HashMap : std::tr1::unordered_map<K, V> {};
|
||||
|
||||
template<typename K>
|
||||
struct HashSet : std::tr1::unordered_set<K> {};
|
||||
+#endif
|
||||
|
||||
#if defined(_WIN32) && !defined(__MINGW64__) && !defined(__MINGW32__)
|
||||
#define GG_LONGLONG(x) x##I64
|
|
@ -0,0 +1,17 @@
|
|||
$NetBSD: patch-extern_rangetree_range__tree.hh,v 1.1 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
--- extern/rangetree/range_tree.hh.orig 2013-11-20 21:28:30.000000000 +0000
|
||||
+++ extern/rangetree/range_tree.hh
|
||||
@@ -39,9 +39,9 @@ struct RangeTree {
|
||||
return max < v.min;
|
||||
}
|
||||
|
||||
- const T min;
|
||||
- const T max;
|
||||
- const bool single;
|
||||
+ T min;
|
||||
+ T max;
|
||||
+ bool single;
|
||||
};
|
||||
|
||||
typedef std::set<Range> Tree;
|
|
@ -0,0 +1,14 @@
|
|||
$NetBSD: patch-intern_cycles_util_util__types.h,v 1.1 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
--- intern/cycles/util/util_types.h.orig 2013-11-20 21:10:53.000000000 +0000
|
||||
+++ intern/cycles/util/util_types.h
|
||||
@@ -26,6 +26,9 @@
|
||||
/* Qualifiers for kernel code shared by CPU and GPU */
|
||||
|
||||
#ifndef __KERNEL_GPU__
|
||||
+#ifdef __cplusplus
|
||||
+#include <locale>
|
||||
+#endif
|
||||
|
||||
#define __device static inline
|
||||
#define __device_noinline static
|
13
graphics/blender/patches/patch-intern_itasc_Armature.cpp
Normal file
13
graphics/blender/patches/patch-intern_itasc_Armature.cpp
Normal file
|
@ -0,0 +1,13 @@
|
|||
$NetBSD: patch-intern_itasc_Armature.cpp,v 1.1 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
--- intern/itasc/Armature.cpp.orig 2013-03-18 11:44:56.000000000 +0000
|
||||
+++ intern/itasc/Armature.cpp
|
||||
@@ -402,7 +402,7 @@ bool Armature::finalize()
|
||||
m_armlength = 0.0;
|
||||
for (i=0; i<m_neffector; i++) {
|
||||
length = 0.0;
|
||||
- KDL::SegmentMap::const_iterator sit = m_tree.getSegment(m_effectors[i].name);
|
||||
+ KDL::SegmentMap::value_type const *sit = m_tree.getSegmentPtr(m_effectors[i].name);
|
||||
while (sit->first != "root") {
|
||||
Frame tip = sit->second.segment.pose(m_qKdl(sit->second.q_nr));
|
||||
length += tip.p.Norm();
|
94
graphics/blender/patches/patch-intern_itasc_kdl_frameacc.hpp
Normal file
94
graphics/blender/patches/patch-intern_itasc_kdl_frameacc.hpp
Normal file
|
@ -0,0 +1,94 @@
|
|||
$NetBSD: patch-intern_itasc_kdl_frameacc.hpp,v 1.1 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
--- intern/itasc/kdl/frameacc.hpp.orig 2013-11-20 15:03:18.000000000 +0000
|
||||
+++ intern/itasc/kdl/frameacc.hpp
|
||||
@@ -78,15 +78,18 @@ public:
|
||||
IMETHOD friend VectorAcc operator / (const VectorAcc& r2,const doubleAcc& r1);
|
||||
|
||||
|
||||
- IMETHOD friend bool Equal(const VectorAcc& r1,const VectorAcc& r2,double eps=epsilon);
|
||||
- IMETHOD friend bool Equal(const Vector& r1,const VectorAcc& r2,double eps=epsilon);
|
||||
- IMETHOD friend bool Equal(const VectorAcc& r1,const Vector& r2,double eps=epsilon);
|
||||
+ IMETHOD friend bool Equal(const VectorAcc& r1,const VectorAcc& r2,double eps);
|
||||
+ IMETHOD friend bool Equal(const Vector& r1,const VectorAcc& r2,double eps);
|
||||
+ IMETHOD friend bool Equal(const VectorAcc& r1,const Vector& r2,double eps);
|
||||
IMETHOD friend VectorAcc operator - (const VectorAcc& r);
|
||||
IMETHOD friend doubleAcc dot(const VectorAcc& lhs,const VectorAcc& rhs);
|
||||
IMETHOD friend doubleAcc dot(const VectorAcc& lhs,const Vector& rhs);
|
||||
IMETHOD friend doubleAcc dot(const Vector& lhs,const VectorAcc& rhs);
|
||||
};
|
||||
|
||||
+bool Equal(const VectorAcc& r1,const VectorAcc& r2,double eps=epsilon);
|
||||
+bool Equal(const Vector& r1,const VectorAcc& r2,double eps=epsilon);
|
||||
+bool Equal(const VectorAcc& r1,const Vector& r2,double eps=epsilon);
|
||||
|
||||
|
||||
class RotationAcc
|
||||
@@ -132,15 +135,18 @@ public:
|
||||
IMETHOD friend RotationAcc operator* (const RotationAcc& r1,const RotationAcc& r2);
|
||||
IMETHOD friend RotationAcc operator* (const Rotation& r1,const RotationAcc& r2);
|
||||
IMETHOD friend RotationAcc operator* (const RotationAcc& r1,const Rotation& r2);
|
||||
- IMETHOD friend bool Equal(const RotationAcc& r1,const RotationAcc& r2,double eps=epsilon);
|
||||
- IMETHOD friend bool Equal(const Rotation& r1,const RotationAcc& r2,double eps=epsilon);
|
||||
- IMETHOD friend bool Equal(const RotationAcc& r1,const Rotation& r2,double eps=epsilon);
|
||||
+ IMETHOD friend bool Equal(const RotationAcc& r1,const RotationAcc& r2,double eps);
|
||||
+ IMETHOD friend bool Equal(const Rotation& r1,const RotationAcc& r2,double eps);
|
||||
+ IMETHOD friend bool Equal(const RotationAcc& r1,const Rotation& r2,double eps);
|
||||
IMETHOD TwistAcc Inverse(const TwistAcc& arg) const;
|
||||
IMETHOD TwistAcc Inverse(const Twist& arg) const;
|
||||
IMETHOD TwistAcc operator * (const TwistAcc& arg) const;
|
||||
IMETHOD TwistAcc operator * (const Twist& arg) const;
|
||||
};
|
||||
|
||||
+bool Equal(const RotationAcc& r1,const RotationAcc& r2,double eps=epsilon);
|
||||
+bool Equal(const Rotation& r1,const RotationAcc& r2,double eps=epsilon);
|
||||
+bool Equal(const RotationAcc& r1,const Rotation& r2,double eps=epsilon);
|
||||
|
||||
|
||||
|
||||
@@ -170,9 +176,9 @@ public:
|
||||
IMETHOD friend FrameAcc operator * (const FrameAcc& f1,const FrameAcc& f2);
|
||||
IMETHOD friend FrameAcc operator * (const Frame& f1,const FrameAcc& f2);
|
||||
IMETHOD friend FrameAcc operator * (const FrameAcc& f1,const Frame& f2);
|
||||
- IMETHOD friend bool Equal(const FrameAcc& r1,const FrameAcc& r2,double eps=epsilon);
|
||||
- IMETHOD friend bool Equal(const Frame& r1,const FrameAcc& r2,double eps=epsilon);
|
||||
- IMETHOD friend bool Equal(const FrameAcc& r1,const Frame& r2,double eps=epsilon);
|
||||
+ IMETHOD friend bool Equal(const FrameAcc& r1,const FrameAcc& r2,double eps);
|
||||
+ IMETHOD friend bool Equal(const Frame& r1,const FrameAcc& r2,double eps);
|
||||
+ IMETHOD friend bool Equal(const FrameAcc& r1,const Frame& r2,double eps);
|
||||
|
||||
IMETHOD TwistAcc Inverse(const TwistAcc& arg) const;
|
||||
IMETHOD TwistAcc Inverse(const Twist& arg) const;
|
||||
@@ -180,6 +186,9 @@ public:
|
||||
IMETHOD TwistAcc operator * (const Twist& arg) const;
|
||||
};
|
||||
|
||||
+bool Equal(const FrameAcc& r1,const FrameAcc& r2,double eps=epsilon);
|
||||
+bool Equal(const Frame& r1,const FrameAcc& r2,double eps=epsilon);
|
||||
+bool Equal(const FrameAcc& r1,const Frame& r2,double eps=epsilon);
|
||||
|
||||
|
||||
|
||||
@@ -226,9 +235,9 @@ public:
|
||||
// the new point.
|
||||
// Complexity : 6M+6A
|
||||
|
||||
- IMETHOD friend bool Equal(const TwistAcc& a,const TwistAcc& b,double eps=epsilon);
|
||||
- IMETHOD friend bool Equal(const Twist& a,const TwistAcc& b,double eps=epsilon);
|
||||
- IMETHOD friend bool Equal(const TwistAcc& a,const Twist& b,double eps=epsilon);
|
||||
+ IMETHOD friend bool Equal(const TwistAcc& a,const TwistAcc& b,double eps);
|
||||
+ IMETHOD friend bool Equal(const Twist& a,const TwistAcc& b,double eps);
|
||||
+ IMETHOD friend bool Equal(const TwistAcc& a,const Twist& b,double eps);
|
||||
|
||||
|
||||
IMETHOD Twist GetTwist() const;
|
||||
@@ -239,6 +248,9 @@ public:
|
||||
|
||||
};
|
||||
|
||||
+bool Equal(const TwistAcc& a,const TwistAcc& b,double eps=epsilon);
|
||||
+bool Equal(const Twist& a,const TwistAcc& b,double eps=epsilon);
|
||||
+bool Equal(const TwistAcc& a,const Twist& b,double eps=epsilon);
|
||||
|
||||
|
||||
|
93
graphics/blender/patches/patch-intern_itasc_kdl_frames.hpp
Normal file
93
graphics/blender/patches/patch-intern_itasc_kdl_frames.hpp
Normal file
|
@ -0,0 +1,93 @@
|
|||
$NetBSD: patch-intern_itasc_kdl_frames.hpp,v 1.1 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
--- intern/itasc/kdl/frames.hpp.orig 2013-11-20 14:46:29.000000000 +0000
|
||||
+++ intern/itasc/kdl/frames.hpp
|
||||
@@ -248,10 +248,10 @@ public:
|
||||
|
||||
//! do not use operator == because the definition of Equal(.,.) is slightly
|
||||
//! different. It compares whether the 2 arguments are equal in an eps-interval
|
||||
- inline friend bool Equal(const Vector& a,const Vector& b,double eps=epsilon);
|
||||
+ inline friend bool Equal(const Vector& a,const Vector& b,double eps);
|
||||
|
||||
//! return a normalized vector
|
||||
- inline friend Vector Normalize(const Vector& a, double eps=epsilon);
|
||||
+ inline friend Vector Normalize(const Vector& a, double eps);
|
||||
|
||||
//! The literal equality operator==(), also identical.
|
||||
inline friend bool operator==(const Vector& a,const Vector& b);
|
||||
@@ -502,7 +502,7 @@ public:
|
||||
|
||||
//! do not use operator == because the definition of Equal(.,.) is slightly
|
||||
//! different. It compares whether the 2 arguments are equal in an eps-interval
|
||||
- friend bool Equal(const Rotation& a,const Rotation& b,double eps=epsilon);
|
||||
+ friend bool Equal(const Rotation& a,const Rotation& b,double eps);
|
||||
|
||||
//! The literal equality operator==(), also identical.
|
||||
friend bool operator==(const Rotation& a,const Rotation& b);
|
||||
@@ -663,7 +663,7 @@ public:
|
||||
|
||||
//! do not use operator == because the definition of Equal(.,.) is slightly
|
||||
//! different. It compares whether the 2 arguments are equal in an eps-interval
|
||||
- inline friend bool Equal(const Frame& a,const Frame& b,double eps=epsilon);
|
||||
+ inline friend bool Equal(const Frame& a,const Frame& b,double eps);
|
||||
|
||||
//! The literal equality operator==(), also identical.
|
||||
inline friend bool operator==(const Frame& a,const Frame& b);
|
||||
@@ -735,7 +735,7 @@ public:
|
||||
|
||||
//! do not use operator == because the definition of Equal(.,.) is slightly
|
||||
//! different. It compares whether the 2 arguments are equal in an eps-interval
|
||||
- inline friend bool Equal(const Twist& a,const Twist& b,double eps=epsilon);
|
||||
+ inline friend bool Equal(const Twist& a,const Twist& b,double eps);
|
||||
|
||||
//! The literal equality operator==(), also identical.
|
||||
inline friend bool operator==(const Twist& a,const Twist& b);
|
||||
@@ -898,7 +898,7 @@ public:
|
||||
|
||||
//! do not use operator == because the definition of Equal(.,.) is slightly
|
||||
//! different. It compares whether the 2 arguments are equal in an eps-interval
|
||||
- inline friend bool Equal(const Wrench& a,const Wrench& b,double eps=epsilon);
|
||||
+ inline friend bool Equal(const Wrench& a,const Wrench& b,double eps);
|
||||
|
||||
//! The literal equality operator==(), also identical.
|
||||
inline friend bool operator==(const Wrench& a,const Wrench& b);
|
||||
@@ -979,7 +979,7 @@ public:
|
||||
|
||||
//! do not use operator == because the definition of Equal(.,.) is slightly
|
||||
//! different. It compares whether the 2 arguments are equal in an eps-interval
|
||||
- inline friend bool Equal(const Vector2& a,const Vector2& b,double eps=epsilon);
|
||||
+ inline friend bool Equal(const Vector2& a,const Vector2& b,double eps);
|
||||
|
||||
friend class Rotation2;
|
||||
};
|
||||
@@ -1026,7 +1026,7 @@ public:
|
||||
|
||||
//! do not use operator == because the definition of Equal(.,.) is slightly
|
||||
//! different. It compares whether the 2 arguments are equal in an eps-interval
|
||||
- inline friend bool Equal(const Rotation2& a,const Rotation2& b,double eps=epsilon);
|
||||
+ inline friend bool Equal(const Rotation2& a,const Rotation2& b,double eps);
|
||||
};
|
||||
|
||||
//! A 2D frame class, for further documentation see the Frames class
|
||||
@@ -1067,9 +1067,20 @@ public:
|
||||
tmp.SetIdentity();
|
||||
return tmp;
|
||||
}
|
||||
- inline friend bool Equal(const Frame2& a,const Frame2& b,double eps=epsilon);
|
||||
+ inline friend bool Equal(const Frame2& a,const Frame2& b,double eps);
|
||||
};
|
||||
|
||||
+
|
||||
+Vector Normalize(const Vector& a, double eps=epsilon);
|
||||
+bool Equal(const Vector& a,const Vector& b,double eps=epsilon);
|
||||
+bool Equal(const Rotation& a,const Rotation& b,double eps=epsilon);
|
||||
+bool Equal(const Frame& a,const Frame& b,double eps=epsilon);
|
||||
+bool Equal(const Twist& a,const Twist& b,double eps=epsilon);
|
||||
+bool Equal(const Wrench& a,const Wrench& b,double eps=epsilon);
|
||||
+bool Equal(const Vector2& a,const Vector2& b,double eps=epsilon);
|
||||
+bool Equal(const Rotation2& a,const Rotation2& b,double eps=epsilon);
|
||||
+bool Equal(const Frame2& a,const Frame2& b,double eps=epsilon);
|
||||
+
|
||||
IMETHOD Vector diff(const Vector& a,const Vector& b,double dt=1);
|
||||
IMETHOD Vector diff(const Rotation& R_a_b1,const Rotation& R_a_b2,double dt=1);
|
||||
IMETHOD Twist diff(const Frame& F_a_b1,const Frame& F_a_b2,double dt=1);
|
96
graphics/blender/patches/patch-intern_itasc_kdl_framevel.hpp
Normal file
96
graphics/blender/patches/patch-intern_itasc_kdl_framevel.hpp
Normal file
|
@ -0,0 +1,96 @@
|
|||
$NetBSD: patch-intern_itasc_kdl_framevel.hpp,v 1.1 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
--- intern/itasc/kdl/framevel.hpp.orig 2013-11-20 14:52:47.000000000 +0000
|
||||
+++ intern/itasc/kdl/framevel.hpp
|
||||
@@ -110,15 +110,18 @@ public:
|
||||
IMETHOD friend void SetToZero(VectorVel& v);
|
||||
|
||||
|
||||
- IMETHOD friend bool Equal(const VectorVel& r1,const VectorVel& r2,double eps=epsilon);
|
||||
- IMETHOD friend bool Equal(const Vector& r1,const VectorVel& r2,double eps=epsilon);
|
||||
- IMETHOD friend bool Equal(const VectorVel& r1,const Vector& r2,double eps=epsilon);
|
||||
+ IMETHOD friend bool Equal(const VectorVel& r1,const VectorVel& r2,double eps);
|
||||
+ IMETHOD friend bool Equal(const Vector& r1,const VectorVel& r2,double eps);
|
||||
+ IMETHOD friend bool Equal(const VectorVel& r1,const Vector& r2,double eps);
|
||||
IMETHOD friend VectorVel operator - (const VectorVel& r);
|
||||
IMETHOD friend doubleVel dot(const VectorVel& lhs,const VectorVel& rhs);
|
||||
IMETHOD friend doubleVel dot(const VectorVel& lhs,const Vector& rhs);
|
||||
IMETHOD friend doubleVel dot(const Vector& lhs,const VectorVel& rhs);
|
||||
};
|
||||
|
||||
+bool Equal(const VectorVel& r1,const VectorVel& r2,double eps=epsilon);
|
||||
+bool Equal(const Vector& r1,const VectorVel& r2,double eps=epsilon);
|
||||
+bool Equal(const VectorVel& r1,const Vector& r2,double eps=epsilon);
|
||||
|
||||
|
||||
class RotationVel
|
||||
@@ -166,9 +169,9 @@ public:
|
||||
IMETHOD friend RotationVel operator* (const RotationVel& r1,const RotationVel& r2);
|
||||
IMETHOD friend RotationVel operator* (const Rotation& r1,const RotationVel& r2);
|
||||
IMETHOD friend RotationVel operator* (const RotationVel& r1,const Rotation& r2);
|
||||
- IMETHOD friend bool Equal(const RotationVel& r1,const RotationVel& r2,double eps=epsilon);
|
||||
- IMETHOD friend bool Equal(const Rotation& r1,const RotationVel& r2,double eps=epsilon);
|
||||
- IMETHOD friend bool Equal(const RotationVel& r1,const Rotation& r2,double eps=epsilon);
|
||||
+ IMETHOD friend bool Equal(const RotationVel& r1,const RotationVel& r2,double eps);
|
||||
+ IMETHOD friend bool Equal(const Rotation& r1,const RotationVel& r2,double eps);
|
||||
+ IMETHOD friend bool Equal(const RotationVel& r1,const Rotation& r2,double eps);
|
||||
|
||||
IMETHOD TwistVel Inverse(const TwistVel& arg) const;
|
||||
IMETHOD TwistVel Inverse(const Twist& arg) const;
|
||||
@@ -176,6 +179,9 @@ public:
|
||||
IMETHOD TwistVel operator * (const Twist& arg) const;
|
||||
};
|
||||
|
||||
+bool Equal(const RotationVel& r1,const RotationVel& r2,double eps=epsilon);
|
||||
+bool Equal(const Rotation& r1,const RotationVel& r2,double eps=epsilon);
|
||||
+bool Equal(const RotationVel& r1,const Rotation& r2,double eps=epsilon);
|
||||
|
||||
|
||||
|
||||
@@ -220,9 +226,9 @@ public:
|
||||
IMETHOD friend FrameVel operator * (const FrameVel& f1,const FrameVel& f2);
|
||||
IMETHOD friend FrameVel operator * (const Frame& f1,const FrameVel& f2);
|
||||
IMETHOD friend FrameVel operator * (const FrameVel& f1,const Frame& f2);
|
||||
- IMETHOD friend bool Equal(const FrameVel& r1,const FrameVel& r2,double eps=epsilon);
|
||||
- IMETHOD friend bool Equal(const Frame& r1,const FrameVel& r2,double eps=epsilon);
|
||||
- IMETHOD friend bool Equal(const FrameVel& r1,const Frame& r2,double eps=epsilon);
|
||||
+ IMETHOD friend bool Equal(const FrameVel& r1,const FrameVel& r2,double eps);
|
||||
+ IMETHOD friend bool Equal(const Frame& r1,const FrameVel& r2,double eps);
|
||||
+ IMETHOD friend bool Equal(const FrameVel& r1,const Frame& r2,double eps);
|
||||
|
||||
IMETHOD TwistVel Inverse(const TwistVel& arg) const;
|
||||
IMETHOD TwistVel Inverse(const Twist& arg) const;
|
||||
@@ -230,6 +236,9 @@ public:
|
||||
IMETHOD TwistVel operator * (const Twist& arg) const;
|
||||
};
|
||||
|
||||
+bool Equal(const FrameVel& r1,const FrameVel& r2,double eps=epsilon);
|
||||
+bool Equal(const Frame& r1,const FrameVel& r2,double eps=epsilon);
|
||||
+bool Equal(const FrameVel& r1,const Frame& r2,double eps=epsilon);
|
||||
|
||||
|
||||
|
||||
@@ -292,9 +301,9 @@ public:
|
||||
// = Equality operators
|
||||
// do not use operator == because the definition of Equal(.,.) is slightly
|
||||
// different. It compares whether the 2 arguments are equal in an eps-interval
|
||||
- IMETHOD friend bool Equal(const TwistVel& a,const TwistVel& b,double eps=epsilon);
|
||||
- IMETHOD friend bool Equal(const Twist& a,const TwistVel& b,double eps=epsilon);
|
||||
- IMETHOD friend bool Equal(const TwistVel& a,const Twist& b,double eps=epsilon);
|
||||
+ IMETHOD friend bool Equal(const TwistVel& a,const TwistVel& b,double eps);
|
||||
+ IMETHOD friend bool Equal(const Twist& a,const TwistVel& b,double eps);
|
||||
+ IMETHOD friend bool Equal(const TwistVel& a,const Twist& b,double eps);
|
||||
|
||||
// = Conversion to other entities
|
||||
IMETHOD Twist GetTwist() const;
|
||||
@@ -305,6 +314,10 @@ public:
|
||||
|
||||
};
|
||||
|
||||
+bool Equal(const TwistVel& a,const TwistVel& b,double eps=epsilon);
|
||||
+bool Equal(const Twist& a,const TwistVel& b,double eps=epsilon);
|
||||
+bool Equal(const TwistVel& a,const Twist& b,double eps=epsilon);
|
||||
+
|
||||
IMETHOD VectorVel diff(const VectorVel& a,const VectorVel& b,double dt=1.0) {
|
||||
return VectorVel(diff(a.p,b.p,dt),diff(a.v,b.v,dt));
|
||||
}
|
23
graphics/blender/patches/patch-intern_itasc_kdl_jacobian.hpp
Normal file
23
graphics/blender/patches/patch-intern_itasc_kdl_jacobian.hpp
Normal file
|
@ -0,0 +1,23 @@
|
|||
$NetBSD: patch-intern_itasc_kdl_jacobian.hpp,v 1.1 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
--- intern/itasc/kdl/jacobian.hpp.orig 2013-11-20 14:57:39.000000000 +0000
|
||||
+++ intern/itasc/kdl/jacobian.hpp
|
||||
@@ -45,7 +45,7 @@ namespace KDL
|
||||
bool operator ==(const Jacobian& arg);
|
||||
bool operator !=(const Jacobian& arg);
|
||||
|
||||
- friend bool Equal(const Jacobian& a,const Jacobian& b,double eps=epsilon);
|
||||
+ friend bool Equal(const Jacobian& a,const Jacobian& b,double eps);
|
||||
|
||||
|
||||
~Jacobian();
|
||||
@@ -63,6 +63,9 @@ namespace KDL
|
||||
|
||||
|
||||
};
|
||||
+
|
||||
+ bool Equal(const Jacobian& a,const Jacobian& b,double eps=epsilon);
|
||||
}
|
||||
|
||||
+
|
||||
#endif
|
19
graphics/blender/patches/patch-intern_itasc_kdl_jntarray.hpp
Normal file
19
graphics/blender/patches/patch-intern_itasc_kdl_jntarray.hpp
Normal file
|
@ -0,0 +1,19 @@
|
|||
$NetBSD: patch-intern_itasc_kdl_jntarray.hpp,v 1.1 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
--- intern/itasc/kdl/jntarray.hpp.orig 2013-11-20 14:54:27.000000000 +0000
|
||||
+++ intern/itasc/kdl/jntarray.hpp
|
||||
@@ -209,12 +209,13 @@ class MyTask : public RTT::TaskContext
|
||||
* @return true if each element of src1 is within eps of the same
|
||||
* element in src2, or if both src1 and src2 have no data (ie 0==rows())
|
||||
*/
|
||||
- friend bool Equal(const JntArray& src1,const JntArray& src2,double eps=epsilon);
|
||||
+ friend bool Equal(const JntArray& src1,const JntArray& src2,double eps);
|
||||
|
||||
friend bool operator==(const JntArray& src1,const JntArray& src2);
|
||||
//friend bool operator!=(const JntArray& src1,const JntArray& src2);
|
||||
};
|
||||
|
||||
+ bool Equal(const JntArray& src1,const JntArray& src2,double eps=epsilon);
|
||||
bool operator==(const JntArray& src1,const JntArray& src2);
|
||||
//bool operator!=(const JntArray& src1,const JntArray& src2);
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
$NetBSD: patch-intern_itasc_kdl_jntarrayacc.hpp,v 1.1 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
--- intern/itasc/kdl/jntarrayacc.hpp.orig 2013-11-20 15:09:06.000000000 +0000
|
||||
+++ intern/itasc/kdl/jntarrayacc.hpp
|
||||
@@ -58,9 +58,11 @@ namespace KDL
|
||||
friend void Divide(const JntArrayAcc& src,const doubleVel& factor,JntArrayAcc& dest);
|
||||
friend void Divide(const JntArrayAcc& src,const doubleAcc& factor,JntArrayAcc& dest);
|
||||
friend void SetToZero(JntArrayAcc& array);
|
||||
- friend bool Equal(const JntArrayAcc& src1,const JntArrayAcc& src2,double eps=epsilon);
|
||||
+ friend bool Equal(const JntArrayAcc& src1,const JntArrayAcc& src2,double eps);
|
||||
|
||||
};
|
||||
+
|
||||
+ bool Equal(const JntArrayAcc& src1,const JntArrayAcc& src2,double eps=epsilon);
|
||||
}
|
||||
|
||||
#endif
|
|
@ -0,0 +1,17 @@
|
|||
$NetBSD: patch-intern_itasc_kdl_jntarrayvel.hpp,v 1.1 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
--- intern/itasc/kdl/jntarrayvel.hpp.orig 2013-11-20 15:08:46.000000000 +0000
|
||||
+++ intern/itasc/kdl/jntarrayvel.hpp
|
||||
@@ -51,9 +51,11 @@ namespace KDL
|
||||
friend void Divide(const JntArrayVel& src,const double& factor,JntArrayVel& dest);
|
||||
friend void Divide(const JntArrayVel& src,const doubleVel& factor,JntArrayVel& dest);
|
||||
friend void SetToZero(JntArrayVel& array);
|
||||
- friend bool Equal(const JntArrayVel& src1,const JntArrayVel& src2,double eps=epsilon);
|
||||
+ friend bool Equal(const JntArrayVel& src1,const JntArrayVel& src2,double eps);
|
||||
|
||||
};
|
||||
+
|
||||
+ bool Equal(const JntArrayVel& src1,const JntArrayVel& src2,double eps=epsilon);
|
||||
}
|
||||
|
||||
#endif
|
13
graphics/blender/patches/patch-intern_itasc_kdl_tree.cpp
Normal file
13
graphics/blender/patches/patch-intern_itasc_kdl_tree.cpp
Normal file
|
@ -0,0 +1,13 @@
|
|||
$NetBSD: patch-intern_itasc_kdl_tree.cpp,v 1.1 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
--- intern/itasc/kdl/tree.cpp.orig 2012-06-03 12:00:41.000000000 +0000
|
||||
+++ intern/itasc/kdl/tree.cpp
|
||||
@@ -64,7 +64,7 @@ bool Tree::addSegment(const Segment& seg
|
||||
return false;
|
||||
pair<SegmentMap::iterator, bool> retval;
|
||||
//insert new element
|
||||
- TreeElement elem(segment, parent, nrOfJoints);
|
||||
+ TreeElement elem(segment, *parent, nrOfJoints);
|
||||
std::pair<std::string, TreeElement> val(segment_name, elem);
|
||||
|
||||
retval = segments.insert(val);
|
59
graphics/blender/patches/patch-intern_itasc_kdl_tree.hpp
Normal file
59
graphics/blender/patches/patch-intern_itasc_kdl_tree.hpp
Normal file
|
@ -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
|
||||
{
|
|
@ -0,0 +1,44 @@
|
|||
$NetBSD: patch-intern_itasc_kdl_treefksolverpos__recursive.cpp,v 1.1 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
--- intern/itasc/kdl/treefksolverpos_recursive.cpp.orig 2011-10-23 18:38:16.000000000 +0000
|
||||
+++ intern/itasc/kdl/treefksolverpos_recursive.cpp
|
||||
@@ -35,22 +35,22 @@ namespace KDL {
|
||||
|
||||
int TreeFkSolverPos_recursive::JntToCart(const JntArray& q_in, Frame& p_out, const std::string& segmentName, const std::string& baseName)
|
||||
{
|
||||
- SegmentMap::const_iterator it = tree.getSegment(segmentName);
|
||||
- SegmentMap::const_iterator baseit = tree.getSegment(baseName);
|
||||
+ SegmentMap::value_type const* it = tree.getSegmentPtr(segmentName);
|
||||
+ SegmentMap::value_type const* baseit = tree.getSegmentPtr(baseName);
|
||||
|
||||
if(q_in.rows() != tree.getNrOfJoints())
|
||||
return -1;
|
||||
- else if(it == tree.getSegments().end()) //if the segment name is not found
|
||||
+ else if(!it) //if the segment name is not found
|
||||
return -2;
|
||||
- else if(baseit == tree.getSegments().end()) //if the base segment name is not found
|
||||
+ else if(!baseit) //if the base segment name is not found
|
||||
return -3;
|
||||
else{
|
||||
- p_out = recursiveFk(q_in, it, baseit);
|
||||
- return 0;
|
||||
+ p_out = recursiveFk(q_in, it, baseit);
|
||||
+ return 0;
|
||||
}
|
||||
}
|
||||
|
||||
- Frame TreeFkSolverPos_recursive::recursiveFk(const JntArray& q_in, const SegmentMap::const_iterator& it, const SegmentMap::const_iterator& baseit)
|
||||
+ Frame TreeFkSolverPos_recursive::recursiveFk(const JntArray& q_in, SegmentMap::value_type const* it, SegmentMap::value_type const* baseit)
|
||||
{
|
||||
//gets the frame for the current element (segment)
|
||||
const TreeElement& currentElement = it->second;
|
||||
@@ -60,8 +60,7 @@ namespace KDL {
|
||||
}
|
||||
else{
|
||||
Frame currentFrame = currentElement.segment.pose(((JntArray&)q_in)(currentElement.q_nr));
|
||||
- SegmentMap::const_iterator parentIt = currentElement.parent;
|
||||
- return recursiveFk(q_in, parentIt, baseit) * currentFrame;
|
||||
+ return recursiveFk(q_in, currentElement.parent, baseit) * currentFrame;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
$NetBSD: patch-intern_itasc_kdl_treefksolverpos__recursive.hpp,v 1.1 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
--- intern/itasc/kdl/treefksolverpos_recursive.hpp.orig 2009-07-14 15:36:21.000000000 +0000
|
||||
+++ intern/itasc/kdl/treefksolverpos_recursive.hpp
|
||||
@@ -45,7 +45,7 @@ namespace KDL {
|
||||
private:
|
||||
const Tree tree;
|
||||
|
||||
- Frame recursiveFk(const JntArray& q_in, const SegmentMap::const_iterator& it, const SegmentMap::const_iterator& baseit);
|
||||
+ Frame recursiveFk(const JntArray& q_in, SegmentMap::value_type const* it, SegmentMap::value_type const* baseit);
|
||||
};
|
||||
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
$NetBSD: patch-intern_itasc_kdl_treejnttojacsolver.cpp,v 1.1 2014/01/10 20:06:46 joerg Exp $
|
||||
|
||||
--- intern/itasc/kdl/treejnttojacsolver.cpp.orig 2011-10-23 18:38:16.000000000 +0000
|
||||
+++ intern/itasc/kdl/treejnttojacsolver.cpp
|
||||
@@ -28,16 +28,16 @@ int TreeJntToJacSolver::JntToJac(const J
|
||||
return -1;
|
||||
|
||||
//Lets search the tree-element
|
||||
- SegmentMap::const_iterator it = tree.getSegments().find(segmentname);
|
||||
+ SegmentMap::value_type const* it = tree.getSegmentPtr(segmentname);
|
||||
|
||||
//If segmentname is not inside the tree, back out:
|
||||
- if (it == tree.getSegments().end())
|
||||
+ if (!it)
|
||||
return -2;
|
||||
|
||||
//Let's make the jacobian zero:
|
||||
SetToZero(jac);
|
||||
|
||||
- SegmentMap::const_iterator root = tree.getSegments().find("root");
|
||||
+ SegmentMap::value_type const* root = tree.getSegmentPtr("root");
|
||||
|
||||
Frame T_total = Frame::Identity();
|
||||
Frame T_local, T_joint;
|
Loading…
Reference in a new issue