Типы данных виртуального мира

Узлы используют VRML и типы данных виртуального мира X3D, чтобы задать объекты и типы данных, которые могут появиться в полях узла и событиях.

Этот раздел объясняет эти полевые типы данных и типы классов данных.

Полевые типы данных

Продукт Simulink® 3D Animation™ обеспечивает интерфейс между MATLAB® и сценами виртуальной реальности и окружением Simulink. С этим интерфейсом можно установить и получить значения полей узла сцены. Работа с этими значениями требует, чтобы вы изучили отношение между типами данных виртуального мира и соответствующими типами данных MATLAB. Следующая таблица иллюстрирует типы данных виртуального мира и как они преобразованы в и от типов MATLAB.

Для подробного описания полей VRML обратитесь к Стандарту VRML97.

Можно использовать команды MATLAB, чтобы считать и сохранить файлы X3D и сопоставить файлы X3D с моделями Simulink. Для получения дополнительной информации о поддержке X3D в Simulink 3D Animation см. Поддержку X3D.

Для получения информации о поддержанной спецификации X3D смотрите 19775-1:2013 ISO/IEC. Для получения информации о поддерживаемом кодировании X3D смотрите 19776-1.3:201x ISO/IEC и 19776-2.3:201x ISO/IEC.

Тип VRMLОписаниеТип Simulink 3D Animation

SFBool

TRUE или FALSE булева значения.

logical

SFFloat

32-битное, значение с плавающей точкой.

single

SFInt32

32-битное значение целого числа со знаком.

int32

SFTime

Абсолютная или относительная временная стоимость.

double

SFVec2f

Вектор из двух значений с плавающей точкой, которые вы обычно используете для 2D координат. Например, координаты текстуры.

Единый массив (1 2)

SFVec3f

Вектор из трех значений с плавающей точкой, которые вы обычно используете для 3-D координат.

Единый массив (1 3)

SFColor

Вектор из трех значений с плавающей точкой вы используете для спецификации цветов RGB.

Единый массив (1 3)

SFRotation

Вектор из четырех значений с плавающей точкой вы используете для определения координат вращения (x, y, z) оси плюс угол поворота вокруг той оси.

Единый массив (1-by-4)

SFImage

Двумерный массив представлен последовательностью чисел с плавающей запятой.

массив uint8 (n m 3)

SFString

Представьте в виде строки в кодировании UTF-8. Совместимый с ASCII, позволяя вам использовать символы Unicode®.

char

SFNode

Контейнер для узла.

vrnode

MFFloat

Массив SFFloat значения.

Единый массив (n-1)

MFInt32

Массив SFInt32 значения.

int32 массив (n-1)

MFVec2f

Массив SFVec2f значения.

Единый массив (n-2)

MFVec3f

Массив SFvec3f значения.

Единый массив (n-3)

MFColor

Массив SFColor значения.

Единый массив (n-3)

MFRotation

Массив SFRotation значения.

Единый массив (n-4)

MFString

Массив SFString значения.

char массив (n-1)

MFNode

Массив SFNode значения.

vrnode

Программное обеспечение Simulink 3D Animation может работать с различными типами данных MATLAB, преобразовывая их при необходимости:

  • Входные параметры для setfield функция (и ее форма записи через точку) и Приемник VR и Исходные блоки VR, примите все значимые типы данных на входе. Оба преобразуют типы данных в естественные типы виртуального мира по мере необходимости. Типы данных включают logicals, целые числа со знаком и беззнаковое целое, одиночные игры, и удваивается.

  • getfield функционируйте и его форма записи через точку возвращают их естественные типы данных согласно приведенной выше таблице.

Чтобы гарантировать обратную совместимость существующими моделями и приложениями, используйте Simulink 3D Animation vrsetpref функция, чтобы задать поддержку типов данных. Их имена следующие:

СвойствоОписание

DataTypeBool

Задает boolean тип данных для vrnode/setfield и vrnode/getfield. Допустимыми значениями является 'logical' и 'char'. Если установлено в 'logical', виртуальный мир boolean тип данных возвращен как логическое значение. Если установлено в 'char', виртуальный мир boolean типом данных является возвращенный 'on' или 'off'.

DataTypeInt32

Задает int32 тип данных для vrnode/setfield и vrnode/getfield. Допустимыми значениями является 'int32' и 'double'. Если установлено в 'int32', виртуальный мир int32 тип данных возвращен как int32. Если установлено в 'double', виртуальный мир int32 тип данных возвращен как 'double'.

DataTypeFloat

Задает float тип данных для vrnode/setfield и vrnode/getfield. Допустимыми значениями является 'single' и 'double'. Если установлено в 'single', виртуальный мир float и color типы данных (типы большинства полей виртуального мира) возвращены как 'single'. Если установлено в 'double', виртуальный мир float и color типы данных возвращены как 'double'.

Типы классов данных о виртуальном мире

Узел может содержать четыре класса данных: field, exposedField, eventIn, и eventOut. Эти классы задают поведение узлов, как узлы хранятся в памяти, и как они могут взаимодействовать с другими узлами и внешними объектами.

Класс данных о VRMLОписание

eventIn

Событие, которое может получить узел

eventOut

Событие, которое может отправить узел

field

Частный член узла, содержа данные об узле

exposedField

Общедоступный член узла, содержа данные об узле

обработка событий

Обычно, eventIn события соответствуют полю в узле. Поля узла не доступны снаружи узла. Единственным путем можно изменить их, при наличии соответствующего eventIn.

Некоторые узлы имеют eventIn события, которые не соответствуют никакому полю того узла, но обеспечивают дополнительную функциональность для него. Например, узел Преобразования имеет addChildren eventIn. Когда это событие получено, дочерние узлы, которые передаются, добавляются к списку дочерних элементов данного, преобразовывают.

Вы используете этот тип класса для полей, которые отсоединены другим объектам.

eventOut

Это событие отправляется каждый раз, когда значение соответствующего поля узла, которое позволяет отправлять события, изменяет свое значение.

Вы используете этот тип класса для полей, которые имеют эту функциональность.

поле

Поле может быть установлено в особое значение в виртуальном мире 3D файл. Обычно поле является частным к узлу, и его значение может быть изменено, только если его узел получает соответствующий eventIn. Важно изучить, что другие узлы или внешний авторский интерфейс не могут изменить поле.

Вы используете этот тип класса для полей, которые не отсоединены и не имеют eventOut функциональность.

exposedField

Этот мощный класс данных служит многим целям. Вы используете этот тип класса для полей, которые имеют оба eventIn и eventOut функциональность. Альтернативное имя соответствующего eventIn всегда имя поля с set_ префикс. Имя eventOut всегда имя поля с _changed суффикс.

exposedField класс задает как соответствующий eventIn и eventOut вести себя. Для всего exposedField классы, когда событие имеет место, значение поля, изменяются с соответствующим изменением во внешнем виде сцены и eventOut отправляется с новым значением поля. Эти изменения позволяют объединение в цепочку событий через многие узлы.

exposedField класс доступен для скриптов, тогда как field класс не.

Похожие темы