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 */

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…