diff --git a/collada_urdf/src/urdf_to_collada.cpp b/collada_urdf/src/urdf_to_collada.cpp index 1432b5d..3b20da6 100644 --- a/collada_urdf/src/urdf_to_collada.cpp +++ b/collada_urdf/src/urdf_to_collada.cpp @@ -752,11 +752,24 @@ public: for (map >::const_iterator i = robot_->links_.begin(); i != robot_->links_.end(); i++) { boost::shared_ptr urdf_link = i->second; - + map::const_iterator j = geometry_ids_.find(urdf_link->name); if (j != geometry_ids_.end()) { string geometry_id = j->second; - addEffect(geometry_id, ambient, diffuse); + + domEffectRef effect = addEffect(geometry_id, ambient, diffuse); + + // + domMaterialRef material = daeSafeCast(materialsLib_->createAndPlace(COLLADA_ELEMENT_MATERIAL)); + string material_id = geometry_id + string(".mat"); + material->setId(material_id.c_str()); + { + // + domInstance_effectRef instance_effect = daeSafeCast(material->createAndPlace(COLLADA_ELEMENT_INSTANCE_EFFECT)); + string effect_id(effect->getId()); + instance_effect->setUrl((string("#") + effect_id).c_str()); + } + // } } } @@ -765,7 +778,8 @@ public: { // domEffectRef effect = daeSafeCast(effectsLib_->createAndPlace(COLLADA_ELEMENT_EFFECT)); - effect->setId((geometry_id + string(".eff")).c_str()); + string effect_id = geometry_id + string(".eff"); + effect->setId(effect_id.c_str()); { // domProfile_commonRef profile = daeSafeCast(effect->createAndPlace(COLLADA_ELEMENT_PROFILE_COMMON));