主要内容

虚拟世界数据类型

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

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

字段数据类型

金宝app®3 d动画™product提供了MATLAB之间的接口®以及Si金宝appmulink环境和虚拟现实场景。通过该接口,您可以设置和获取场景节点字段值。使用这些值要求您理解虚拟世界数据类型和对应的MATLAB数据类型之间的关系。下表说明了虚拟世界数据类型以及如何将它们转换为MATLAB类型。

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

可以使用MATLAB命令读取和保存X3D文件,并将X3D文件与Simulink模型关联。金宝app中有关X3D支持的其他信息金宝app金宝appSimulink 3D动画,请参阅X3D的金宝app支持

有关受支持的X3D规范的信息,请参见金宝appISO / IEC 19775 - 1:2013.有关受支持的X3D编码的信息,请参见金宝appISO / IEC 19776 - 1.3 -:201x而且ISO / IEC 19776 - 2.3 -:201x

VRML类型 描述 金宝appSimulink 3D动画类型

SFBool

布尔值为真或假。

逻辑

SFFloat

32位,浮点值。

SFInt32

32位,带符号整型值。

int32

SFTime

绝对或相对时间值。

SFVec2f

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

单数组(1 × 2)

SFVec3f

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

单数组(1 × 3)

SFColor

用于RGB颜色规范的三个浮点值的向量。

单数组(1 × 3)

SFRotation

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

单数组(1 × 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 × 3)

MFColor

的数组SFColor值。

单数组(n × 3)

MFRotation

的数组SFRotation值。

单数组(n × 4)

MFString

的数组SFString值。

字符阵列(n×1)

MFNode

的数组SFNode值。

vrnode

金宝appSimulink 3D动画软件可以工作与各种MATLAB数据类型,转换他们如果需要:

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

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

为确保与现有模型和应用程序向后兼容,请使用金宝appSimulink 3D动画vrsetpref函数定义数据类型支持。金宝app他们的名字如下:

财产 描述

DataTypeBool

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

DataTypeInt32

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

DataTypeFloat

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

虚拟世界数据类类型

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

VRML数据类 描述

eventIn

节点可以接收的事件

eventOut

节点可以发送的事件

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

exposedField

公共节点成员,保存节点数据

eventIn

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

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

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

eventOut

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

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

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

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

exposedField

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

exposedField类定义了如何对应eventIn而且eventOut的行为。对所有exposedField类中,当事件发生时,字段值将发生变化,并对场景外观进行相应的更改eventOut与新的字段值一起发送。这些更改允许将事件链接到许多节点。

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

相关的话题