hpp-fcl: src/traits_traversal.h Source File

hpp-fcl 1.7.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
10 #include <hpp/fcl/collision_func_matrix.h>
11 #include <hpp/fcl/narrowphase/narrowphase.h>
12 #include <../src/collision_node.h>
13 #include <hpp/fcl/internal/traversal_node_setup.h>
14 #include <hpp/fcl/internal/shape_shape_func.h>
15
16 namespace hpp
17 {
18 namespace fcl
19 {
20
21 // TraversalTraitsCollision for collision_func_matrix.cpp
22
23 template <typename TypeA, typename TypeB>
24 struct HPP_FCL_LOCAL TraversalTraitsCollision
25 {
26 };
27
28 #ifdef HPP_FCL_HAS_OCTOMAP
29
30 template <typename T_SH>
31 struct HPP_FCL_LOCAL TraversalTraitsCollision <T_SH, OcTree>
32 {
33 typedef ShapeOcTreeCollisionTraversalNode<T_SH> CollisionTraversal_t;
34 };
35
36 template <typename T_SH>
37 struct HPP_FCL_LOCAL TraversalTraitsCollision <OcTree, T_SH>
38 {
39 typedef OcTreeShapeCollisionTraversalNode<T_SH> CollisionTraversal_t;
40 };
41
42 template <>
43 struct HPP_FCL_LOCAL TraversalTraitsCollision <OcTree, OcTree>
44 {
45 typedef OcTreeCollisionTraversalNode CollisionTraversal_t;
46 };
47
48 template <typename T_BVH>
49 struct HPP_FCL_LOCAL TraversalTraitsCollision <OcTree, BVHModel<T_BVH> >
50 {
51 typedef OcTreeMeshCollisionTraversalNode<T_BVH> CollisionTraversal_t;
52 };
53
54 template <typename T_BVH>
55 struct HPP_FCL_LOCAL TraversalTraitsCollision <BVHModel<T_BVH>, OcTree>
56 {
57 typedef MeshOcTreeCollisionTraversalNode<T_BVH> CollisionTraversal_t;
58 };
59
60 #endif
61
62 // TraversalTraitsDistance for distance_func_matrix.cpp
63
64 template <typename TypeA, typename TypeB>
65 struct HPP_FCL_LOCAL TraversalTraitsDistance
66 {
67 };
68
69 #ifdef HPP_FCL_HAS_OCTOMAP
70
71 template <typename T_SH>
72 struct HPP_FCL_LOCAL TraversalTraitsDistance <T_SH, OcTree>
73 {
74 typedef ShapeOcTreeDistanceTraversalNode<T_SH> CollisionTraversal_t;
75 };
76
77 template <typename T_SH>
78 struct HPP_FCL_LOCAL TraversalTraitsDistance <OcTree, T_SH>
79 {
80 typedef OcTreeShapeDistanceTraversalNode<T_SH> CollisionTraversal_t;
81 };
82
83 template <>
84 struct HPP_FCL_LOCAL TraversalTraitsDistance <OcTree, OcTree>
85 {
86 typedef OcTreeDistanceTraversalNode CollisionTraversal_t;
87 };
88
89 template <typename T_BVH>
90 struct HPP_FCL_LOCAL TraversalTraitsDistance <OcTree, BVHModel<T_BVH> >
91 {
92 typedef OcTreeMeshDistanceTraversalNode<T_BVH> CollisionTraversal_t;
93 };
94
95 template <typename T_BVH>
96 struct HPP_FCL_LOCAL TraversalTraitsDistance <BVHModel<T_BVH>, OcTree>
97 {
98 typedef MeshOcTreeDistanceTraversalNode<T_BVH> CollisionTraversal_t;
99 };
100
101 #endif
102
103 }
104
105 } //hpp
106
hpp::fcl::OcTree
Octree is one type of collision geometry which can encode uncertainty information in the sensor data.
Definition: octree.h:57
collision_func_matrix.h
hpp
Main namespace.
Definition: AABB.h:44
narrowphase.h
shape_shape_func.h
hpp::fcl::TraversalTraitsCollision
Definition: traits_traversal.h:25
hpp::fcl::TraversalTraitsDistance
Definition: traits_traversal.h:66
traversal_node_setup.h