diff --git a/trunk/fcl/src/collision.cpp b/trunk/fcl/src/collision.cpp index 54ee44ba7410e45e69ceabb48246d9a04e0ddf19..fc129af26bd7c234228a4f4b271c2a3ac0819d0c 100644 --- a/trunk/fcl/src/collision.cpp +++ b/trunk/fcl/src/collision.cpp @@ -43,7 +43,6 @@ namespace fcl { - static CollisionFunctionMatrix CollisionFunctionLookTable; int collide(const CollisionObject* o1, const CollisionObject* o2, @@ -62,6 +61,12 @@ int collide(const CollisionObject* o1, const CollisionObject* o2, const OBJECT_TYPE object_type2 = o2->getObjectType(); const NODE_TYPE node_type2 = o2->getNodeType(); + if(!CollisionFunctionLookTable.collision_matrix[node_type1][node_type2]) + { + std::cerr << "Warning: collision function between node type " << node_type1 << " and node type " << node_type2 << " is not supported"<< std::endl; + return 0; + } + if(object_type1 == OT_GEOM && object_type2 == OT_GEOM) { diff --git a/trunk/fcl/test/test_core_broad_phase.cpp b/trunk/fcl/test/test_core_broad_phase.cpp index 64b585aa38fbb67a48fc8a09a0682da30f7c1e4f..5a6f91afee76e7499d0455e8fb746ec7e859ab16 100644 --- a/trunk/fcl/test/test_core_broad_phase.cpp +++ b/trunk/fcl/test/test_core_broad_phase.cpp @@ -126,6 +126,7 @@ TEST(test_core, broad_phase_collision) ASSERT_TRUE(query_res1 == query_res4); } + for(unsigned int i = 0; i < env.size(); ++i) delete env[i]; for(unsigned int i = 0; i < query.size(); ++i)