vrdVRDevice 类(继承 vrdObject)
表示虚拟现实设备,例如控制器或跟踪器。可以在实际设备与系统连接之前创建此项。设备连接后,VRED 会将物理设备映射到已创建的对象。这样可以提前定义映射。
请注意:在连接实际的硬件设备之前,当您同时调用 vrDeviceService.getVRDevice(name) 和 vrDeviceService.getVRDeviceBySerialNumber(serialNumber) 时,会获得两个不同的 vrdVRDevice 对象。在硬件可用之前,无法验证它们是否属于同一物理设备。
连接硬件后,这些设备节点将在内部解析为正确的物理设备,但它们仍是两个单独的对象实例,因此您不应使用“==”运算符比较这些节点。
使用 vrdVRDevice.getName() 或 vrdVRDevice.getSerialNumber() 比较它们更安全(具体取决于您是使用名称还是序列号来获取节点)。
vrdVRDevice.addVirtualButton(button, physicalButton)向控制器添加虚拟按钮,用于将按钮的位置映射到新信号。
| 参数: |
|
|---|
vrdVRDevice.disableRay()禁用当前激活的定位光线。
vrdVRDevice.enableRay(axis)在控制器之外启用定位光线。
| 参数: | axis (string) - 定位光线的轴。可能的值如下:“x”、“y”、“z”表示控制器坐标系的各个轴,“custom”表示“指针”交互的轴,“teleportaxis”表示“传送”交互的轴,“controllerHandle”表示通过控制器手柄的轴,“leftfinger”和“rightfinger”分别表示通过手可视化的左手和右手食指的轴。 |
|---|
vrdVRDevice.getButtonState(button)获取当前按钮的状态。
| 参数: | button (string) - 按钮的名称。 |
|---|---|
| 返回值: | 当前按钮的状态。如果虚拟现实设备不知道按钮名称,则此项可能无效。 |
| 返回值类型: | vrdButtonState |
vrdVRDevice.getName()获取设备名称
| 返回值: | 设备的名称。如果设备无效,则为空。 |
|---|---|
| 返回值类型: | string |
vrdVRDevice.getNode()获取虚拟现实设备原点下的节点。此节点不是场景图形的一部分。如果应将某个几何体附加到设备,则应使用约束(请参见 vrConstraintService::createParentConstraint(const QList<vrdNode> &,const vrdNode &,const bool))。示例:vr/attachToController.py。
| 返回值: | 虚拟现实设备原点处的节点。 |
|---|---|
| 返回值类型: | vrdNode |
vrdVRDevice.getSerialNumber()获取设备的序列号。
| 返回值: | 序列号。如果已按名称创建设备,但尚未连接物理设备,则此项可能为空。 |
|---|---|
| 返回值类型: | string |
vrdVRDevice.getTrackingMatrix()| 返回值: | 当前跟踪矩阵 |
|---|---|
| 返回值类型: | QMatrix4x4 |
vrdVRDevice.getVisualizationMode()获取当前可视化模式。
| 返回值: | 模式的 ID,0 = 控制器,1 = 手,2 = 控制器和手,3 = 未初始化 |
|---|---|
| 返回值类型: | integer |
vrdVRDevice.getVisualizationNode()获取控制器可视化的根节点。如果控制器当前不可见或跟踪系统未检测到控制器,则此函数将返回空节点。
| 返回值: | 虚拟现实设备的根节点。 |
|---|---|
| 返回值类型: | vrdNode |
vrdVRDevice.getWristOrientationAngle()返回手腕方向的角度。如果手腕处于静止位置,则该值为 0。此角度也用于确定 VRED 内置传送的方向。
| 返回值: | 手腕角度(以度为单位)。 |
|---|---|
| 返回值类型: | float |
vrdVRDevice.isVisible()获取设备的可见性。
| 返回值: | True = 可见,False = 不可见 |
|---|---|
| 返回值类型: | bool |
vrdVRDevice.pick()尝试拾取场景中定位光线与场景交点处的对象。
| 返回值: | 交点数据。 |
|---|---|
| 返回值类型: | vrdRayIntersection |
vrdVRDevice.removeVirtualButton(button, physicalButton)移除与物理按钮相关的虚拟按钮。
| 参数: |
|
|---|
vrdVRDevice.removeVirtualButton(virtualButton, physicalButton)移除与物理按钮相关的虚拟按钮。
| 参数: |
|
|---|
vrdVRDevice.setButtonPressed(state, button)模拟按钮按下。
| 参数: |
|
|---|
vrdVRDevice.setButtonTouched(state, button)模拟按钮按下。
| 参数: |
|
|---|
vrdVRDevice.setTrackingMatrix(matrix)模拟跟踪位置更改。
| 参数: | matrix (QMatrix4x4) - 跟踪矩阵 |
|---|
vrdVRDevice.setVisible(visible)将虚拟现实设备设置为可见或不可见。
| 参数: | visible (bool) - True 表示可见,False 表示不可见。 |
|---|
vrdVRDevice.setVisualizationMode(mode)设置可视化模式。
| 参数: | mode (integer) - 模式的 ID,0 = 控制器,1 = 手,2 = 控制器和手 |
|---|
vrdVRDevice.signal()获取可以触发的信号。
| 返回值: | 信号对象。 |
|---|---|
| 返回值类型: | Q_SLOTvrdVRDeviceSignal |
vrdVRDevice.vibrate(milliseconds, axisId)触发设备的振动功能(如果可用)。
| 参数: |
|
|---|