Узлы используют 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 |
---|---|---|
| TRUE или FALSE булева значения. |
|
| 32-битное, значение с плавающей точкой. |
|
| 32-битное значение целого числа со знаком. |
|
| Абсолютная или относительная временная стоимость. |
|
| Вектор двух значений с плавающей точкой, которые вы обычно используете для 2D координат. Например, координаты текстуры. | Единый массив (1 2) |
| Вектор трех значений с плавающей точкой, которые вы обычно используете для 3-D координат. | Единый массив (1 3) |
| Вектор трех значений с плавающей точкой вы используете для спецификации цветов RGB. | Единый массив (1 3) |
| Вектор четырех значений с плавающей точкой вы используете для определения координат вращения (x, y, z) оси плюс угол поворота вокруг той оси. | Единый массив (1-by-4) |
| Двумерный массив представлен последовательностью чисел с плавающей запятой. | массив uint8 (n m 3) |
| Представьте в виде строки в кодировании UTF-8. Совместимый с ASCII, позволяя вам использовать символы Unicode®. |
|
| Контейнер для узла. |
|
| Массив значений | Единый массив (n-1) |
| Массив значений | Массив |
| Массив значений | Единый массив (n-2) |
| Массив значений | Единый массив (n-3) |
| Массив значений | Единый массив (n-3) |
| Массив значений | Единый массив (n-4) |
| Массив значений | Массив |
| Массив значений |
|
Программное обеспечение Simulink 3D Animation может работать с различными типами данных MATLAB, преобразовывая их при необходимости:
Входные параметры для функции setfield
(и ее форма записи через точку) и Приемник VR и Исходные блоки VR, примите все значимые типы данных на входе. Оба преобразовывают типы данных в естественные типы виртуального мира по мере необходимости. Типы данных включают logicals, целые числа со знаком и беззнаковое целое, одиночные игры, и удваивается.
Функция getfield
и ее форма записи через точку возвращают их естественные типы данных согласно приведенной выше таблице.
Чтобы гарантировать обратную совместимость существующими моделями и приложениями, используйте Simulink 3D Animation
функция vrsetpref
, чтобы задать поддержку типов данных. Их имена следующие:
Свойство | Описание |
---|---|
| Задает тип данных |
| Задает тип данных |
| Задает тип данных |
Узел может содержать четыре класса данных: field
, exposedField
, eventIn
и eventOut
. Эти классы задают поведение узлов, как узлы хранятся в памяти, и как они могут взаимодействовать с другими узлами и внешними объектами.
Класс данных о VRML | Описание |
---|---|
| Событие, которое может получить узел |
| Событие, которое может отправить узел |
| Частный участник узла, содержа данные об узле |
| Общедоступный участник узла, содержа данные об узле |
Обычно, события eventIn
соответствуют полю в узле. Поля узла не доступны снаружи узла. Единственным путем можно изменить их, при наличии соответствующего eventIn
.
Некоторые узлы имеют события eventIn
, которые не соответствуют никакому полю того узла, но обеспечивают дополнительную функциональность для него. Например, узел Преобразования имеет addChildren eventIn
. Когда это событие получено, дочерние узлы, которые передаются, добавляются к списку дочерних элементов данного, преобразовывают.
Вы используете этот тип класса для полей, которые представлены другим объектам.
Это событие отправляется каждый раз, когда значение соответствующего поля узла, которое позволяет отправлять события, изменяет свое значение.
Вы используете этот тип класса для полей, которые имеют эту функциональность.
Поле может быть установлено в особое значение в виртуальном мире 3D файл. Обычно поле является частным к узлу, и его значение может быть изменено, только если его узел получает соответствующий eventIn
. Важно понять, что другие узлы или внешний авторский интерфейс не могут изменить поле.
Вы используете этот тип класса для полей, которые не представлены и не имеют функциональности eventOut
.
Этот мощный класс данных служит многим целям. Вы используете этот тип класса для полей, которые имеют и eventIn
и функциональность eventOut
. Альтернативное имя соответствующего eventIn
всегда является именем поля с префиксом set_
. Имя eventOut
всегда является именем поля с суффиксом _changed
.
Класс exposedField
задает, как соответствующий eventIn
и eventOut
ведут себя. Для всех классов exposedField
, когда событие имеет место, значение поля изменяется с соответствующим изменением во внешнем виде сцены, и eventOut
отправляется с новым значением поля. Эти изменения позволяют объединение в цепочку событий через многие узлы.
Класс exposedField
доступен для скриптов, тогда как класс field
не.