DART 6.10.1
Loading...
Searching...
No Matches
BackwardCompatibility.hpp
Go to the documentation of this file.
1/*
2 * Copyright (c) 2011-2021, The DART development contributors
3 * All rights reserved.
4 *
5 * The list of contributors can be found at:
6 * https://github.com/dartsim/dart/blob/master/LICENSE
7 *
8 * This file is provided under the following "BSD-style" License:
9 * Redistribution and use in source and binary forms, with or
10 * without modification, are permitted provided that the following
11 * conditions are met:
12 * * Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 * * Redistributions in binary form must reproduce the above
15 * copyright notice, this list of conditions and the following
16 * disclaimer in the documentation and/or other materials provided
17 * with the distribution.
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
19 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
20 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
23 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
26 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
29 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 * POSSIBILITY OF SUCH DAMAGE.
31 */
32
33#ifndef DART_COLLISION_FCL_BACKWARDCOMPATIBILITY_HPP_
34#define DART_COLLISION_FCL_BACKWARDCOMPATIBILITY_HPP_
35
36#include "dart/config.hpp"
37
38#include <Eigen/Dense>
39
40// clang-format off
41#define FCL_VERSION_AT_LEAST(x,y,z) \
42 (FCL_MAJOR_VERSION > x || (FCL_MAJOR_VERSION >= x && \
43 (FCL_MINOR_VERSION > y || (FCL_MINOR_VERSION >= y && \
44 FCL_PATCH_VERSION >= z))))
45
46#define FCL_MAJOR_MINOR_VERSION_AT_MOST(x,y) \
47 (FCL_MAJOR_VERSION < x || (FCL_MAJOR_VERSION <= x && \
48 (FCL_MINOR_VERSION < y || (FCL_MINOR_VERSION <= y))))
49// clang-format on
50
51#include <fcl/config.h>
52
53#if FCL_VERSION_AT_LEAST(0, 6, 0)
54
55# include <fcl/math/geometry.h>
56
57# include <fcl/geometry/bvh/BVH_model.h>
58# include <fcl/geometry/geometric_shape_to_BVH_model.h>
59# include <fcl/math/bv/OBBRSS.h>
60# include <fcl/math/bv/utility.h>
61# include <fcl/narrowphase/collision.h>
62# include <fcl/narrowphase/collision_object.h>
63# include <fcl/narrowphase/distance.h>
64
65#else
66
67# include <fcl/math/matrix_3f.h>
68# include <fcl/math/transform.h>
69# include <fcl/math/vec_3f.h>
70
71# include <fcl/BV/OBBRSS.h>
72# include <fcl/BVH/BVH_model.h>
73# include <fcl/shape/geometric_shape_to_BVH_model.h>
74# include <fcl/collision.h>
75# include <fcl/collision_data.h>
76# include <fcl/collision_object.h>
77# include <fcl/distance.h>
78
79#endif // FCL_VERSION_AT_LEAST(0,6,0)
80
81#include <fcl/broadphase/broadphase_dynamic_AABB_tree.h>
82
83#if HAVE_OCTOMAP && FCL_HAVE_OCTOMAP
84# if FCL_VERSION_AT_LEAST(0, 6, 0)
85# include <fcl/geometry/octree/octree.h>
86# else
87# include <fcl/octree.h>
88# endif // FCL_VERSION_AT_LEAST(0,6,0)
89#endif // HAVE_OCTOMAP && FCL_HAVE_OCTOMAP
90
91#if FCL_VERSION_AT_LEAST(0, 5, 0)
92# include <memory>
93template <class T>
94using fcl_shared_ptr = std::shared_ptr<T>;
95template <class T>
96using fcl_weak_ptr = std::weak_ptr<T>;
97template <class T, class... Args>
99{
100 return std::make_shared<T>(std::forward<Args>(args)...);
101}
102#else
103# include <boost/make_shared.hpp>
104# include <boost/weak_ptr.hpp>
105template <class T>
106using fcl_shared_ptr = boost::shared_ptr<T>;
107template <class T>
108using fcl_weak_ptr = boost::weak_ptr<T>;
109template <class T, class... Args>
111{
112 return boost::make_shared<T>(std::forward<Args>(args)...);
113}
114#endif // FCL_VERSION_AT_LEAST(0,5,0)
115
116namespace dart {
117namespace collision {
118namespace fcl {
119
120#if FCL_VERSION_AT_LEAST(0, 6, 0)
121// Geometric fundamentals
122using Vector3 = ::fcl::Vector3<double>;
123using Matrix3 = ::fcl::Matrix3<double>;
124using Transform3 = ::fcl::Transform3<double>;
125// Geometric primitives
126using Box = ::fcl::Box<double>;
127using Cylinder = ::fcl::Cylinder<double>;
128using Cone = ::fcl::Cone<double>;
129using Ellipsoid = ::fcl::Ellipsoid<double>;
130using Halfspace = ::fcl::Halfspace<double>;
131using Sphere = ::fcl::Sphere<double>;
132# if HAVE_OCTOMAP && FCL_HAVE_OCTOMAP
133using OcTree = ::fcl::OcTree<double>;
134# endif // HAVE_OCTOMAP && FCL_HAVE_OCTOMAP
135// Collision objects
136using CollisionObject = ::fcl::CollisionObject<double>;
137using CollisionGeometry = ::fcl::CollisionGeometry<double>;
139 = ::fcl::DynamicAABBTreeCollisionManager<double>;
140using OBBRSS = ::fcl::OBBRSS<double>;
141using CollisionRequest = ::fcl::CollisionRequest<double>;
142using CollisionResult = ::fcl::CollisionResult<double>;
143using DistanceRequest = ::fcl::DistanceRequest<double>;
144using DistanceResult = ::fcl::DistanceResult<double>;
145using Contact = ::fcl::Contact<double>;
146#else
147// Geometric fundamentals
148using Vector3 = ::fcl::Vec3f;
149using Matrix3 = ::fcl::Matrix3f;
150using Transform3 = ::fcl::Transform3f;
151// Geometric primitives
157# if HAVE_OCTOMAP && FCL_HAVE_OCTOMAP
158using OcTree = ::fcl::OcTree;
159# endif // HAVE_OCTOMAP && FCL_HAVE_OCTOMAP
160// Collision objects
170#endif
171
172#if FCL_VERSION_AT_LEAST(0, 4, 0) && !FCL_VERSION_AT_LEAST(0, 6, 0)
173using Ellipsoid = ::fcl::Ellipsoid;
174#endif
175
178
181
185
187void setTranslation(
190
194
196void setRotation(
199
201void setEulerZYX(
203 double eulerX,
204 double eulerY,
205 double eulerZ);
206
211
212} // namespace fcl
213} // namespace collision
214} // namespace dart
215
216#endif // DART_COLLISION_FCL_BACKWARDCOMPATIBILITY_HPP_
boost::weak_ptr< T > fcl_weak_ptr
Definition BackwardCompatibility.hpp:108
fcl_shared_ptr< T > fcl_make_shared(Args &&... args)
Definition BackwardCompatibility.hpp:110
boost::shared_ptr< T > fcl_shared_ptr
Definition BackwardCompatibility.hpp:106
::fcl::CollisionGeometry CollisionGeometry
Definition BackwardCompatibility.hpp:162
void setTranslation(dart::collision::fcl::Transform3 &T, const dart::collision::fcl::Vector3 &t)
Sets translation component of a transform.
Definition BackwardCompatibility.cpp:71
::fcl::CollisionObject CollisionObject
Definition BackwardCompatibility.hpp:161
::fcl::Sphere Sphere
Definition BackwardCompatibility.hpp:156
void setEulerZYX(dart::collision::fcl::Matrix3 &rot, double eulerX, double eulerY, double eulerZ)
Sets a rotation matrix given Euler-XYZ angles.
Definition BackwardCompatibility.cpp:104
double length(const dart::collision::fcl::Vector3 &t)
Returns norm of a 3-dim vector.
Definition BackwardCompatibility.cpp:40
double length2(const dart::collision::fcl::Vector3 &t)
Returns squared norm of a 3-dim vector.
Definition BackwardCompatibility.cpp:50
::fcl::OBBRSS OBBRSS
Definition BackwardCompatibility.hpp:164
void setRotation(dart::collision::fcl::Transform3 &T, const dart::collision::fcl::Matrix3 &R)
Sets rotation component of a transform.
Definition BackwardCompatibility.cpp:93
::fcl::Cone Cone
Definition BackwardCompatibility.hpp:154
::fcl::CollisionResult CollisionResult
Definition BackwardCompatibility.hpp:166
::fcl::Halfspace Halfspace
Definition BackwardCompatibility.hpp:155
::fcl::DynamicAABBTreeCollisionManager DynamicAABBTreeCollisionManager
Definition BackwardCompatibility.hpp:163
::fcl::Vec3f Vector3
Definition BackwardCompatibility.hpp:148
dart::collision::fcl::Vector3 transform(const dart::collision::fcl::Transform3 &t, const dart::collision::fcl::Vector3 &v)
Transforms a 3-dim vector by a transform and returns the result.
Definition BackwardCompatibility.cpp:133
::fcl::Cylinder Cylinder
Definition BackwardCompatibility.hpp:153
::fcl::Transform3f Transform3
Definition BackwardCompatibility.hpp:150
::fcl::CollisionRequest CollisionRequest
Definition BackwardCompatibility.hpp:165
::fcl::DistanceResult DistanceResult
Definition BackwardCompatibility.hpp:168
::fcl::Matrix3f Matrix3
Definition BackwardCompatibility.hpp:149
dart::collision::fcl::Vector3 getTranslation(const dart::collision::fcl::Transform3 &T)
Returns translation component of a transform.
Definition BackwardCompatibility.cpp:60
dart::collision::fcl::Matrix3 getRotation(const dart::collision::fcl::Transform3 &T)
Returns rotation component of a transform.
Definition BackwardCompatibility.cpp:82
::fcl::Box Box
Definition BackwardCompatibility.hpp:152
::fcl::Contact Contact
Definition BackwardCompatibility.hpp:169
::fcl::DistanceRequest DistanceRequest
Definition BackwardCompatibility.hpp:167
Definition BulletCollisionDetector.cpp:65