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