remove visual and collision if there is no vertices
This commit is contained in:
parent
92e7b07c98
commit
0870c49be0
|
@ -1146,10 +1146,15 @@ protected:
|
||||||
//viss->push_back(plink->visual);
|
//viss->push_back(plink->visual);
|
||||||
//plink->visual_groups.insert(std::make_pair("default", viss));
|
//plink->visual_groups.insert(std::make_pair("default", viss));
|
||||||
|
|
||||||
// collision
|
if( !plink->visual->geometry ) {
|
||||||
plink->collision.reset(new Collision());
|
plink->visual.reset();
|
||||||
plink->collision->geometry = plink->visual->geometry;
|
plink->collision.reset();
|
||||||
plink->collision->origin = plink->visual->origin;
|
} else {
|
||||||
|
// collision
|
||||||
|
plink->collision.reset(new Collision());
|
||||||
|
plink->collision->geometry = plink->visual->geometry;
|
||||||
|
plink->collision->origin = plink->visual->origin;
|
||||||
|
}
|
||||||
|
|
||||||
// collision_groups deprecated
|
// collision_groups deprecated
|
||||||
//boost::shared_ptr<std::vector<boost::shared_ptr<Collision > > > cols;
|
//boost::shared_ptr<std::vector<boost::shared_ptr<Collision > > > cols;
|
||||||
|
@ -1162,26 +1167,22 @@ protected:
|
||||||
|
|
||||||
boost::shared_ptr<Geometry> _CreateGeometry(const std::string& name, const std::list<GEOMPROPERTIES>& listGeomProperties)
|
boost::shared_ptr<Geometry> _CreateGeometry(const std::string& name, const std::list<GEOMPROPERTIES>& listGeomProperties)
|
||||||
{
|
{
|
||||||
boost::shared_ptr<Mesh> geometry(new Mesh());
|
|
||||||
geometry->type = Geometry::MESH;
|
|
||||||
geometry->scale.x = 1;
|
|
||||||
geometry->scale.y = 1;
|
|
||||||
geometry->scale.z = 1;
|
|
||||||
|
|
||||||
std::vector<std::vector<Vector3> > vertices;
|
std::vector<std::vector<Vector3> > vertices;
|
||||||
std::vector<std::vector<int> > indices;
|
std::vector<std::vector<int> > indices;
|
||||||
std::vector<Color> ambients;
|
std::vector<Color> ambients;
|
||||||
std::vector<Color> diffuses;
|
std::vector<Color> diffuses;
|
||||||
unsigned int index;
|
unsigned int index, vert_counter;
|
||||||
vertices.resize(listGeomProperties.size());
|
vertices.resize(listGeomProperties.size());
|
||||||
indices.resize(listGeomProperties.size());
|
indices.resize(listGeomProperties.size());
|
||||||
ambients.resize(listGeomProperties.size());
|
ambients.resize(listGeomProperties.size());
|
||||||
diffuses.resize(listGeomProperties.size());
|
diffuses.resize(listGeomProperties.size());
|
||||||
index = 0;
|
index = 0;
|
||||||
|
vert_counter = 0;
|
||||||
FOREACHC(it, listGeomProperties) {
|
FOREACHC(it, listGeomProperties) {
|
||||||
vertices[index].resize(it->vertices.size());
|
vertices[index].resize(it->vertices.size());
|
||||||
for(size_t i = 0; i < it->vertices.size(); ++i) {
|
for(size_t i = 0; i < it->vertices.size(); ++i) {
|
||||||
vertices[index][i] = _poseMult(it->_t, it->vertices[i]);
|
vertices[index][i] = _poseMult(it->_t, it->vertices[i]);
|
||||||
|
vert_counter++;
|
||||||
}
|
}
|
||||||
indices[index].resize(it->indices.size());
|
indices[index].resize(it->indices.size());
|
||||||
for(size_t i = 0; i < it->indices.size(); ++i) {
|
for(size_t i = 0; i < it->indices.size(); ++i) {
|
||||||
|
@ -1204,6 +1205,18 @@ protected:
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (vert_counter == 0) {
|
||||||
|
boost::shared_ptr<Mesh> ret;
|
||||||
|
ret.reset();
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
boost::shared_ptr<Mesh> geometry(new Mesh());
|
||||||
|
geometry->type = Geometry::MESH;
|
||||||
|
geometry->scale.x = 1;
|
||||||
|
geometry->scale.y = 1;
|
||||||
|
geometry->scale.z = 1;
|
||||||
|
|
||||||
// have to save the geometry into individual collada 1.4 files since URDF does not allow triangle meshes to be specified
|
// have to save the geometry into individual collada 1.4 files since URDF does not allow triangle meshes to be specified
|
||||||
std::stringstream daedata;
|
std::stringstream daedata;
|
||||||
daedata << str(boost::format("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\
|
daedata << str(boost::format("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\
|
||||||
|
|
Loading…
Reference in New Issue