In include/hpp/fcl/traversal: - some initialize method compute the position of all triangles in global frame before performing collision test, - bool initialize(MeshShapeCollisionTraversalNode<BV, S, NarrowPhaseSolver>& node, ... - bool initialize(ShapeMeshCollisionTraversalNode<S, BV, NarrowPhaseSolver>& node, ... - bool initialize(MeshCollisionTraversalNode<BV>& node,... - other do not. - bool initialize(MeshOcTreeCollisionTraversalNode<BV, NarrowPhaseSolver>& node, ... - bool initialize(OcTreeMeshCollisionTraversalNode<BV, NarrowPhaseSolver>& node, ... - bool initialize(MeshShapeCollisionTraversalNodeOBB<S, NarrowPhaseSolver>& node, ... - bool initialize(MeshShapeCollisionTraversalNodeRSS<S, NarrowPhaseSolver>& node, ... - bool initialize(MeshShapeCollisionTraversalNodekIOS<S, NarrowPhaseSolver>& node, ... - bool initialize(MeshShapeCollisionTraversalNodeOBBRSS<S, NarrowPhaseSolver>& node, ... - bool initialize(ShapeMeshCollisionTraversalNodeOBB<S, NarrowPhaseSolver>& node, ... - bool initialize(ShapeMeshCollisionTraversalNodeRSS<S, NarrowPhaseSolver>& node, ... - bool initialize(ShapeMeshCollisionTraversalNodekIOS<S, NarrowPhaseSolver>& node, ... - bool initialize(ShapeMeshCollisionTraversalNodeOBBRSS<S, NarrowPhaseSolver>& node, ... - bool initialize(MeshCollisionTraversalNodeOBB& node, ... - bool initialize(MeshCollisionTraversalNodeRSS& node, ... - bool initialize(MeshCollisionTraversalNodekIOS& node, ... - bool initialize(MeshCollisionTraversalNodeOBBRSS& node, ... ------------------------------------------------------------------------------- classes - MeshCollisionTraversalNodeRSS, - MeshCollisionTraversalNodekIOS, - MeshCollisionTraversalNodeOBBRSS derive from - MeshCollisionTraversalNode <RSS>, - MeshCollisionTraversalNode <kIOS>, - MeshCollisionTraversalNode <OBBRSS>. They store the relative position and orientation between two objects to test for collision. before calling overlap function, this additional information computes the relative positions of the bounding volumes. ------------------------------------------------------------------------------- For primitive shapes, collision and distance computation are very close. ShapeShapeCollide calls indeed ShapeShapeDistance. It would be convenient to merge CollisionRequest and DistanceRequest on the one hand and CollisionResult and DistanceResult on the other hand into two classes InteractionRequest and InteractionResult.