INNER CODE UNIT · C++
aiMesh
mosra/magnum-integration · src/Magnum/DartIntegration/ConvertShapeNode.cpp:228
const aiScene* aiMesh = meshShape->getMesh();
Containers::String meshPath = Utility::Path::split(meshShape->getMeshPath()).first();
bool loaded = importer->openState(aiMesh, meshPath);
if(!loaded || importer->meshCount() < 1) {
Error{} << "DartIntegration::convertShapeNode(): could not load aiScene or there is no mesh in it";
return Containers::NullOpt;
}
/* Import all meshes from the scene. Assuming AssimpImporter, which has
no concept of multiple scenes */
CORRADE_INTERNAL_ASSERT(importer->sceneCount() == 1);
const Containers::Optional<Trade::SceneData> scene = importer->scene(0);
CORRADE_INTERNAL_ASSERT(scene);
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++) {