Узлы используют VRML и X3D типы данных виртуального мира, чтобы задать объекты и типы данных, которые могут появиться в полях узлов и событиях.
В этом разделе описываются эти типы данных полей и типы классов данных.
Simulink® 3D Animation™ продукт обеспечивает интерфейс между MATLAB® и окружение Simulink и сцены виртуальной реальности. С помощью этого интерфейса можно задать и получить значения полей узла сцены. Работа с этими значениями требует понимания связи между типами данных виртуального мира и соответствующими типами данных MATLAB. Следующая таблица иллюстрирует типы данных виртуального мира и их преобразование в типы MATLAB и из них.
Подробное описание полей VRML см. в VRML97 Standard.
Можно использовать команды MATLAB для чтения и сохранения файлов X3D и для связи файлов X3D с моделями Simulink. Для получения дополнительной информации о поддержке X3D в Simulink 3D Animation, смотрите X3D Support.
Информацию о поддерживаемых спецификациях X3D см. в стандарте ISO/IEC 19975-1: 2013. Для получения информации о поддерживаемой кодировке X3D смотрите ISO/IEC 19776-1,3: 201x и ISO/IEC 19776-2,3: 201x .
Тип VRML | Описание | Simulink 3D Animation |
---|---|---|
| Логическое значение true или false. |
|
| 32-битное значение с плавающей точкой. |
|
| 32-битное значение со знаком-целым числом. |
|
| Абсолютное или относительное значение времени. |
|
| Вектор двух значений с плавающей точкой, которые вы обычно используете для 2-D координат. Для примера - координаты текстуры. | Один массив (1 на 2) |
| Вектор из трех значений с плавающей точкой, которые вы обычно используете для 3-D координат. | Один массив (1 на 3) |
| Вектор трех значений с плавающей точкой, используемых для спецификации цвета RGB. | Один массив (1 на 3) |
| Вектор четырех значений с плавающей точкой, которые вы используете для задания координат поворота (x, y, z) оси плюс угол поворота вокруг этой оси. | Один массив (1 на 4) |
| Двумерный массив, представленный последовательностью чисел с плавающей запятой. | массив uint8 (n-на-m-на-3) |
| Строка в UTF-8 кодировке. Совместимость с ASCII, позволяющая использовать Юникод® персонажи. |
|
| Контейнер для узла. |
|
| Массив | Один массив (n-на-1) |
| Массив |
|
| Массив | Один массив (n-на-2) |
| Массив | Один массив (n-на-3) |
| Массив | Один массив (n-на-3) |
| Массив | Один массив (n-на-4) |
| Массив |
|
| Массив |
|
Программа Simulink 3D Animation может работать с различными типами данных MATLAB, преобразуя их при необходимости:
Входы для setfield
функция (и ее форма записи через точку) и блоки VR Sink и VR Source принимают все значимые типы данных при входе. Оба типа данных преобразуются в естественные типы виртуального мира по мере необходимости. Типы данных включают логики, подписанные и беззнаковые целые числа, синглы и двойные числа.
The getfield
функция и ее форма записи через точку возвращают свои природные типы данных в соответствии с таблицей выше.
Чтобы гарантировать обратную совместимость с существующими моделями и приложениями, используйте Simulink 3D Animation
vrsetpref
функция для определения поддержки типа данных. Их имена следующие:
Свойство | Описание |
---|---|
| Задает |
| Задает |
| Задает |
Узел может содержать четыре класса данных: field
, exposedField
, eventIn
, и eventOut
. Эти классы определяют поведение узлов, как узлы хранятся в памяти и как они могут взаимодействовать с другими узлами и внешними объектами.
Класс данных VRML | Описание |
---|---|
| Событие, которое может получить узел |
| Событие, которое может отправить узел |
| Частный узел представителя, содержащий данные узла |
| Общий узел представителя, содержит данные узла |
Обычно eventIn
события соответствуют полю в узле. Поля узла недоступны снаружи узла. Единственный способ изменить их - это иметь соответствующее eventIn
.
Некоторые узлы имеют eventIn
события, которые не соответствуют ни одному полю этого узла, но обеспечивают для него дополнительные функциональные возможности. Для примера узел Преобразования имеет addChildren eventIn
. Когда это событие получено, переданные дочерние узлы добавляются к списку дочерних элементов данного преобразования.
Этот тип класса используется для полей, которые подвержены воздействию других объектов.
Это событие отправляется всякий раз, когда значение соответствующего поля узла, которое позволяет отправлять события, изменяет его значение.
Этот тип класса используется для полей с этой функциональностью.
Поле может быть установлено на конкретное значение в файле 3D виртуального мира. Как правило, поле является частным для узла, и его значение может быть изменено только, если его узел получает соответствующее eventIn
. Важно понимать, что другие узлы или внешний авторский интерфейс не могут изменить поле.
Этот тип класса используется для полей, которые не доступны и не имеют eventOut
функциональность.
Этот мощный класс данных служит многим целям. Этот тип класса используется для полей с обоими eventIn
и eventOut
функциональность. Альтернативное имя соответствующего eventIn
всегда является именем поля с set_
префикс. Область имени eventOut
всегда является именем поля с _changed
суффикс.
The exposedField
класс определяет, как соответствующее eventIn
и eventOut
вести себя. Для всех exposedField
классы, когда происходит событие, значение поля изменяется с соответствующим изменением внешнего вида сцены и eventOut
отправляется с новым значением поля. Эти изменения позволяют связывать события через многие узлы.
The exposedField
класс доступен для скриптов, в то время как field
класс не является.