hpp-fcl  1.7.2
HPP fork of FCL -- The Flexible Collision Library
fwd.hh
Go to the documentation of this file.
1 //
2 // Software License Agreement (BSD License)
3 //
4 // Copyright (c) 2014, CNRS-LAAS
5 // Author: Florent Lamiraux
6 //
7 // All rights reserved.
8 //
9 // Redistribution and use in source and binary forms, with or without
10 // modification, are permitted provided that the following conditions
11 // are met:
12 //
13 // * Redistributions of source code must retain the above copyright
14 // notice, this list of conditions and the following disclaimer.
15 // * Redistributions in binary form must reproduce the above
16 // copyright notice, this list of conditions and the following
17 // disclaimer in the documentation and/or other materials provided
18 // with the distribution.
19 // * Neither the name of CNRS-LAAS nor the names of its
20 // contributors may be used to endorse or promote products derived
21 // from this software without specific prior written permission.
22 //
23 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26 // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27 // COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
29 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33 // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 // POSSIBILITY OF SUCH DAMAGE.
35 //
36 
37 #ifndef HPP_FCL_FWD_HH
38 #define HPP_FCL_FWD_HH
39 
40 #include <boost/shared_ptr.hpp>
41 #include <sstream>
42 
43 #include <hpp/fcl/config.hh>
44 
45 #if _WIN32
46  #define HPP_FCL_PRETTY_FUNCTION __FUNCSIG__
47 #else
48  #define HPP_FCL_PRETTY_FUNCTION __PRETTY_FUNCTION__
49 #endif
50 
51 #define HPP_FCL_THROW_PRETTY(message,exception) \
52 { \
53 std::stringstream ss; \
54 ss << "From file: " << __FILE__ << "\n"; \
55 ss << "in function: " << HPP_FCL_PRETTY_FUNCTION << "\n"; \
56 ss << "at line: " << __LINE__ << "\n"; \
57 ss << "message: " << message << "\n"; \
58 throw exception(ss.str()); \
59 }
60 
61 #if (__cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600))
62  #define HPP_FCL_WITH_CXX11_SUPPORT
63 #endif
64 
65 namespace hpp {
66 namespace fcl {
67  using boost::shared_ptr;
68 
70  typedef shared_ptr <CollisionObject> CollisionObjectPtr_t;
71  typedef shared_ptr < const CollisionObject> CollisionObjectConstPtr_t;
73  typedef shared_ptr <CollisionGeometry> CollisionGeometryPtr_t;
74  typedef shared_ptr <const CollisionGeometry>
76  class Transform3f;
77 
78  class AABB;
79 
80  class BVHModelBase;
81  typedef shared_ptr<BVHModelBase> BVHModelPtr_t;
82 }
83 } // namespace hpp
84 
85 #endif // HPP_FCL_FWD_HH
Simple transform class used locally by InterpMotion.
Definition: transform.h:58
shared_ptr< CollisionObject > CollisionObjectPtr_t
Definition: fwd.hh:69
Main namespace.
Definition: AABB.h:43
A base class describing the bounding hierarchy of a mesh model or a point cloud model (which is viewe...
Definition: BVH_model.h:62
shared_ptr< BVHModelBase > BVHModelPtr_t
Definition: fwd.hh:80
A class describing the AABB collision structure, which is a box in 3D space determined by two diagona...
Definition: AABB.h:55
shared_ptr< const CollisionObject > CollisionObjectConstPtr_t
Definition: fwd.hh:71
shared_ptr< CollisionGeometry > CollisionGeometryPtr_t
Definition: fwd.hh:72
shared_ptr< const CollisionGeometry > CollisionGeometryConstPtr_t
Definition: fwd.hh:75
the object for collision or distance computation, contains the geometry and the transform information...
Definition: collision_object.h:198
The geometry for the object for collision or distance computation.
Definition: collision_object.h:65