Java 类org.lwjgl.assimp.AIString 实例源码

项目:oreon-engine    文件:AssimpStaticModelLoader.java   
private static Material processMaterial(AIMaterial aiMaterial, String texturesDir) {

        AIString path = AIString.calloc();
        Assimp.aiGetMaterialTexture(aiMaterial, Assimp.aiTextureType_DIFFUSE, 0, path, (IntBuffer) null, null, null, null, null, null);
        String textPath = path.dataString();

        Texture diffuseTexture = null;
        if (textPath != null && textPath.length() > 0) {
            diffuseTexture = new Texture();
            diffuseTexture.setPath(texturesDir + "/" + textPath);
        }

        AIColor4D color = AIColor4D.create();
        Vec3f diffuseColor = null;
        int result = Assimp.aiGetMaterialColor(aiMaterial, Assimp.AI_MATKEY_COLOR_AMBIENT, Assimp.aiTextureType_NONE, 0, color);
        if (result == 0) {
            diffuseColor = new Vec3f(color.r(), color.g(), color.b());
        }

        Material material = new Material();
        material.setDiffusemap(diffuseTexture);
        material.setColor(diffuseColor);

        return material;
    }