summaryrefslogtreecommitdiff
path: root/examples/Importers
diff options
context:
space:
mode:
Diffstat (limited to 'examples/Importers')
-rw-r--r--examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp63
1 files changed, 29 insertions, 34 deletions
diff --git a/examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp b/examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp
index 3dd26eb4b..42cc102f4 100644
--- a/examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp
+++ b/examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp
@@ -1284,45 +1284,40 @@ int BulletURDFImporter::convertLinkVisualShapes(int linkIndex, const char* pathP
convertURDFToVisualShapeInternal(&vis, pathPrefix, localInertiaFrame.inverse() * childTrans, vertices, indices, textures,meshData);
- if (m_data->m_flags&CUF_USE_MATERIAL_COLORS_FROM_MTL)
+ bool mtlOverridesUrdfColor = false;
+ if ((meshData.m_flags & B3_IMPORT_MESH_HAS_RGBA_COLOR) &&
+ (meshData.m_flags & B3_IMPORT_MESH_HAS_SPECULAR_COLOR))
{
- if ((meshData.m_flags & B3_IMPORT_MESH_HAS_RGBA_COLOR) &&
- (meshData.m_flags & B3_IMPORT_MESH_HAS_SPECULAR_COLOR))
+ mtlOverridesUrdfColor = (m_data->m_flags & CUF_USE_MATERIAL_COLORS_FROM_MTL) != 0;
+ UrdfMaterialColor matCol;
+ if (m_data->m_flags&CUF_USE_MATERIAL_TRANSPARANCY_FROM_MTL)
{
- UrdfMaterialColor matCol;
-
- if (m_data->m_flags&CUF_USE_MATERIAL_TRANSPARANCY_FROM_MTL)
- {
- matCol.m_rgbaColor.setValue(meshData.m_rgbaColor[0],
- meshData.m_rgbaColor[1],
- meshData.m_rgbaColor[2],
- meshData.m_rgbaColor[3]);
- } else
- {
- matCol.m_rgbaColor.setValue(meshData.m_rgbaColor[0],
- meshData.m_rgbaColor[1],
- meshData.m_rgbaColor[2],
- 1);
- }
-
- matCol.m_specularColor.setValue(meshData.m_specularColor[0],
- meshData.m_specularColor[1],
- meshData.m_specularColor[2]);
- m_data->m_linkColors.insert(linkIndex, matCol);
- }
- } else
- {
- if (matPtr)
+ matCol.m_rgbaColor.setValue(meshData.m_rgbaColor[0],
+ meshData.m_rgbaColor[1],
+ meshData.m_rgbaColor[2],
+ meshData.m_rgbaColor[3]);
+ } else
{
- UrdfMaterial* const mat = *matPtr;
- //printf("UrdfMaterial %s, rgba = %f,%f,%f,%f\n",mat->m_name.c_str(),mat->m_rgbaColor[0],mat->m_rgbaColor[1],mat->m_rgbaColor[2],mat->m_rgbaColor[3]);
- UrdfMaterialColor matCol;
- matCol.m_rgbaColor = mat->m_matColor.m_rgbaColor;
- matCol.m_specularColor = mat->m_matColor.m_specularColor;
- m_data->m_linkColors.insert(linkIndex, matCol);
+ matCol.m_rgbaColor.setValue(meshData.m_rgbaColor[0],
+ meshData.m_rgbaColor[1],
+ meshData.m_rgbaColor[2],
+ 1);
}
- }
+ matCol.m_specularColor.setValue(meshData.m_specularColor[0],
+ meshData.m_specularColor[1],
+ meshData.m_specularColor[2]);
+ m_data->m_linkColors.insert(linkIndex, matCol);
+ }
+ if (matPtr && !mtlOverridesUrdfColor)
+ {
+ UrdfMaterial* const mat = *matPtr;
+ //printf("UrdfMaterial %s, rgba = %f,%f,%f,%f\n",mat->m_name.c_str(),mat->m_rgbaColor[0],mat->m_rgbaColor[1],mat->m_rgbaColor[2],mat->m_rgbaColor[3]);
+ UrdfMaterialColor matCol;
+ matCol.m_rgbaColor = mat->m_matColor.m_rgbaColor;
+ matCol.m_specularColor = mat->m_matColor.m_specularColor;
+ m_data->m_linkColors.insert(linkIndex, matCol);
+ }
}
}
if (vertices.size() && indices.size())