Дескриптор 3d модели
Ссылка на дескриптор модели приходит из основного API вместе со списком статусов.
Содержимое дескриптора:
Поле | Тип | Назначение |
|---|---|---|
| строка | Имя объекта (в построении 3d модели не участвует) |
| число | Внутренний номер (в построении 3d модели не участвует |
| число | Версия, увеличивается на 1 при каждом редактировании содержимого |
| список | Список всех файлов, относящихся к дескриптору. Сюда относятся как фрагменты, из которых строится изображение, так и файлы скриптов |
| список | Список скриптов используемых для генерации изображения |
| список | Список предварительно заданных целевых цветов объекта |
Список "files"
Пример:
Состоит из объектов, описывающих ресурсы, необходимые для генераци 3d модели.
Поле | Тип | Назначение |
|---|---|---|
key | строка | Ключ. По этому ключу скрипт ссылается на ресурсы. |
url | строка | Ссылка на ресурс для загрузки. |
hash | строка | Хеш содержимого ресурса. |
Список "scripts"
Пример:
Содержимое этого списка является отправной точкой для построения 3d модели. Т.к. функциональность виртуальной машины, генерирующей модель, может в дальнейшем изменяться, а дескриптор буду загружать как современные, так и устаревшие версии МП - необходим механизм выбора скрипта, гарантированно корректного для каждого конкретного экземпляра МП.
Код, производящий разбор дескриптора, зная версию спецификации которую он поддерживает сам, определяет подходящий ему скрипт, используя поле minRuntime.
Логика использования поля minRuntime следующая:
выбираются объекты у которых
minRuntime <= <реализуемая-кодом-версия-спецификации>среди оставшихся выбирается объект с максимальным значением поля
minRuntime
Пример из МП для Android
Поле script найденного в этом списке объекта будет ключом в списке files.
Список "colors"
Пример:
Список определяет предварительно заданные цвета 3d модели для использования в UI выбора цвета.