diff --git a/src/multibody/geometry.hpp b/src/multibody/geometry.hpp index dbcd221e2ffb1aa66a189bef4775c73c91107d2c..2cf909fd0e9f58bb1b0a9272f68f690def9d340b 100644 --- a/src/multibody/geometry.hpp +++ b/src/multibody/geometry.hpp @@ -244,35 +244,11 @@ namespace se3 /// Outer objects can be seen as geometry objects that may often be /// obstacles to the Inner objects of given joint std::map < JointIndex, GeomIndexList > outerObjects; - - GeometryData(const GeometryModel & modelGeom) - : model_geom(modelGeom) - , oMg(model_geom.ngeoms) - , activeCollisionPairs(modelGeom.collisionPairs.size(), true) - , distanceRequest (true, 0, 0, fcl::GST_INDEP) - , distance_results(modelGeom.collisionPairs.size()) - , collisionRequest (1, false, false, 1, false, true, fcl::GST_INDEP) - , collision_results(modelGeom.collisionPairs.size()) - , radius() - , collisionPairIndex(-1) - , innerObjects() - , outerObjects() - { - collisionObjects.reserve(modelGeom.geometryObjects.size()); - BOOST_FOREACH( const GeometryObject & geom, modelGeom.geometryObjects) - { collisionObjects.push_back - (fcl::CollisionObject(geom.collision_geometry)); } - fillInnerOuterObjectMaps(); - } -#else - GeometryData(const GeometryModel & modelGeom) - : model_geom(modelGeom) - , oMg(model_geom.ngeoms) - {} #endif // WITH_HPP_FCL - + GeometryData(const GeometryModel & modelGeom); ~GeometryData() {}; + #ifdef WITH_HPP_FCL /// Fill both innerObjects and outerObjects maps, from vectors collisionObjects and diff --git a/src/multibody/geometry.hxx b/src/multibody/geometry.hxx index 7c87b432a2b79218c1c12f17e5bd7159fe88c30f..c9ec703a481761dc6c8215cc1aa789b1f2fa0ba6 100644 --- a/src/multibody/geometry.hxx +++ b/src/multibody/geometry.hxx @@ -31,6 +31,30 @@ namespace se3 { + inline GeometryData::GeometryData(const GeometryModel & modelGeom) + : model_geom(modelGeom) + , oMg(model_geom.ngeoms) + +#ifdef WITH_HPP_FCL + , activeCollisionPairs(modelGeom.collisionPairs.size(), true) + , distanceRequest (true, 0, 0, fcl::GST_INDEP) + , distance_results(modelGeom.collisionPairs.size()) + , collisionRequest (1, false, false, 1, false, true, fcl::GST_INDEP) + , collision_results(modelGeom.collisionPairs.size()) + , radius() + , collisionPairIndex(-1) + , innerObjects() + , outerObjects() + { + collisionObjects.reserve(modelGeom.geometryObjects.size()); + BOOST_FOREACH( const GeometryObject & geom, modelGeom.geometryObjects) + { collisionObjects.push_back + (fcl::CollisionObject(geom.collision_geometry)); } + fillInnerOuterObjectMaps(); + } +#else + {} +#endif // WITH_HPP_FCL inline GeomIndex GeometryModel::addGeometryObject(const GeometryObject& object) {