hpp-fcl  3.0.0
HPP fork of FCL -- The Flexible Collision Library
traits_traversal.h
Go to the documentation of this file.
1 /*
2  * Software License Agreement (BSD License)
3  *
4  * Copyright (c) 2019, CNRS-LAAS
5  * All rights reserved.
6  */
7 
12 #include <../src/collision_node.h>
15 
16 namespace hpp {
17 namespace fcl {
18 
19 // TraversalTraitsCollision for collision_func_matrix.cpp
20 
21 template <typename TypeA, typename TypeB>
23 
24 #ifdef HPP_FCL_HAS_OCTOMAP
25 
26 template <typename T_SH>
28  typedef ShapeOcTreeCollisionTraversalNode<T_SH> CollisionTraversal_t;
29 };
30 
31 template <typename T_SH>
32 struct HPP_FCL_LOCAL TraversalTraitsCollision<OcTree, T_SH> {
33  typedef OcTreeShapeCollisionTraversalNode<T_SH> CollisionTraversal_t;
34 };
35 
36 template <>
37 struct HPP_FCL_LOCAL TraversalTraitsCollision<OcTree, OcTree> {
38  typedef OcTreeCollisionTraversalNode CollisionTraversal_t;
39 };
40 
41 template <typename T_BVH>
42 struct HPP_FCL_LOCAL TraversalTraitsCollision<OcTree, BVHModel<T_BVH> > {
43  typedef OcTreeMeshCollisionTraversalNode<T_BVH> CollisionTraversal_t;
44 };
45 
46 template <typename T_BVH>
47 struct HPP_FCL_LOCAL TraversalTraitsCollision<BVHModel<T_BVH>, OcTree> {
48  typedef MeshOcTreeCollisionTraversalNode<T_BVH> CollisionTraversal_t;
49 };
50 
51 template <typename T_HF>
52 struct HPP_FCL_LOCAL TraversalTraitsCollision<OcTree, HeightField<T_HF> > {
53  typedef OcTreeHeightFieldCollisionTraversalNode<T_HF> CollisionTraversal_t;
54 };
55 
56 template <typename T_HF>
57 struct HPP_FCL_LOCAL TraversalTraitsCollision<HeightField<T_HF>, OcTree> {
58  typedef HeightFieldOcTreeCollisionTraversalNode<T_HF> CollisionTraversal_t;
59 };
60 
61 #endif
62 
63 // TraversalTraitsDistance for distance_func_matrix.cpp
64 
65 template <typename TypeA, typename TypeB>
67 
68 #ifdef HPP_FCL_HAS_OCTOMAP
69 
70 template <typename T_SH>
72  typedef ShapeOcTreeDistanceTraversalNode<T_SH> CollisionTraversal_t;
73 };
74 
75 template <typename T_SH>
76 struct HPP_FCL_LOCAL TraversalTraitsDistance<OcTree, T_SH> {
77  typedef OcTreeShapeDistanceTraversalNode<T_SH> CollisionTraversal_t;
78 };
79 
80 template <>
81 struct HPP_FCL_LOCAL TraversalTraitsDistance<OcTree, OcTree> {
82  typedef OcTreeDistanceTraversalNode CollisionTraversal_t;
83 };
84 
85 template <typename T_BVH>
86 struct HPP_FCL_LOCAL TraversalTraitsDistance<OcTree, BVHModel<T_BVH> > {
87  typedef OcTreeMeshDistanceTraversalNode<T_BVH> CollisionTraversal_t;
88 };
89 
90 template <typename T_BVH>
91 struct HPP_FCL_LOCAL TraversalTraitsDistance<BVHModel<T_BVH>, OcTree> {
92  typedef MeshOcTreeDistanceTraversalNode<T_BVH> CollisionTraversal_t;
93 };
94 
95 #endif
96 
97 } // namespace fcl
98 
99 } // namespace hpp
Octree is one type of collision geometry which can encode uncertainty information in the sensor data.
Definition: octree.h:54
#define HPP_FCL_LOCAL
Definition: config.hh:92
Main namespace.
Definition: broadphase_bruteforce.h:44
Definition: traits_traversal.h:22
Definition: traits_traversal.h:66