3D
3D 模块提供三维视图组件,支持3D球体、圆柱体、网格等立体图形的渲染与交互。
Class Summary
OHOS::UI3DView
3D 视图基类,提供模型加载、纹理设置与清除等通用 3D 渲染能力
- 构造:无
-
成员函数:
接口名称 功能简述 SetModel 设置 3D 模型文件路径 SetModel 通过文件指针设置 3D 模型 ClearModel 清除 3D 模型 SetTexture 设置 3D 纹理图片 ClearTexture 清除 3D 纹理图片 GetTexture 获取 3D 纹理图片 ReMeasure 重新测量视图 GetViewType 获取视图类型 -
使用包含头文件:
#include "components/ui_3d_view.h" - 声明头文件:
/src/middleware/services/gui/uikit/proprietary/include/components/ui_3d_view.h - 公有运算符:无
- 继承关系:UIView
- 嵌套类型:无
- 模板形参:无
OHOS::UI3DCylinder
3D 圆柱体视图,支持相机参数配置与纹理渲染
- 构造:无
-
成员函数:
接口名称 功能简述 SetStartY 设置纹理渲染起始 Y 坐标 GetStartY 获取纹理渲染起始 Y 坐标 SetCameraAngle 设置相机角度 SetCameraVFov 设置相机垂直视场角 SetCameraAspectRatio 设置相机宽高比 SetCameraNearPlane 设置相机近裁剪面 SetCameraFarPlane 设置相机远裁剪面 SetCameraAxis 设置相机轴向 SetCameraScale 设置相机缩放 SetCameraTranslation 设置相机平移 SetCameraPosition 设置相机位置 SetTexture 设置 3D 纹理图片 OnDraw 绘制视图 GetViewType 获取视图类型 -
使用包含头文件:
#include "components/ui_3d_cylinder.h" - 声明头文件:
/src/middleware/services/gui/uikit/proprietary/include/components/ui_3d_cylinder.h - 公有运算符:无
- 继承关系:UI3DView
- 嵌套类型:无
- 模板形参:无
OHOS::UI3DMesh
3D 网格视图,支持网格动画控制与纹理渲染
- 构造:无
-
成员函数:
接口名称 功能简述 SetMeshType 设置网格类型 GetMeshType 获取网格类型 SetMeshPosition 设置网格动画位置 SetTime 设置网格动画时间 Start 启动网格动画 Pause 暂停网格动画 Resume 恢复网格动画 Stop 停止网格动画 GetState 获取网格动画状态 SetReverse 设置是否反转网格动画 GetReverse 获取网格动画是否反转 SetRealTimeScreencap 设置是否实时截屏作为纹理 GetRealTimeScreencap 获取是否实时截屏作为纹理 SetMeshAnimStopListener 设置网格动画停止监听器 GetMeshAnimStopListener 获取网格动画停止监听器 SetTexture 设置 3D 纹理图片 OnDraw 绘制视图 GetViewType 获取视图类型 -
使用包含头文件:
#include "components/ui_3d_mesh.h" - 声明头文件:
/src/middleware/services/gui/uikit/proprietary/include/components/ui_3d_mesh.h - 公有运算符:无
- 继承关系:UI3DView
- 嵌套类型:MeshAnimStopListener
- 模板形参:无
OHOS::UI3DMesh::MeshAnimStopListener
网格动画停止事件监听器基类,提供动画停止回调接口
- 构造:无
-
成员函数:
接口名称 功能简述 OnMeshAnimStop 网格动画停止回调 -
使用包含头文件:
#include "components/ui_3d_mesh.h" - 声明头文件:
/src/middleware/services/gui/uikit/proprietary/include/components/ui_3d_mesh.h - 公有运算符:无
- 继承关系:HeapBase
- 嵌套类型:无
- 模板形参:无
OHOS::UI3DSphere
3D 球体视图,支持三轴旋转控制与模型加载
- 构造:无
-
成员函数:
接口名称 功能简述 RotateAroundXAxis 绕 X 轴旋转 RotateAroundYAxis 绕 Y 轴旋转 RotateAroundZAxis 绕 Z 轴旋转 GetAngleAroundXAxis 获取绕 X 轴旋转角度 GetAngleAroundYAxis 获取绕 Y 轴旋转角度 GetAngleAroundZAxis 获取绕 Z 轴旋转角度 SetModel 设置 3D 模型文件路径 SetModel 通过文件指针设置 3D 模型 OnDraw 绘制视图 GetViewType 获取视图类型 -
使用包含头文件:
#include "components/ui_3d_sphere.h" - 声明头文件:
/src/middleware/services/gui/uikit/proprietary/include/components/ui_3d_sphere.h - 公有运算符:无
- 继承关系:UI3DView
- 嵌套类型:无
- 模板形参:无
Functions
OHOS::UI3DView
SetModel
virtual bool SetModel(std::string file)
功能说明
- 核心用途:通过文件路径设置 3D 模型
- 设计目的:为 3D 视图提供模型文件加载入口
- 使用场景:加载外部 3D 模型文件进行渲染显示
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| file | std::string | 3D 模型文件路径 | 有效的文件路径字符串 |
返回值
- 返回类型:
bool
返回模型设置结果
| 返回值 | 触发场景 |
|---|---|
| true | 模型设置成功 |
| false | 模型设置失败 |
SetModel
virtual bool SetModel(FILE *fp, uint32_t offset, uint32_t len)
功能说明
- 核心用途:通过文件指针设置 3D 模型
- 设计目的:支持从已打开的文件中指定偏移和长度加载模型数据
- 使用场景:模型数据嵌入在复合文件中时,通过偏移和长度定位加载
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| fp | FILE* | 已打开的文件指针,入参指针,不可为 nullptr | 非 nullptr |
| offset | uint32_t | 模型数据在文件中的偏移量 | 0 ~ 文件大小 |
| len | uint32_t | 模型数据长度 | 1 ~ 文件剩余大小 |
返回值
- 返回类型:
bool
返回模型设置结果
| 返回值 | 触发场景 |
|---|---|
| true | 模型设置成功 |
| false | 模型设置失败 |
ClearModel
void ClearModel()
功能说明
- 核心用途:清除已加载的 3D 模型
- 设计目的:释放模型资源,恢复视图到无模型状态
- 使用场景:切换模型前清除旧模型、视图销毁前释放资源
SetTexture
virtual bool SetTexture(const ImageInfo* info)
功能说明
- 核心用途:设置 3D 纹理图片
- 设计目的:为 3D 视图提供纹理贴图能力
- 使用场景:为 3D 模型添加表面纹理渲染
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| info | const ImageInfo* | 纹理图片信息,入参只读指针,不修改所指对象 | 非 nullptr |
返回值
- 返回类型:
bool
返回纹理设置结果
| 返回值 | 触发场景 |
|---|---|
| true | 纹理设置成功 |
| false | 纹理设置失败 |
ClearTexture
void ClearTexture()
功能说明
- 核心用途:清除已设置的 3D 纹理图片
- 设计目的:释放纹理资源,恢复视图到无纹理状态
- 使用场景:切换纹理前清除旧纹理、视图销毁前释放资源
GetTexture
const ImageInfo* GetTexture() const
功能说明
- 核心用途:获取当前 3D 纹理图片信息
- 设计目的:提供纹理查询能力,供外部获取当前纹理状态
- 使用场景:查询当前纹理配置、判断是否已设置纹理
返回值
- 返回类型:
const ImageInfo*
返回纹理信息指针
| 返回值 | 触发场景 |
|---|---|
| 非 nullptr | 已设置纹理 |
| nullptr | 未设置纹理 |
ReMeasure
void ReMeasure() override
功能说明
- 核心用途:重新测量视图尺寸
- 设计目的:在模型或纹理变更后重新计算视图布局
- 使用场景:模型/纹理更新后触发重新测量
GetViewType
UIViewType GetViewType() const override
功能说明
- 核心用途:获取视图类型标识
- 设计目的:区分 3D 视图与其他 UIView 类型
- 使用场景:视图类型判断、类型分发处理
返回值
- 返回类型:
UIViewType
返回视图类型枚举值
| 返回值 | 触发场景 |
|---|---|
| UI_3D_VIEW | 当前对象为 UI3DView 类型 |
OHOS::UI3DCylinder
SetStartY
void SetStartY(int16_t y)
功能说明
- 核心用途:设置纹理渲染起始 Y 坐标,决定纹理的渲染起始位置
- 设计目的:控制纹理在圆柱体表面的渲染区域
- 使用场景:需要裁剪或偏移纹理渲染区域时调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| y | int16_t | 纹理渲染起始 Y 坐标 | 0 ~ 纹理高度 |
GetStartY
int16_t GetStartY() const
功能说明
- 核心用途:获取当前纹理渲染起始 Y 坐标
- 设计目的:提供纹理偏移量查询能力
- 使用场景:查询当前纹理渲染起始位置
返回值
- 返回类型:
int16_t
返回纹理渲染起始 Y 坐标值
| 返回值 | 触发场景 |
|---|---|
| 0 | 默认值,未设置偏移 |
| 非0 | 已设置偏移值 |
SetCameraAngle
void SetCameraAngle(float angle)
功能说明
- 核心用途:设置相机角度
- 设计目的:控制观察圆柱体的视角
- 使用场景:调整观察圆柱体的俯仰角度
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| angle | float | 相机角度值,单位为度 | 浮点数值 |
SetCameraVFov
void SetCameraVFov(float distance)
功能说明
- 核心用途:设置相机垂直视场角(Vertical Field of View)
- 设计目的:控制相机的可视范围
- 使用场景:调整透视投影的视场范围
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| distance | float | 垂直视场角度值 | 浮点数值 |
SetCameraAspectRatio
void SetCameraAspectRatio(float ratio)
功能说明
- 核心用途:设置相机宽高比
- 设计目的:控制渲染画面的宽高比例
- 使用场景:适配不同屏幕或视口宽高比
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| ratio | float | 宽高比值 | 正浮点数值 |
SetCameraNearPlane
void SetCameraNearPlane(float value)
功能说明
- 核心用途:设置相机近裁剪面距离
- 设计目的:定义透视投影中最近可见距离
- 使用场景:调整近裁剪面,控制最近可见物体距离
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| value | float | 近裁剪面距离值 | 正浮点数值 |
SetCameraFarPlane
void SetCameraFarPlane(float value)
功能说明
- 核心用途:设置相机远裁剪面距离
- 设计目的:定义透视投影中最远可见距离
- 使用场景:调整远裁剪面,控制最远可见物体距离
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| value | float | 远裁剪面距离值 | 正浮点数值 |
SetCameraAxis
void SetCameraAxis(Vector3<float> axis)
功能说明
- 核心用途:设置相机旋转轴向
- 设计目的:定义相机旋转的参考轴向
- 使用场景:指定相机绕哪个轴向旋转
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| axis | Vector3 |
相机旋转轴向向量,入参值传递 | 三个浮点分量 |
SetCameraScale
void SetCameraScale(Vector3<float> scale)
功能说明
- 核心用途:设置相机缩放参数
- 设计目的:控制相机在三个轴向的缩放比例
- 使用场景:调整圆柱体在三维空间中的缩放效果
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| scale | Vector3 |
相机缩放向量,入参值传递 | 三个浮点分量 |
SetCameraTranslation
void SetCameraTranslation(Vector3<float> translation)
功能说明
- 核心用途:设置相机平移参数
- 设计目的:控制相机在三维空间中的平移偏移
- 使用场景:调整圆柱体在渲染画面中的位置偏移
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| translation | Vector3 |
相机平移向量,入参值传递 | 三个浮点分量 |
SetCameraPosition
void SetCameraPosition(Vector3<float> position)
功能说明
- 核心用途:设置相机位置
- 设计目的:定义相机在三维空间中的观察位置
- 使用场景:调整相机在三维空间中的观察点
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| position | Vector3 |
相机位置向量,入参值传递 | 三个浮点分量 |
SetTexture
bool SetTexture(const ImageInfo* info) override
功能说明
- 核心用途:为圆柱体设置 3D 纹理图片
- 设计目的:重写基类纹理设置接口,适配圆柱体纹理渲染
- 使用场景:为圆柱体视图添加表面纹理
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| info | const ImageInfo* | 纹理图片信息,入参只读指针,不修改所指对象 | 非 nullptr |
返回值
- 返回类型:
bool
返回纹理设置结果
| 返回值 | 触发场景 |
|---|---|
| true | 纹理设置成功 |
| false | 纹理设置失败 |
OnDraw
void OnDraw(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea) override
功能说明
- 核心用途:执行圆柱体视图绘制
- 设计目的:重写基类绘制接口,实现圆柱体渲染逻辑
- 使用场景:由渲染框架在刷新时调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| gfxDstBuffer | BufferInfo& | 图形目标缓冲区,入参引用 | 有效缓冲区 |
| invalidatedArea | const Rect& | 无效区域矩形,入参只读引用 | 有效矩形 |
GetViewType
UIViewType GetViewType() const override
功能说明
- 核心用途:获取视图类型标识
- 设计目的:区分圆柱体视图与其他 UIView 类型
- 使用场景:视图类型判断、类型分发处理
返回值
- 返回类型:
UIViewType
返回视图类型枚举值
| 返回值 | 触发场景 |
|---|---|
| UI_3D_CYLINDER | 当前对象为 UI3DCylinder 类型 |
OHOS::UI3DMesh
SetMeshType
bool SetMeshType(VGUMeshType meshType)
功能说明
- 核心用途:设置网格类型,决定网格动画的渲染方式
- 设计目的:区分强模型类型(VGU_MESH_ARRAY / VGU_MESH_RIPPLE)与弱模型类型
- 使用场景:初始化网格视图时指定渲染类型;强模型类型会分配内存,需调用 ClearStrongModel 手动释放
前置条件
- 对于弱模型类型,必须通过 SetModel 设置模型文件
- 强模型类型(VGU_MESH_ARRAY / VGU_MESH_RIPPLE)不需要模型文件
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| meshType | VGUMeshType | 网格类型枚举值 | VGUMeshType |
返回值
- 返回类型:
bool
返回网格类型设置结果
| 返回值 | 触发场景 |
|---|---|
| true | 网格类型设置成功 |
| false | 网格类型设置失败 |
GetMeshType
VGUMeshType GetMeshType() const
功能说明
- 核心用途:获取当前网格类型
- 设计目的:提供网格类型查询能力
- 使用场景:查询当前网格视图的渲染类型
返回值
- 返回类型:
VGUMeshType
返回当前网格类型枚举值
| 返回值 | 触发场景 |
|---|---|
| VGU_MESH_ARRAY(0) | 数组类型网格 |
| VGU_MESH_CONVEX(1) | 凸面网格 |
| VGU_MESH_CONCAVE(2) | 凹面网格 |
| VGU_MESH_VORTEX(3) | 漩涡网格 |
| VGU_MESH_WAVE(4) | 波浪网格 |
| VGU_MESH_MORIE(5) | 莫尔网格 |
| VGU_MESH_RIPPLE(6) | 涟漪网格 |
| VGU_MESH_INVALID(7) | 无效类型 |
SetMeshPosition
void SetMeshPosition(int16_t x, int16_t y)
功能说明
- 核心用途:设置网格动画相对于控件的偏移位置
- 设计目的:控制强模型类型网格动画的渲染位置
- 使用场景:仅在强模型类型(VGU_MESH_ARRAY / VGU_MESH_RIPPLE)下有效
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| x | int16_t | 水平偏移坐标 | 0 ~ 控件宽度 |
| y | int16_t | 垂直偏移坐标 | 0 ~ 控件高度 |
SetTime
void SetTime(uint32_t time)
功能说明
- 核心用途:设置网格动画的时间参数
- 设计目的:控制动画的播放时间进度
- 使用场景:手动设置动画时间进度或初始化动画起始时间
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| time | uint32_t | 动画时间值 | 0 ~ UINT32_MAX |
Start
void Start()
功能说明
- 核心用途:启动网格动画
- 设计目的:开始播放网格动画效果
- 使用场景:初始化完成后启动动画播放
Pause
void Pause()
功能说明
- 核心用途:暂停网格动画
- 设计目的:暂停当前播放中的网格动画
- 使用场景:需要临时暂停动画时调用
Resume
void Resume()
功能说明
- 核心用途:恢复网格动画
- 设计目的:恢复已暂停的网格动画继续播放
- 使用场景:暂停后恢复动画播放
Stop
void Stop()
功能说明
- 核心用途:停止网格动画
- 设计目的:终止网格动画播放
- 使用场景:需要完全停止动画时调用,将触发 MeshAnimStopListener 回调
GetState
uint8_t GetState()
功能说明
- 核心用途:获取网格动画当前状态
- 设计目的:提供动画播放状态查询能力
- 使用场景:查询动画是否正在播放、暂停或停止
返回值
- 返回类型:
uint8_t
返回动画状态值
| 返回值 | 触发场景 |
|---|---|
| 0 | 动画已停止 |
| 非0 | 动画正在播放或暂停 |
SetReverse
void SetReverse(bool reverse)
功能说明
- 核心用途:设置是否反转网格动画方向
- 设计目的:控制动画正向/反向播放
- 使用场景:需要反向播放动画效果时调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| reverse | bool | 是否反转动画方向 | true / false |
GetReverse
bool GetReverse() const
功能说明
- 核心用途:获取网格动画是否为反转模式
- 设计目的:查询当前动画方向设置
- 使用场景:查询动画播放方向状态
返回值
- 返回类型:
bool
返回动画方向设置
| 返回值 | 触发场景 |
|---|---|
| true | 动画为反转模式 |
| false | 动画为正向模式 |
SetRealTimeScreencap
void SetRealTimeScreencap(bool realTime)
功能说明
- 核心用途:设置是否在未设置纹理时实时截屏作为纹理
- 设计目的:控制截屏纹理的更新频率;true 为每帧截屏,false 为截屏一次后复用
- 使用场景:未设置纹理时控制背景截屏策略
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| realTime | bool | 是否实时截屏 | true / false |
GetRealTimeScreencap
bool GetRealTimeScreencap()
功能说明
- 核心用途:获取是否启用实时截屏模式
- 设计目的:查询当前截屏策略配置
- 使用场景:查询截屏模式设置状态
返回值
- 返回类型:
bool
返回实时截屏设置
| 返回值 | 触发场景 |
|---|---|
| true | 启用实时截屏 |
| false | 禁用实时截屏 |
SetMeshAnimStopListener
void SetMeshAnimStopListener(MeshAnimStopListener* listener)
功能说明
- 核心用途:设置网格动画停止事件监听器
- 设计目的:注册回调,在动画停止时接收通知
- 使用场景:需要在动画停止后执行后续逻辑时注册监听器
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| listener | MeshAnimStopListener* | 动画停止监听器指针,入参指针 | 有效指针或 nullptr |
GetMeshAnimStopListener
MeshAnimStopListener* GetMeshAnimStopListener()
功能说明
- 核心用途:获取当前网格动画停止监听器
- 设计目的:查询已注册的动画停止监听器
- 使用场景:查询或更新动画停止回调
返回值
- 返回类型:
MeshAnimStopListener*
返回监听器指针
| 返回值 | 触发场景 |
|---|---|
| 非 nullptr | 已设置监听器 |
| nullptr | 未设置监听器 |
SetTexture
bool SetTexture(const ImageInfo* info) override
功能说明
- 核心用途:为网格视图设置 3D 纹理图片
- 设计目的:重写基类纹理设置接口,适配网格纹理渲染
- 使用场景:为网格视图添加表面纹理;未设置纹理时将使用截屏作为纹理
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| info | const ImageInfo* | 纹理图片信息,入参只读指针,不修改所指对象 | 非 nullptr |
返回值
- 返回类型:
bool
返回纹理设置结果
| 返回值 | 触发场景 |
|---|---|
| true | 纹理设置成功 |
| false | 纹理设置失败 |
OnDraw
void OnDraw(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea) override
功能说明
- 核心用途:执行网格视图绘制
- 设计目的:重写基类绘制接口,实现网格渲染逻辑
- 使用场景:由渲染框架在刷新时调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| gfxDstBuffer | BufferInfo& | 图形目标缓冲区,入参引用 | 有效缓冲区 |
| invalidatedArea | const Rect& | 无效区域矩形,入参只读引用 | 有效矩形 |
GetViewType
UIViewType GetViewType() const override
功能说明
- 核心用途:获取视图类型标识
- 设计目的:区分网格视图与其他 UIView 类型
- 使用场景:视图类型判断、类型分发处理
返回值
- 返回类型:
UIViewType
返回视图类型枚举值
| 返回值 | 触发场景 |
|---|---|
| UI_3D_MESH | 当前对象为 UI3DMesh 类型 |
OHOS::UI3DMesh::MeshAnimStopListener
OnMeshAnimStop
virtual void OnMeshAnimStop(UIView& view)
功能说明
- 核心用途:网格动画停止时的回调接口
- 设计目的:提供动画停止事件的通知机制,子类需重写此方法实现自定义逻辑
- 使用场景:继承 MeshAnimStopListener 并重写此方法,在动画停止时执行后续处理
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| view | UIView& | 触发停止事件的视图引用,入参引用 | 有效视图对象 |
OHOS::UI3DSphere
RotateAroundXAxis
void RotateAroundXAxis(float angle)
功能说明
- 核心用途:绕 X 轴旋转球体
- 设计目的:设置球体绕 X 轴的旋转角度
- 使用场景:调整球体俯仰角度
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| angle | float | 绕 X 轴旋转角度,单位为度 | 浮点数值 |
RotateAroundYAxis
void RotateAroundYAxis(float angle)
功能说明
- 核心用途:绕 Y 轴旋转球体
- 设计目的:设置球体绕 Y 轴的旋转角度
- 使用场景:调整球体偏航角度
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| angle | float | 绕 Y 轴旋转角度,单位为度 | 浮点数值 |
RotateAroundZAxis
void RotateAroundZAxis(float angle)
功能说明
- 核心用途:绕 Z 轴旋转球体
- 设计目的:设置球体绕 Z 轴的旋转角度
- 使用场景:调整球体翻滚角度
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| angle | float | 绕 Z 轴旋转角度,单位为度 | 浮点数值 |
GetAngleAroundXAxis
float GetAngleAroundXAxis()
功能说明
- 核心用途:获取绕 X 轴的旋转角度
- 设计目的:查询球体当前 X 轴旋转角度
- 使用场景:查询球体俯仰角度
返回值
- 返回类型:
float
返回绕 X 轴旋转角度值
| 返回值 | 触发场景 |
|---|---|
| 0.0 | 默认值,未设置旋转 |
| 非0 | 已设置旋转角度 |
GetAngleAroundYAxis
float GetAngleAroundYAxis()
功能说明
- 核心用途:获取绕 Y 轴的旋转角度
- 设计目的:查询球体当前 Y 轴旋转角度
- 使用场景:查询球体偏航角度
返回值
- 返回类型:
float
返回绕 Y 轴旋转角度值
| 返回值 | 触发场景 |
|---|---|
| 0.0 | 默认值,未设置旋转 |
| 非0 | 已设置旋转角度 |
GetAngleAroundZAxis
float GetAngleAroundZAxis()
功能说明
- 核心用途:获取绕 Z 轴的旋转角度
- 设计目的:查询球体当前 Z 轴旋转角度
- 使用场景:查询球体翻滚角度
返回值
- 返回类型:
float
返回绕 Z 轴旋转角度值
| 返回值 | 触发场景 |
|---|---|
| 0.0 | 默认值,未设置旋转 |
| 非0 | 已设置旋转角度 |
SetModel
bool SetModel(std::string file) override
功能说明
- 核心用途:通过文件路径设置球体 3D 模型
- 设计目的:重写基类模型设置接口,加载球体模型文件
- 使用场景:加载外部 3D 球体模型文件进行渲染
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| file | std::string | 3D 模型文件路径 | 有效的文件路径字符串 |
返回值
- 返回类型:
bool
返回模型设置结果
| 返回值 | 触发场景 |
|---|---|
| true | 模型设置成功 |
| false | 模型设置失败 |
SetModel
bool SetModel(FILE *fp, uint32_t offset, uint32_t len) override
功能说明
- 核心用途:通过文件指针设置球体 3D 模型
- 设计目的:重写基类模型设置接口,支持从已打开文件加载模型
- 使用场景:模型数据嵌入在复合文件中时,通过偏移和长度定位加载
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| fp | FILE* | 已打开的文件指针,入参指针,不可为 nullptr | 非 nullptr |
| offset | uint32_t | 模型数据在文件中的偏移量 | 0 ~ 文件大小 |
| len | uint32_t | 模型数据长度 | 1 ~ 文件剩余大小 |
返回值
- 返回类型:
bool
返回模型设置结果
| 返回值 | 触发场景 |
|---|---|
| true | 模型设置成功 |
| false | 模型设置失败 |
OnDraw
void OnDraw(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea) override
功能说明
- 核心用途:执行球体视图绘制
- 设计目的:重写基类绘制接口,实现球体渲染逻辑
- 使用场景:由渲染框架在刷新时调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| gfxDstBuffer | BufferInfo& | 图形目标缓冲区,入参引用 | 有效缓冲区 |
| invalidatedArea | const Rect& | 无效区域矩形,入参只读引用 | 有效矩形 |
GetViewType
UIViewType GetViewType() const override
功能说明
- 核心用途:获取视图类型标识
- 设计目的:区分球体视图与其他 UIView 类型
- 使用场景:视图类型判断、类型分发处理
返回值
- 返回类型:
UIViewType
返回视图类型枚举值
| 返回值 | 触发场景 |
|---|---|
| UI_3D_SPHERE | 当前对象为 UI3DSphere 类型 |
Enumerations
VGUMeshType
typedef enum {
VGU_MESH_ARRAY,
VGU_MESH_CONVEX,
VGU_MESH_CONCAVE,
VGU_MESH_VORTEX,
VGU_MESH_WAVE,
VGU_MESH_MORIE,
VGU_MESH_RIPPLE,
VGU_MESH_INVALID,
} VGUMeshType;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| VGU_MESH_ARRAY | 0 | 数组类型网格 |
| VGU_MESH_CONVEX | 1 | 凸面网格 |
| VGU_MESH_CONCAVE | 2 | 凹面网格 |
| VGU_MESH_VORTEX | 3 | 漩涡网格 |
| VGU_MESH_WAVE | 4 | 波浪网格 |
| VGU_MESH_MORIE | 5 | 莫尔网格 |
| VGU_MESH_RIPPLE | 6 | 涟漪网格 |
| VGU_MESH_INVALID | 7 | 无效类型 |