38 #ifndef FCL_COLLISION_NODE_INL_H 39 #define FCL_COLLISION_NODE_INL_H 41 #include "fcl/narrowphase/detail/traversal/collision_node.h" 52 void collide(CollisionTraversalNodeBase<double>* node, BVHFrontList* front_list);
56 void selfCollide(CollisionTraversalNodeBase<double>* node, BVHFrontList* front_list);
60 void distance(DistanceTraversalNodeBase<double>* node, BVHFrontList* front_list,
int qsize);
64 void collide2(MeshCollisionTraversalNodeOBB<double>* node, BVHFrontList* front_list);
68 void collide2(MeshCollisionTraversalNodeRSS<double>* node, BVHFrontList* front_list);
72 void collide(CollisionTraversalNodeBase<S>* node, BVHFrontList* front_list)
74 if(front_list && front_list->size() > 0)
76 propagateBVHFrontListCollisionRecurse(node, front_list);
80 collisionRecurse(node, 0, 0, front_list);
86 void collide2(MeshCollisionTraversalNodeOBB<S>* node, BVHFrontList* front_list)
88 if(front_list && front_list->size() > 0)
90 propagateBVHFrontListCollisionRecurse(node, front_list);
96 Rtemp = node->R * node->model2->getBV(0).getOrientation();
97 R = node->model1->getBV(0).getOrientation().transpose() * Rtemp;
98 Ttemp = node->R * node->model2->getBV(0).getCenter() + node->T;
99 Ttemp -= node->model1->getBV(0).getCenter();
100 T = node->model1->getBV(0).getOrientation().transpose() * Ttemp;
102 collisionRecurse(node, 0, 0, R, T, front_list);
107 template <
typename S>
108 void collide2(MeshCollisionTraversalNodeRSS<S>* node, BVHFrontList* front_list)
110 if(front_list && front_list->size() > 0)
112 propagateBVHFrontListCollisionRecurse(node, front_list);
116 collisionRecurse(node, 0, 0, node->R, node->T, front_list);
121 template <
typename S>
122 void selfCollide(CollisionTraversalNodeBase<S>* node, BVHFrontList* front_list)
125 if(front_list && front_list->size() > 0)
127 propagateBVHFrontListCollisionRecurse(node, front_list);
131 selfCollisionRecurse(node, 0, front_list);
136 template <
typename S>
137 void distance(DistanceTraversalNodeBase<S>* node, BVHFrontList* front_list,
int qsize)
142 distanceRecurse(node, 0, 0, front_list);
144 distanceQueueRecurse(node, 0, 0, front_list, qsize);
Main namespace.
Definition: broadphase_bruteforce-inl.h:45
S distance(const Eigen::MatrixBase< DerivedA > &R0, const Eigen::MatrixBase< DerivedB > &T0, const kIOS< S > &b1, const kIOS< S > &b2, Vector3< S > *P, Vector3< S > *Q)
Approximate distance between two kIOS bounding volumes.
Definition: kIOS-inl.h:266