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