import { Euler } from '@galacean/effects-math/es/core/euler'; import { Vector3 } from '@galacean/effects-math/es/core/vector3'; import * as spec from '@galacean/effects-specification'; import type { ItemLinearVelOverLifetime, ValueGetter } from '../../../math'; import type { FrameContext } from '../playable'; import { Playable, PlayableAsset } from '../playable'; /** * 基础位移属性数据 */ export type ItemBasicTransform = { position: Vector3; rotation: Euler; scale: Vector3; path?: ValueGetter; }; /** * @since 2.0.0 */ export declare class TransformPlayable extends Playable { originalTransform: ItemBasicTransform; protected sizeSeparateAxes: boolean; protected sizeXOverLifetime: ValueGetter; protected sizeYOverLifetime: ValueGetter; protected sizeZOverLifetime: ValueGetter; protected rotationOverLifetime: { asRotation?: boolean; separateAxes?: boolean; enabled?: boolean; x?: ValueGetter; y?: ValueGetter; z?: ValueGetter; }; gravityModifier: ValueGetter; orbitalVelOverLifetime: { x?: ValueGetter; y?: ValueGetter; z?: ValueGetter; center: [x: number, y: number, z: number]; asRotation?: boolean; enabled?: boolean; }; speedOverLifetime?: ValueGetter; linearVelOverLifetime: ItemLinearVelOverLifetime; positionOverLifetime: spec.PositionOverLifetime; gravity: Vector3; direction: Vector3; startSpeed: number; data: TransformPlayableAssetData; private velocity; private boundObject; start(): void; processFrame(context: FrameContext): void; /** * 应用时间轴K帧数据到对象 */ private sampleAnimation; } export declare class TransformPlayableAsset extends PlayableAsset { transformAnimationData: TransformPlayableAssetData; createPlayable(): Playable; fromData(data: TransformPlayableAssetData): void; } export interface TransformPlayableAssetData extends spec.EffectsObjectData { /** * 元素大小变化属性 */ sizeOverLifetime?: spec.SizeOverLifetime; /** * 元素旋转变化属性 */ rotationOverLifetime?: spec.RotationOverLifetime; /** * 元素位置变化属性 */ positionOverLifetime?: spec.PositionOverLifetime; }