INNER CODE UNIT · C++
meshesMaterials
mosra/magnum-integration · src/Magnum/DartIntegration/ConvertShapeNode.cpp:242
const Containers::Array<Containers::Pair<UnsignedInt, Containers::Pair<UnsignedInt, Int>>> meshesMaterials = scene->meshesMaterialsAsArray();
Containers::Array<Containers::Optional<Trade::MeshData>> meshes{ValueInit, meshesMaterials.size()};
Containers::Array<Containers::Optional<Trade::PhongMaterialData>> materials{ValueInit, meshesMaterials.size()};
for(UnsignedInt i = 0; i != meshesMaterials.size(); i++) {
const Containers::Pair<UnsignedInt, Int>& meshMaterial = meshesMaterials[i].second();
Containers::Optional<Trade::MeshData> meshData = importer->mesh(meshMaterial.first());
if(!meshData) {
Error{} << "DartIntegration::convertShapeNode(): could not load mesh with index" << meshMaterial.first();
return Containers::NullOpt;
}
if(convertTypes & ConvertShapeType::Material) {
auto colorMode = meshShape->getColorMode();
/* Only get materials from mesh if the appropriate color mode */
if(importer->materialCount() && convertTypes & ConvertShapeType::Material) {
if(colorMode == dart::dynamics::MeshShape::ColorMode::MATERIAL_COLOR) {
/* Assuming AssimpImporter, which has no concept of
unassigned materials */