INNER CODE UNIT · C++

meshPath

mosra/magnum-integration · src/Magnum/DartIntegration/ConvertShapeNode.cpp:229

        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++) {
            const Containers::Pair<UnsignedInt, Int>& meshMaterial = meshesMaterials[i].second();

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…