import type { Engine, HitTestBoxParams, HitTestCustomParams, HitTestSphereParams, Renderer, VFXItem } from '@galacean/effects'; import { Behaviour, RendererComponent, AnimationClip } from '@galacean/effects'; import type { ModelCameraComponentData, ModelItemBounding, ModelLightComponentData, ModelMeshComponentData, ModelSkyboxComponentData, AnimationComponentData } from '../index'; import type { PSceneManager, Euler } from '../runtime'; import { PCamera, PLight, PMesh, PSkybox, Vector3 } from '../runtime'; /** * 插件 Mesh 组件类,支持 3D Mesh 渲染能力 * @since 2.0.0 */ export declare class ModelMeshComponent extends RendererComponent { /** * 内部 Mesh 对象 */ content: PMesh; /** * 参数 */ data?: ModelMeshComponentData; /** * 包围盒 */ bounding?: ModelItemBounding; /** * 场景管理器 */ sceneManager?: PSceneManager; /** * morph 动画权重 */ morphWeights: number[]; private firstUpdate; /** * 构造函数,只保存传入参数,不在这里创建内部对象 * @param engine - 引擎 * @param data - Mesh 参数 */ constructor(engine: Engine, data?: ModelMeshComponentData); /** * 组件开始,需要创建内部对象,更新父元素信息和添加到场景管理器中 */ onStart(): void; /** * 组件更新,更新内部对象状态 * @param dt - 更新间隔 */ onUpdate(dt: number): void; /** * 组件晚更新,晚更新内部对象状态 * @param dt - 更新间隔 */ onLateUpdate(dt: number): void; /** * 组件渲染,需要检查可见性 * @param renderer - 渲染器 * @returns */ render(renderer: Renderer): void; /** * 组件销毁,需要重场景管理器中删除 */ onDestroy(): void; /** * 反序列化,记录传入参数 * @param data - 组件参数 */ fromData(data: ModelMeshComponentData): void; /** * 创建内部对象 */ createContent(): void; /** * 设置当前 Mesh 的可见性。 * @param visible - true:可见,false:不可见 */ setVisible(visible: boolean): void; /** * 获取当前 Mesh 的可见性。 */ getVisible(): boolean; /** * 获取点击测试参数,根据元素包围盒进行相交测试,Mesh 对象会进行更加精确的点击测试 * @param force - 是否强制进行点击测试 * @returns 点击测试参数 */ getHitTestParams: (force?: boolean) => HitTestBoxParams | HitTestSphereParams | HitTestCustomParams | undefined; /** * 计算元素包围盒,只针对 Mesh 对象 * @returns 包围盒 */ computeBoundingBox(): ModelItemBounding | undefined; } /** * 插件天空盒组件类,支持 3D 天空盒渲染能力 * @since 2.0.0 */ export declare class ModelSkyboxComponent extends RendererComponent { /** * 内部天空盒对象 */ content: PSkybox; /** * 天空盒参数 */ data?: ModelSkyboxComponentData; /** * 场景管理器 */ sceneManager?: PSceneManager; /** * 构造函数,只保存传入参数,不在这里创建内部对象 * @param engine - 引擎 * @param data - Mesh 参数 */ constructor(engine: Engine, data?: ModelSkyboxComponentData); /** * 组件开始,需要创建内部对象和添加到场景管理器中 */ onStart(): void; /** * 组件渲染,需要检查可见性 * @param renderer - 渲染器 * @returns */ render(renderer: Renderer): void; /** * 组件销毁,需要重场景管理器中删除 */ onDestroy(): void; /** * 反序列化,记录传入参数 * @param data - 组件参数 */ fromData(data: ModelSkyboxComponentData): void; /** * 创建内部对象 */ createContent(): void; /** * 设置当前可见性。 * @param visible - true:可见,false:不可见 */ setVisible(visible: boolean): void; /** * 获取当前可见性。 */ getVisible(): boolean; } /** * 插件灯光组件类,支持 3D 灯光能力 * @since 2.0.0 */ export declare class ModelLightComponent extends Behaviour { /** * 内部灯光对象 */ content: PLight; /** * 参数 */ data?: ModelLightComponentData; /** * 构造函数,只保存传入参数,不在这里创建内部对象 * @param engine - 引擎 * @param data - Mesh 参数 */ constructor(engine: Engine, data?: ModelLightComponentData); /** * 组件开始,需要创建内部对象和添加到场景管理器中 */ onStart(): void; /** * 组件更新,更新内部对象状态 * @param dt - 更新间隔 */ onUpdate(dt: number): void; /** * 组件销毁 */ onDestroy(): void; /** * 反序列化,记录传入参数 * @param data - 组件参数 */ fromData(data: ModelLightComponentData): void; /** * 创建内部对象 */ createContent(): void; /** * 设置当前可见性。 * @param visible - true:可见,false:不可见 */ setVisible(visible: boolean): void; /** * 获取当前 Mesh 的可见性。 */ getVisible(): boolean; } /** * 插件相机组件类,支持 3D 相机能力 * @since 2.0.0 */ export declare class ModelCameraComponent extends Behaviour { /** * 内部相机对象 */ content: PCamera; /** * 参数 */ data?: ModelCameraComponentData; /** * 构造函数,只保存传入参数,不在这里创建内部对象 * @param engine - 引擎 * @param data - Mesh 参数 */ constructor(engine: Engine, data?: ModelCameraComponentData); /** * 组件开始,需要创建内部对象和添加到场景管理器中 */ onStart(): void; /** * 组件更新,更新内部对象状态 * @param dt - 更新间隔 */ onUpdate(dt: number): void; /** * 组件销毁 */ onDestroy(): void; /** * 反序列化,记录传入参数 * @param data - 组件参数 */ fromData(data: ModelCameraComponentData): void; /** * 创建内部对象 */ createContent(): void; /** * 更新合成主相机,更加当前相机元素状态 */ updateMainCamera(): void; /** * 设置变换 * @param position - 位置 * @param rotation - 旋转 */ setTransform(position?: Vector3, rotation?: Euler): void; } /** * 插件动画组件类,支持 3D 动画能力 * @since 2.0.0 */ export declare class AnimationComponent extends Behaviour { /** * 参数 */ data?: AnimationComponentData; elapsedTime: number; animation: number; clips: ModelAnimationClip[]; /** * 构造函数,只保存传入参数,不在这里创建内部对象 * @param engine - 引擎 */ constructor(engine: Engine); /** * 组件开始,需要创建内部对象和添加到场景管理器中 */ onStart(): void; /** * 组件更新,更新内部对象状态 * @param dt - 更新间隔 */ onUpdate(dt: number): void; /** * 组件销毁 */ onDestroy(): void; /** * 反序列化,记录传入参数 * @param data - 组件参数 */ fromData(data: AnimationComponentData): void; } declare class ModelAnimationClip extends AnimationClip { path2Node: Record; sampleAnimation(vfxItem: VFXItem, time: number): void; setFromAnimationClip(clip: AnimationClip): void; getTargetItem(rootItem: VFXItem, path: string): VFXItem; } export {};