Пример структурных метаданных glTF

Чтение структурных метаданных из файлов glTF

Этот пример демонстрирует, как читать структурные метаданные из файла glTF, содержащего расширение EXT_structural_metadata, с помощью API Aspose.3D.

Объяснение кода

Следующий код на C# загружает сцену glTF с структурными метаданными, затем считывает и отображает информацию о таблицах свойств и их свойствах:

// Загрузка сцены glTF с EXT_structural_metadata из файла
var scene = Scene.FromFile("ComplexType.gltf");

// Загрузка структурных метаданных из сцены
var metadata = StructuralMetadata.From(scene);
Console.WriteLine("Вывод структурных метаданных из входного файла glTF:");

// Итерация по всем таблицам свойств в метаданных
foreach (var propTable in metadata.PropertyTables)
{
    // Получение метакласса таблицы свойств
    Console.WriteLine($"Таблица свойств {propTable.Name}, имя типа : {propTable.MetaClass.Name}");

    // Итерация по всем свойствам, определенным в метаклассе
    foreach (var propertyDefinition in propTable.MetaClass.Properties)
    {
        // Получение данных свойства, определенных в EXT_structural_metadata
        object property = propTable.Values[propertyDefinition.Name];
        
        // Вывод имени свойства, типа и значения
        Console.WriteLine($"{propertyDefinition.Name} : {propertyDefinition.Type} = {property}");
    }
}

Ключевые понятия

Структурные метаданные

  • Класс StructuralMetadata предоставляет доступ к метаданным, определенным в расширении EXT_structural_metadata
  • Это расширение позволяет хранить семантическую информацию о 3D-объектах
  • Метаданные могут включать таблицы свойств, которые определяют атрибуты для объектов в сцене

Таблицы свойств

  • Представлены классом PropertyTable
  • Каждая таблица имеет:
    • Имя
    • Метакласс, определяющий структуру
    • Значения, содержащие фактические данные свойств

Метаклассы

  • Определены классом MetaClass
  • Описывают структуру таблицы свойств
  • Содержат коллекцию определений свойств
  • Каждое определение указывает:
    • Имя свойства
    • Тип свойства
    • Другие атрибуты метаданных

Доступ к свойствам

  • Свойствам можно получить доступ через словарь Values таблицы свойств
  • Ключом является имя свойства, определенное в метаклассе
  • Значения автоматически преобразуются в соответствующие типы, когда это возможно

Этот пример демонстрирует, как Aspose.3D можно использовать для чтения и обработки структурных метаданных из файлов glTF, позволяя разработчикам получать доступ к богатой семантической информации, хранящейся наряду с 3D-геометрией.