主要内容

虚拟世界数据类型

节点使用VRML和X3D虚拟世界数据类型来定义对象和可以出现在节点字段和事件中的数据类型。

本节解释这些字段数据类型和数据类类型。

字段数据类型

万博1manbetx®3 d动画™产品提供了MATLAB之间的接口®Simu万博1manbetxlink环境和虚拟现实场景。通过这个界面,您可以设置和获取场景节点字段值。使用这些值需要理解虚拟世界数据类型和相应的MATLAB数据类型之间的关系。下表说明了虚拟世界数据类型以及如何将它们转换为MATLAB类型。

有关VRML字段的详细描述,请参见VRML97标准。

您可以使用MATLAB命令读取和保存X3D文件,并将X3D文件与Simulink模型关联起来。万博1manbetx有关X3D支持的其他信息万博1manbetx万博1manbetx仿真软件3 d动画,请参阅X3D的万博1manbetx支持

有关受支持的X3D规范的信息,请参见万博1manbetxISO / IEC 19775 - 1:2013.有关受支持的X3D编码的信息,请参见万博1manbetxISO / IEC 19776 - 1.3 -:201xISO / IEC 19776 - 2.3 -:201x

VRML类型 描述 万博1manbetx仿真软件3 d动画类型

SFBool

布尔值true或false。

逻辑

SFFloat

32位浮点值。

SFInt32

32位带符号整数的值。

int32

SFTime

绝对或相对时间值。

SFVec2f

由两个浮点值组成的向量,通常用于二维坐标。例如,纹理坐标。

单一阵列(1×2)

SFVec3f

通常用于三维坐标的三个浮点值的向量。

单一阵列(1×3)

SFColor

用于RGB颜色说明的三个浮点值的向量。

单一阵列(1×3)

SFRotation

用于指定旋转坐标的四个浮点值的向量(xyz)加上绕该轴的旋转角度。

单一阵列(1-by-4)

SFImage

由浮点数序列表示的二维数组。

uint8阵列(n-by-m-by-3)

SFString

UTF-8编码的字符串。兼容ASCII,允许您使用Unicode®字符。

字符

SFNode

节点的容器。

vrnode

MFFloat

的数组SFFloat值。

单一阵列(n×1)

MFInt32

的数组SFInt32值。

int32阵列(n×1)

MFVec2f

的数组SFVec2f值。

单一阵列(n除以2)

MFVec3f

的数组SFvec3f值。

单一阵列(n-by-3)

MFColor

的数组SFColor值。

单一阵列(n-by-3)

MFRotation

的数组SFRotation值。

单一阵列(n-by-4)

MFString

的数组SFString值。

字符阵列(n×1)

MFNode

的数组SFNode值。

vrnode

万博1manbetx仿真软件3 d动画软件可以与各种MATLAB数据类型工作,转换它们,如果必要:

  • 的输入setfield函数(及其点符号形式)和VR Sink和VR Source块,在输入时接受所有有意义的数据类型。两者都可以根据需要将数据类型转换为自然虚拟世界类型。数据类型包括逻辑、有符号和无符号整数、单字符和双字符。

  • getfield函数及其点表示法形式根据上表返回它们的自然数据类型。

要确保与现有模型和应用程序的向后兼容性,请使用万博1manbetx仿真软件3 d动画vrsetpref函数定义数据类型支持。万博1manbetx他们的名字如下:

财产 描述

DataTypeBool

指定了布尔数据类型vrnode / setfieldvrnode / getfield.有效的值“逻辑”“字符”.如果设置为“逻辑”,虚拟世界布尔数据类型作为逻辑值返回。如果设置为“字符”,虚拟世界布尔返回数据类型“上”“关闭”

DataTypeInt32

指定了int32数据类型vrnode / setfieldvrnode / getfield.有效的值“int32”“双”.如果设置为“int32”,虚拟世界int32数据类型返回为int32.如果设置为“双”,虚拟世界int32数据类型返回为“双”

DataTypeFloat

指定了浮动数据类型vrnode / setfieldvrnode / getfield.有效的值“单一”“双”.如果设置为“单一”,虚拟世界浮动颜色数据类型(大多数虚拟世界字段的类型)返回为“单一”.如果设置为“双”,虚拟世界浮动颜色数据类型返回为“双”

虚拟世界数据类类型

一个节点可以包含四类数据:exposedFieldeventIn,eventOut.这些类定义节点的行为、节点如何存储在内存中,以及它们如何与其他节点和外部对象交互。

VRML数据类 描述

eventIn

节点可以接收的事件

eventOut

节点可以发送的事件

私有节点成员,保存节点数据

exposedField

持有节点数据的公共节点成员

eventIn

通常情况下,eventIn事件对应于节点中的一个字段。无法从节点外部访问节点字段。改变它们的唯一方法是有相应的eventIn

一些节点eventIn事件不对应于该节点的任何字段,但为其提供了额外的功能。例如,变换节点有一个addChildren eventIn.当接收到此事件时,传递的子节点被添加到给定转换的子节点列表中。

可以将此类类型用于向其他对象公开的字段。

eventOut

每当允许发送事件的相应节点字段的值更改其值时,就发送此事件。

对于具有此功能的字段,可以使用此类类型。

可以将字段设置为虚拟世界3D文件中的特定值。通常,该字段是节点的私有字段,只有当节点接收到相应的字段时,才能更改其值eventIn.重要的是要理解,其他节点或外部创作接口不能更改该字段。

类类型用于未公开且不具有eventOut功能。

exposedField

这个功能强大的数据类有很多用途。对于具有这两种属性的字段,可以使用此类类型eventIneventOut功能。对应的替代名称eventIn字段名称总是带set_前缀。公司的名称eventOut字段名称总是带_changed后缀。

exposedField类定义了相应的eventIneventOut的行为。对所有exposedField类中,当事件发生时,字段值更改,场景外观相应更改,以及eventOut与新字段值一起发送。这些更改允许通过多个节点链接事件。

exposedField类可以被脚本访问,而类不是。

相关的话题