• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# SceneType
2<!--Kit: ArkGraphics 3D-->
3<!--Subsystem: Graphics-->
4<!--Owner: @zzhao0-->
5<!--Designer: @zdustc-->
6<!--Tester: @zhangyue283-->
7<!--Adviser: @ge-yafang-->
8
9本模块提供3D图形中常用的数据类型。
10
11> **说明:**
12> - 本模块首批接口从API version 12开始支持,后续版本的新增接口,采用上角标标记接口的起始版本。
13
14## 导入模块
15```ts
16import { Vec2, Vec3, Vec4, Quaternion, Aabb, Color, Rect, GeometryType, PrimitiveTopology, CustomGeometry, CubeGeometry, PlaneGeometry, SphereGeometry, Position3, Rotation3, Scale3 } from '@kit.ArkGraphics3D';
17```
18
19## Vec2
20二维向量,通常用于表示2D空间中的点或方向,由x和y两个分量组成。
21
22**系统能力:** SystemCapability.ArkUi.Graphics3D
23| 名称 | 类型 | 只读 | 可选 | 说明 |
24| ---- | ---- | ---- | ---- | ---- |
25| x | number | 否 | 否 | x轴分量,取值范围是实数。 |
26| y | number | 否 | 否 | y轴分量,取值范围是实数。|
27
28## Vec3
29三维向量,通常用于表示3D空间中的点、方向或向量变换,由x、y和z三个分量组成。
30
31**系统能力:** SystemCapability.ArkUi.Graphics3D
32| 名称 | 类型 | 只读 | 可选 | 说明 |
33| ---- | ---- | ---- | ---- | ---- |
34| x | number | 否 | 否 | x轴分量,取值范围是实数。 |
35| y | number | 否 | 否 | y轴分量,取值范围是实数。 |
36| z | number | 否 | 否 | z轴分量,取值范围是实数。 |
37
38## Vec4
39四维向量,通常用于表示4D空间中的点、方向或向量变换,由x、y、z和w四个分量组成,增加第四个分量为各种计算和变换增加了规整性和便捷性。
40
41**系统能力:** SystemCapability.ArkUi.Graphics3D
42| 名称 | 类型 | 只读 | 可选 | 说明 |
43| ---- | ---- | ---- | ---- | ---- |
44| x | number | 否 | 否 | x轴分量,取值范围是实数。 |
45| y | number | 否 | 否 | y轴分量,取值范围是实数。 |
46| z | number | 否 | 否 | z轴分量,取值范围是实数。 |
47| w | number | 否 | 否 | w轴分量,取值范围是实数。 |
48
49## Quaternion
50用于表示3D空间中旋转的数学结构。与传统的欧拉角相比,四元数在数值稳定性和避免万向节锁方面具有优势。
51
52**系统能力:** SystemCapability.ArkUi.Graphics3D
53| 名称 | 类型 | 只读 | 可选 | 说明 |
54| ---- | ---- | ---- | ---- | ---- |
55| x | number | 否 | 否 | x轴分量,取值范围是实数。 |
56| y | number | 否 | 否 | y轴分量,取值范围是实数。 |
57| z | number | 否 | 否 | z轴分量,取值范围是实数。 |
58| w | number | 否 | 否 | w轴分量,取值范围是实数。 |
59
60## Aabb
61轴对齐边界盒,主要用于判断空间中的物体是否重叠。
62
63**系统能力:** SystemCapability.ArkUi.Graphics3D
64| 名称 | 类型 | 只读 | 可选 | 说明 |
65| ---- | ---- | ---- | ---- | ---- |
66| aabbMin | [Vec3](#vec3) | 否 | 否 | 轴对齐边界盒的小值点。 |
67| aabbMax | [Vec3](#vec3) | 否 | 否 | 轴对齐边界盒的大值点。 |
68
69## Color
70用于表示RGBA格式的颜色,包含四个分量,依次为红色、绿色、蓝色和透明度。
71
72**系统能力:** SystemCapability.ArkUi.Graphics3D
73| 名称 | 类型 | 只读 | 可选 | 说明 |
74| ---- | ---- | ---- | ---- | ---- |
75| r | number | 否 | 否 | 红色分量,取值范围是[0, 1]。 |
76| g | number | 否 | 否 | 绿色分量,取值范围是[0, 1]。 |
77| b | number | 否 | 否 | 蓝色分量,取值范围是[0, 1]。 |
78| a | number | 否 | 否 | 透明度分量,取值范围是[0, 1]。 |
79
80## Rect
81用于表示平面中的矩形。
82
83**系统能力:** SystemCapability.ArkUi.Graphics3D
84| 名称 | 类型 | 只读 | 可选 | 说明 |
85| ---- | ---- | ---- | ---- | ---- |
86| x | number | 否 | 否 | 矩形左下角x轴分量,单位为所属坐标系的单位长度,取值为任意实数,具体范围依赖场景坐标系设置。 |
87| y | number | 否 | 否 | 矩形左下角y轴分量,单位为所属坐标系的单位长度,取值为任意实数,具体范围依赖场景坐标系设置。 |
88| width | number | 否 | 否 | 矩形宽度,单位为所属坐标系的单位长度,有效取值范围大于0。 |
89| height | number | 否 | 否 | 矩形高度,单位为所属坐标系的单位长度,有效取值范围大于0。 |
90## GeometryType<sup>18+</sup>
91几何类型枚举,用于指定不同的几何类型。
92
93**系统能力:** SystemCapability.ArkUi.Graphics3D
94
95| 名称 | 值 | 说明 |
96| ---- | ---- | ---- |
97| CUSTOM | 0 | 自定义几何体类型。 |
98| CUBE | 1 | 立方体类型。 |
99| PLANE | 2 | 平面类型。 |
100| SPHERE | 3 | 球体类型。 |
101
102## GeometryDefinition<sup>18+</sup>
103几何类型定义抽象类,用于解释特定几何类型的属性。
104
105**系统能力:** SystemCapability.ArkUi.Graphics3D
106| 名称 | 类型 | 只读 | 可选 | 说明 |
107| ---- | ---- | ---- | ---- | ---- |
108| geometryType | [GeometryType](#geometrytype18)| 是 | 否 | 定义不同的几何类型。 |
109
110## PrimitiveTopology<sup>18+</sup>
111 图元拓扑枚举,在顶点处理过程中,指定顶点的不同处理方式。
112
113**系统能力:** SystemCapability.ArkUi.Graphics3D
114
115| 名称 | 值 | 说明 |
116| ---- | ---- | ---- |
117| TRIANGLE_LIST | 0 | 由不相交的顶点集合构成不同的三角形。 |
118| TRIANGLE_STRIP | 1 | 每个顶点和前一个三角形的一条边构成新的三角形。 |
119
120## CustomGeometry<sup>18+</sup>
121自定义几何类型,继承自[GeometryDefinition](#geometrydefinition18)。
122
123**系统能力:** SystemCapability.ArkUi.Graphics3D
124
125| 名称 | 类型 | 只读 | 可选 | 说明 |
126| ---- | ---- | ---- | ---- | ---- |
127| topology | [PrimitiveTopology](#primitivetopology18)| 否 | 是 | 三角形图元的解析方式,默认值为TRIANGLE_LIST。 |
128| vertices | [Vec3](#vec3)[] | 否 | 否 | 模型的顶点数组。 |
129| indices | number[] | 否 | 是 | 顶点索引数组,数组中元素的取值范围大于等于0,默认值为undefined。 |
130| normals | [Vec3](#vec3)[] | 否 | 是 | 顶点数组对应的法向量数组,默认值为undefined。 |
131| uvs | [Vec2](#vec2)[] | 否 | 是 | 顶点数组对应的UV坐标数组,默认值为undefined。 |
132| colors | [Color](#color)[] | 否 | 是 | 顶点数组对应的颜色数组,默认值为undefined。 |
133
134## CubeGeometry<sup>18+</sup>
135立方体几何类型,继承自[GeometryDefinition](#geometrydefinition18)。
136
137**系统能力:** SystemCapability.ArkUi.Graphics3D
138
139| 名称 | 类型 | 只读 | 可选 | 说明 |
140| ---- | ---- | ---- | ---- | ---- |
141| size | [Vec3](#vec3) | 否 | 否 | 立方体的宽、高和深度,表示立方体的大小。 |
142
143## PlaneGeometry<sup>18+</sup>
144平面几何类型,继承自[GeometryDefinition](#geometrydefinition18)。
145
146**系统能力:** SystemCapability.ArkUi.Graphics3D
147
148| 名称 | 类型 | 只读 | 可选 | 说明 |
149| ---- | ---- | ---- | ---- | ---- |
150| size | [Vec2](#vec2) | 否 | 否 | 平面的宽、高,表示平面的大小。 |
151
152## SphereGeometry<sup>18+</sup>
153球体几何类型,继承自[GeometryDefinition](#geometrydefinition18)。
154
155**系统能力:** SystemCapability.ArkUi.Graphics3D
156
157| 名称 | 类型 | 只读 | 可选 | 说明 |
158| ---- | ---- | ---- | ---- | ---- |
159| radius | number | 否 | 否 | 球体半径,单位为世界坐标系下的场景单位(比如cm、m、km等),取值范围大于0。 |
160| segmentCount | number | 否 | 否 | 在球体上以经纬度分割的段数,取值范围大于0。 |
161
162## Position3
163type Position3 = Vec3
164
165用于表示3维空间中物体的位置,是[Vec3](#vec3)类型。
166
167**系统能力:** SystemCapability.ArkUi.Graphics3D
168
169| 类型  | 说明 |
170| ---- | ---- |
171| [Vec3](#vec3) | 类型为三维向量,可取任意值。 |
172
173## Rotation3
174type Rotation3 = Vec3
175
176用于表示3维空间中物体的旋转,是[Vec3](#vec3)类型。
177
178**系统能力:** SystemCapability.ArkUi.Graphics3D
179
180| 类型  | 说明 |
181| ---- | ---- |
182| [Vec3](#vec3) | 类型为三维向量,可取任意值。 |
183
184## Scale3
185type Scale3 = Vec3
186
187用于表示3维空间中物体的缩放,是[Vec3](#vec3)类型。
188
189**系统能力:** SystemCapability.ArkUi.Graphics3D
190
191| 类型 | 说明 |
192| ---- | ---- |
193| [Vec3](#vec3) | 类型为三维向量,可取任意值。 |
194