@vvfx/ge-ir 0.0.1-beta.11 → 0.0.1-beta.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +134 -55
  2. package/dist/common/coordinate-mapping.d.ts +2 -0
  3. package/dist/common/json-normalization.d.ts +1 -1
  4. package/dist/common/particle-expression.d.ts +2 -0
  5. package/dist/conversion.d.ts +6 -0
  6. package/dist/ge2ir/parser/component.d.ts +2 -1
  7. package/dist/ge2ir/parser/timeline.d.ts +4 -2
  8. package/dist/ge2ir/post-process/mask.d.ts +1 -1
  9. package/dist/ge2ir/post-process.d.ts +1 -1
  10. package/dist/ge2ir/preserve-scene.d.ts +2 -0
  11. package/dist/ge2ir/types.d.ts +2 -0
  12. package/dist/index.d.ts +0 -3
  13. package/dist/index.js +9510 -8686
  14. package/dist/index.js.map +1 -1
  15. package/dist/index.mjs +9512 -8687
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/ir2ge/assemble-source-preserved-data.d.ts +5 -0
  18. package/dist/ir2ge/converter/bezier.d.ts +4 -6
  19. package/dist/ir2ge/converter/precomp.d.ts +3 -3
  20. package/dist/ir2ge/generator/{component.d.ts → append-component.d.ts} +1 -1
  21. package/dist/ir2ge/generator/append-particle-component.d.ts +3 -0
  22. package/dist/ir2ge/generator/append-timeline-tracks.d.ts +15 -0
  23. package/dist/ir2ge/generator/component-preservation.d.ts +1 -0
  24. package/dist/ir2ge/generator/layer-strategy.d.ts +2 -2
  25. package/dist/ir2ge/post-process/mask.d.ts +16 -10
  26. package/dist/ir2ge/post-process/matte.d.ts +2 -1
  27. package/dist/ir2ge/post-process/merge-preserved-resources.d.ts +1 -0
  28. package/dist/ir2ge/post-process/{visibility.d.ts → normalize-activation-intervals.d.ts} +4 -4
  29. package/dist/ir2ge/post-process/restore-runtime-graph.d.ts +4 -0
  30. package/dist/ir2ge/types.d.ts +10 -0
  31. package/dist/particle/assemble-particle-source-data.d.ts +11 -0
  32. package/dist/particle/particle-fragment.d.ts +6 -9
  33. package/dist/preserved-data.d.ts +25 -0
  34. package/package.json +4 -4
  35. package/dist/ir2ge/generator/build-particle-component.d.ts +0 -3
  36. package/dist/ir2ge/generator/timeline.d.ts +0 -8
  37. package/dist/ir2ge/map-particle-layout-to-ge-transform.d.ts +0 -30
  38. package/dist/particle/merge-particle-fragment.d.ts +0 -12
  39. package/dist/particle/merge-particle-scenes.d.ts +0 -21
  40. /package/dist/ge2ir/parser/{scene.d.ts → build-scene-context.d.ts} +0 -0
  41. /package/dist/ge2ir/parser/{layer.d.ts → parse-item-layer.d.ts} +0 -0
  42. /package/dist/ir2ge/generator/{layer.d.ts → append-layer-items.d.ts} +0 -0
@@ -0,0 +1,5 @@
1
+ import type { IRScene } from '@vvfx/animation-ir';
2
+ import type { IRToGEOptions } from '../conversion';
3
+ import { type GEToIRPreservedData } from '../preserved-data';
4
+ /** Reconcile source-local GE payloads with identities already assigned by the IR converter. */
5
+ export declare function assembleSourcePreservedData(scene: IRScene, options: IRToGEOptions): GEToIRPreservedData;
@@ -19,10 +19,10 @@ export interface IRToGETimeContext {
19
19
  interface GEPositionAnimationData {
20
20
  /** One-dimensional timing curves in BezierKeyframeValue format. */
21
21
  curves: BezierKeyframeValue[][];
22
- /** Segment endpoints as `[[startX, startY], [endX, endY]]`. */
23
- pathPoints: [[number, number], [number, number]][];
24
- /** Segment control offsets as `[[outX, outY], [inX, inY]]`. */
25
- controlPoints: [[number, number], [number, number]][];
22
+ /** Segment start and end positions, including depth. */
23
+ pathPoints: [IRVec3, IRVec3][];
24
+ /** Outgoing and incoming control offsets in the same coordinates as the endpoints. */
25
+ controlPoints: [IRVec3, IRVec3][];
26
26
  }
27
27
  /** Convert a scalar property to a single GE Bezier curve. */
28
28
  export declare function convertIRScalarKeyframesToGE(property: IRAnimatedProperty<number>, timeContext: IRToGETimeContext): BezierKeyframeValue[][] | undefined;
@@ -30,6 +30,4 @@ export declare function convertIRScalarKeyframesToGE(property: IRAnimatedPropert
30
30
  export declare function convertIRVectorKeyframesToGE(property: IRAnimatedProperty<IRVec3>, timeContext: IRToGETimeContext): BezierKeyframeValue[][] | undefined;
31
31
  /** Convert position keyframes to GE path, control-point, and timing payloads. */
32
32
  export declare function convertIRPositionKeyframesToGE(property: IRAnimatedProperty<IRVec3>, timeContext: IRToGETimeContext): GEPositionAnimationData | undefined;
33
- /** Return whether GE's compact keyframe fields are required for this property. */
34
- export declare function shouldUseKeyframeMode(property: IRAnimatedProperty): boolean;
35
33
  export {};
@@ -1,5 +1,5 @@
1
- import { type IRAnimatedProperty, type IRComposition, type IRScene, type IRPrecompLayer } from '@vvfx/animation-ir';
2
- import type { ConversionDiagnostic } from '@vvfx/animation-ir/adapter';
1
+ import type { IRAnimatedProperty, IRComposition, IRPrecompLayer, IRScene } from '@vvfx/animation-ir';
2
+ import { type ConversionDiagnostic } from '@vvfx/animation-ir/adapter';
3
3
  interface CompositionGenerationRequest {
4
4
  id: string;
5
5
  ir: IRComposition;
@@ -10,7 +10,7 @@ interface CompositionGenerationPlan {
10
10
  compositionById: ReadonlyMap<string, IRComposition>;
11
11
  requests: CompositionGenerationRequest[];
12
12
  }
13
- /** Plan source Compositions and the instance-specific variants required by GE. */
13
+ /** Plan only Compositions and instance-specific variants reachable from the playback entry. */
14
14
  export declare function buildCompositionGenerationPlan(irScene: IRScene, diagnostics: ConversionDiagnostic[]): CompositionGenerationPlan;
15
15
  /** Report GE runtime limitations that apply to a source Precomp instance. */
16
16
  export declare function collectPrecompExportDiagnostics(layer: IRPrecompLayer, compositionById: ReadonlyMap<string, IRComposition>, composition: IRComposition, diagnostics: ConversionDiagnostic[]): void;
@@ -1,6 +1,6 @@
1
1
  import type { IRLayer, IRShape, IRShapePaint, IRShapeStroke } from '@vvfx/animation-ir';
2
2
  import type { LayerGenerationContext } from '../types';
3
- export declare function buildComponent(layer: IRLayer, itemId: string, anchorScaleX: number, anchorScaleY: number, ctx: LayerGenerationContext): string | undefined;
3
+ export declare function appendComponent(layer: IRLayer, itemId: string, anchorScaleX: number, anchorScaleY: number, ctx: LayerGenerationContext): string | undefined;
4
4
  export declare function buildShapeOptions(shapeData: IRShape, ratio: number, ctx?: LayerGenerationContext, renderStyle?: ShapeRenderStyle): Record<string, unknown>;
5
5
  export interface ShapeRenderStyle {
6
6
  fills: IRShapePaint[];
@@ -0,0 +1,3 @@
1
+ import type { IRParticleLayer } from '@vvfx/animation-ir';
2
+ import type { LayerGenerationContext } from '../types';
3
+ export declare function appendParticleComponent(layer: IRParticleLayer, itemId: string, anchorScaleX: number, anchorScaleY: number, ctx: LayerGenerationContext): string;
@@ -0,0 +1,15 @@
1
+ import type { IRComposition } from '@vvfx/animation-ir';
2
+ import type { EffectsLayerPreservedData } from '../../preserved-data';
3
+ import type { DataPath } from '@galacean/effects-specification';
4
+ import { type EndBehavior, ItemType } from '@galacean/effects-specification';
5
+ import type { ECSCollector, GeneratedItemBinding, TransformAnimation } from '../types';
6
+ interface TimelineTrackCollector {
7
+ miscs: Record<string, unknown>[];
8
+ }
9
+ /** Append binding, activation, transform, and supported renderer-color tracks for one Item. */
10
+ export declare function appendTimelineTracks(collector: TimelineTrackCollector, delay: number, duration: number, endBehavior: EndBehavior, animation: TransformAnimation, itemType: ItemType, precompTimeOffset?: number): string;
11
+ export declare function restoreComponentTimelines(collector: ECSCollector, ir: IRComposition, itemBindings: GeneratedItemBinding[], layerDataById: Readonly<Record<string, EffectsLayerPreservedData>>): {
12
+ key: DataPath;
13
+ value: DataPath;
14
+ }[];
15
+ export {};
@@ -3,3 +3,4 @@ import type { GeneratedComponentData, LayerGenerationContext } from '../types';
3
3
  export declare function resolveComponentId(layer: IRLayer, ctx: LayerGenerationContext): string;
4
4
  /** Copy a preserved GE mask whose target references are remapped after generation. */
5
5
  export declare function copyPreservedMaskToComponent(layer: IRLayer, component: GeneratedComponentData, ctx: LayerGenerationContext): void;
6
+ export declare function restoreComponentRenderData(layer: IRLayer, component: GeneratedComponentData, ctx: LayerGenerationContext): void;
@@ -4,7 +4,7 @@ import type { EffectsLayerPreservedData } from '../../preserved-data';
4
4
  * Anchor encoding strategy.
5
5
  *
6
6
  * - `inline-anchor` encodes the renderer anchor and compensates item position.
7
- * - `split-null-sprite` places transforms on a null parent and visual content
7
+ * - `split-null-visual` places transforms on a null parent and visual content
8
8
  * on an anchor-offset child.
9
9
  * Effects passthrough data may request the source hierarchy.
10
10
  */
@@ -13,7 +13,7 @@ type LayerGenerationStrategy = {
13
13
  anchorScale: [number, number];
14
14
  anchorOffset: [number, number];
15
15
  } | {
16
- kind: 'split-null-sprite';
16
+ kind: 'split-null-visual';
17
17
  };
18
18
  export declare function resolveLayerGenerationStrategy(layer: IRLayer, preservedData?: EffectsLayerPreservedData): LayerGenerationStrategy;
19
19
  export {};
@@ -3,8 +3,9 @@
3
3
  * or descendant renderer components.
4
4
  */
5
5
  import { type IRComposition, type IRMask } from '@vvfx/animation-ir';
6
+ import type { ConversionDiagnostic } from '@vvfx/animation-ir/adapter';
6
7
  import { type RuntimeMaskGeometry } from './mask-geometry';
7
- import type { ECSCollector, GeneratedItemBinding } from '../types';
8
+ import type { ECSCollector, GeneratedComponentData, GeneratedItemBinding } from '../types';
8
9
  /** Resolve stable IR Layer IDs to generated items and components. */
9
10
  export interface MaskLayerLookup {
10
11
  getItemId(layerId: string): string | undefined;
@@ -13,21 +14,26 @@ export interface MaskLayerLookup {
13
14
  getComponentId(layerId: string): string | undefined;
14
15
  isParentLayer(layerId: string): boolean;
15
16
  }
16
- type MaskOrigin = 'authored' | 'clip';
17
- /** Internal ownership metadata for each renderer's single Runtime mask slot. */
17
+ /** Internal metadata used to deduplicate and simplify generated Runtime references. */
18
18
  export interface RuntimeMaskSourceMeta {
19
- origin: MaskOrigin;
20
- area: number;
21
19
  geometry?: RuntimeMaskGeometry;
22
- specificity: number;
20
+ /** Identity of the local coordinate space used by geometry. */
21
+ geometrySpaceId?: string;
22
+ inverted: boolean;
23
23
  }
24
- /** Shared single-mask arbitration state across every generated Composition. */
24
+ interface RuntimeMaskTargetReference {
25
+ componentId: string;
26
+ source: RuntimeMaskSourceMeta;
27
+ }
28
+ /** Shared multi-mask state across every generated Composition. */
25
29
  export interface RuntimeMaskState {
26
- slots: Map<string, RuntimeMaskSourceMeta>;
30
+ references: Map<string, RuntimeMaskTargetReference[]>;
27
31
  sources: Map<string, RuntimeMaskSourceMeta>;
28
32
  }
29
33
  export declare function createRuntimeMaskState(): RuntimeMaskState;
30
- export declare function applyMasks(ir: IRComposition, collector: ECSCollector, itemBindings: GeneratedItemBinding[], ratio: number, _width: number, _height: number, frameRate: number, lookup: MaskLayerLookup, compositionById?: ReadonlyMap<string, IRComposition>, runtimeMaskState?: RuntimeMaskState): void;
31
- /** Fold the source-neutral Mask operation and path polarity into GE's single inversion flag. */
34
+ export declare function applyMasks(ir: IRComposition, collector: ECSCollector, itemBindings: GeneratedItemBinding[], ratio: number, _width: number, _height: number, frameRate: number, lookup: MaskLayerLookup, compositionById?: ReadonlyMap<string, IRComposition>, runtimeMaskState?: RuntimeMaskState, diagnostics?: ConversionDiagnostic[]): void;
35
+ /** Fold the source-neutral Mask operation and path polarity into one GE reference direction. */
32
36
  export declare function resolveGEMaskInverted(mask: Pick<IRMask, 'mode' | 'inverted'>): boolean;
37
+ /** Append one target reference while removing provably redundant positive masks. */
38
+ export declare function appendRuntimeMaskReference(component: GeneratedComponentData, maskComponentId: string, sourceMeta: RuntimeMaskSourceMeta, runtimeMaskState: RuntimeMaskState): boolean;
33
39
  export {};
@@ -1,5 +1,6 @@
1
1
  import { type IRComposition } from '@vvfx/animation-ir';
2
2
  import type { ConversionDiagnostic } from '@vvfx/animation-ir/adapter';
3
3
  import type { ECSCollector } from '../types';
4
+ import { type RuntimeMaskState } from './mask';
4
5
  /** Lower Layer-reference mattes to GE's component mask source/target relationship. */
5
- export declare function applyLayerMattes(ir: IRComposition, collector: ECSCollector, layerToComponentId: Readonly<Record<string, string>>, diagnostics: ConversionDiagnostic[]): void;
6
+ export declare function applyLayerMattes(ir: IRComposition, collector: ECSCollector, layerToComponentId: Readonly<Record<string, string>>, runtimeMaskState: RuntimeMaskState, diagnostics: ConversionDiagnostic[]): void;
@@ -1,3 +1,4 @@
1
1
  import type { GEToIRPreservedData } from '../../preserved-data';
2
2
  /** Merge source GE objects that are outside Composition graphs regenerated from IR. */
3
3
  export declare function mergePreservedResources(generated: Record<string, unknown>, preservedData?: GEToIRPreservedData): Record<string, unknown>;
4
+ export declare function mergeGEPlayerVersion(hostScene: Record<string, unknown>, sourceScene: Record<string, unknown>): void;
@@ -1,12 +1,12 @@
1
1
  import type { VFXItemData } from '@galacean/effects-specification';
2
2
  import type { GeneratedMiscData } from '../types';
3
- type VisibilityItem = Pick<VFXItemData, 'id' | 'delay' | 'duration' | 'parentId'>;
3
+ type ActivationItem = Pick<VFXItemData, 'id' | 'delay' | 'duration' | 'parentId'>;
4
4
  interface GeneratedItemBindingRef {
5
5
  itemId: string;
6
6
  objectBindingTrackId?: string;
7
7
  }
8
- interface NormalizeVisibilityParams {
9
- items: VisibilityItem[];
8
+ interface NormalizeHierarchyActivationOptions {
9
+ items: ActivationItem[];
10
10
  miscs: GeneratedMiscData[];
11
11
  itemBindings: GeneratedItemBindingRef[];
12
12
  /** Generated item IDs corresponding to IR Layers with a Transform Parent. */
@@ -18,5 +18,5 @@ interface NormalizeVisibilityParams {
18
18
  * normalize internal generated child items in parent-first order. Parent
19
19
  * activation changes do not alter Transform keyframe time domains.
20
20
  */
21
- export declare function normalizeChildVisibilityByParentDelays({ items, miscs, itemBindings, transformParentChildItemIds, roundNumber, }: NormalizeVisibilityParams): void;
21
+ export declare function normalizeHierarchyActivationIntervals({ items, miscs, itemBindings, transformParentChildItemIds, roundNumber, }: NormalizeHierarchyActivationOptions): void;
22
22
  export {};
@@ -0,0 +1,4 @@
1
+ import type { GEToIRPreservedData } from '../../preserved-data';
2
+ import type { GeneratedCompositionData } from '../types';
3
+ /** Reconnect GE-only objects without replacing entities regenerated from editable IR. */
4
+ export declare function restoreRuntimeGraph(generated: Record<string, unknown>, compositions: GeneratedCompositionData[], preservedData?: GEToIRPreservedData): void;
@@ -6,6 +6,16 @@ import type { EffectsLayerPreservedData } from '../preserved-data';
6
6
  export type GeneratedVFXItemData = Omit<VFXItemData, 'content' | 'transform'> & Partial<Pick<VFXItemData, 'content'>> & Required<Pick<VFXItemData, 'transform'>>;
7
7
  /** Generated component with specification fields and preserved extension data. */
8
8
  export type GeneratedComponentData = ComponentData & Record<string, unknown>;
9
+ /** Multi-mask wire format consumed by the updated GE Runtime but not yet exposed by specification 2.8.1. */
10
+ export interface GeneratedMaskReference {
11
+ mask: DataPath;
12
+ inverted?: boolean;
13
+ }
14
+ export interface GeneratedMaskOptions {
15
+ isMask?: boolean;
16
+ alphaMaskEnabled?: boolean;
17
+ references?: GeneratedMaskReference[];
18
+ }
9
19
  /** Generated misc object with specification fields and timeline payloads. */
10
20
  export type GeneratedMiscData = EffectsObjectData & Record<string, unknown>;
11
21
  /** Pools collected while building a GE JSONScene. */
@@ -0,0 +1,11 @@
1
+ import type { IRScene } from '@vvfx/animation-ir';
2
+ import type { GEToIRPreservedData } from '../preserved-data';
3
+ /** Each placed instance owns its identities, including references inside opaque GE payloads. */
4
+ export declare function namespaceParticleSource(input: {
5
+ scene: IRScene;
6
+ preservedData: GEToIRPreservedData;
7
+ }, idMap: Readonly<Record<string, string>>): typeof input & {
8
+ ids: ReadonlyMap<string, string>;
9
+ };
10
+ /** Combine only source pools; generated Items and Timelines are assembled by the regular exporter. */
11
+ export declare function appendParticleSourceResources(target: GEToIRPreservedData, source: GEToIRPreservedData): void;
@@ -1,10 +1,7 @@
1
1
  import type { GEToIRPreservedData } from '../preserved-data';
2
- import type { ResolvedGEParticlePlacement } from './merge-particle-scenes';
3
- export interface ParticleFragment {
4
- scene: Record<string, unknown>;
5
- sourceCompositionId: string;
6
- rootItemIds: string[];
7
- }
8
- /** Extract one complete particle effect group from a restored GE scene. */
9
- export declare function buildParticleFragment(sourceScene: Record<string, unknown>, preservedData: GEToIRPreservedData, placement: ResolvedGEParticlePlacement): ParticleFragment;
10
- export declare function resolveCompositionRuntime(composition: Record<string, unknown>, componentById: ReadonlyMap<string, Record<string, unknown>>): Record<string, unknown>;
2
+ /** Retain one particle system or its complete group with source dependencies. */
3
+ export declare function buildParticleFragment(sourceScene: Record<string, unknown>, preservedData: GEToIRPreservedData, selection: {
4
+ effectGroupId: string;
5
+ irCompositionId: string;
6
+ irLayerId?: string;
7
+ }): Record<string, unknown>;
@@ -32,8 +32,21 @@ export interface EffectsLayerPreservedData {
32
32
  positionOverLifetime?: Record<string, unknown>;
33
33
  rotationOverLifetime?: Record<string, unknown>;
34
34
  sizeOverLifetime?: Record<string, unknown>;
35
+ transformBaseScale?: [number, number, number];
35
36
  colorOverLifetime?: Record<string, unknown>;
36
37
  spriteStartColor?: IRColor;
38
+ spriteTexture?: {
39
+ image: Record<string, unknown>;
40
+ texture: Record<string, unknown>;
41
+ };
42
+ renderer?: Record<string, unknown>;
43
+ geometry?: Record<string, unknown>;
44
+ componentTimeline?: {
45
+ root: {
46
+ id: string;
47
+ };
48
+ objects: Record<string, unknown>[];
49
+ };
37
50
  spriteSplits?: EffectsSpriteSplit[];
38
51
  textureSheetAnimation?: EffectsTextureSheetAnimation;
39
52
  textSizeMode?: EffectsTextSizeMode;
@@ -41,17 +54,29 @@ export interface EffectsLayerPreservedData {
41
54
  itemAnchorById?: Record<string, [x: number, y: number]>;
42
55
  itemEulerHintById?: Record<string, [x: number, y: number, z: number]>;
43
56
  sourceComponentId?: string;
57
+ /** Additional runtime components owned by the source item, such as FFD or AnimationComponent. */
58
+ additionalComponentIds?: string[];
59
+ /** Parent outside the editable IR graph. */
60
+ runtimeParentId?: string;
44
61
  mask?: Record<string, unknown>;
45
62
  precompContent?: Record<string, unknown>;
46
63
  /** GE ParticleSystem payload excluding identity and generic mask fields; normalized IR fields override it on export. */
47
64
  particleContent?: Record<string, unknown>;
48
65
  /** Activation clip behavior retained independently from the normalized GE Item behavior. */
49
66
  timelineEndBehavior?: EndBehavior;
67
+ itemTiming?: {
68
+ delay: number;
69
+ duration: number;
70
+ };
50
71
  sourceHierarchy?: 'single-item' | 'null-sprite-pair';
51
72
  }
52
73
  export interface GECompositionSourceBinding {
53
74
  sourceCompositionId: string;
75
+ camera?: Record<string, unknown>;
54
76
  sourceItemOrder: string[];
77
+ /** GE-only items and composition components restored from sourceScene. */
78
+ runtimeItemIds?: string[];
79
+ runtimeComponentIds?: string[];
55
80
  layerDataById: Record<string, EffectsLayerPreservedData>;
56
81
  }
57
82
  /** GE-owned data retained outside the source-neutral Animation IR contract. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vvfx/ge-ir",
3
- "version": "0.0.1-beta.11",
3
+ "version": "0.0.1-beta.12",
4
4
  "description": "Bidirectional Galacean Effects and Animation IR conversion with GE fidelity preservation",
5
5
  "module": "./dist/index.mjs",
6
6
  "main": "./dist/index.js",
@@ -16,9 +16,9 @@
16
16
  }
17
17
  },
18
18
  "dependencies": {
19
- "@galacean/effects-specification": "2.7.2",
19
+ "@galacean/effects-specification": "2.8.1",
20
20
  "uuid": "^13.0.0",
21
- "@vvfx/animation-ir": "0.0.1-beta.11"
21
+ "@vvfx/animation-ir": "0.0.1-beta.12"
22
22
  },
23
23
  "contributors": [
24
24
  {
@@ -44,7 +44,7 @@
44
44
  "converter"
45
45
  ],
46
46
  "engines": {
47
- "node": ">=22"
47
+ "node": ">=24"
48
48
  },
49
49
  "scripts": {
50
50
  "prebuild": "pnpm clean",
@@ -1,3 +0,0 @@
1
- import type { IRParticleLayer } from '@vvfx/animation-ir';
2
- import type { LayerGenerationContext } from '../types';
3
- export declare function buildParticleComponent(layer: IRParticleLayer, itemId: string, anchorScaleX: number, anchorScaleY: number, ctx: LayerGenerationContext): string;
@@ -1,8 +0,0 @@
1
- import { type EndBehavior, ItemType } from '@galacean/effects-specification';
2
- import type { TransformAnimation } from '../types';
3
- interface TimelineTrackCollector {
4
- miscs: Record<string, unknown>[];
5
- }
6
- /** Build binding, activation, transform, and supported renderer-color tracks for one Item. */
7
- export declare function buildTimelineTracks(collector: TimelineTrackCollector, delay: number, duration: number, endBehavior: EndBehavior, animation: TransformAnimation, itemType: ItemType, precompTimeOffset?: number): string;
8
- export {};
@@ -1,30 +0,0 @@
1
- export interface GEParticleTargetRegion {
2
- width: number;
3
- height: number;
4
- center: readonly [x: number, y: number];
5
- }
6
- export interface ParticleLayoutMappingOptions {
7
- targetRegion: GEParticleTargetRegion;
8
- hostComposition: Record<string, unknown>;
9
- sourceComposition: Record<string, unknown>;
10
- authoringBounds: readonly [x: number, y: number, width: number, height: number];
11
- }
12
- export interface GEParticleLayoutTransform {
13
- position: {
14
- x: number;
15
- y: number;
16
- z: 0;
17
- };
18
- eulerHint: {
19
- x: 0;
20
- y: 0;
21
- z: 0;
22
- };
23
- scale: {
24
- x: number;
25
- y: number;
26
- z: 1;
27
- };
28
- }
29
- /** Map one planned particle region from pixel layout into a GE transform. */
30
- export declare function mapParticleLayoutToGETransform(options: ParticleLayoutMappingOptions): GEParticleLayoutTransform;
@@ -1,12 +0,0 @@
1
- import type { ResolvedGEParticlePlacement } from './merge-particle-scenes';
2
- import { type ParticleFragment } from './particle-fragment';
3
- interface AppendParticleFragmentOptions {
4
- usedIds: Set<string>;
5
- itemZById: Map<string, number>;
6
- wrapperItemIds: Set<string>;
7
- }
8
- /** Append one dependency-closed particle effect fragment to a GE host. */
9
- export declare function appendParticleFragmentToGE(hostScene: Record<string, unknown>, fragment: ParticleFragment, placement: ResolvedGEParticlePlacement, options: AppendParticleFragmentOptions): void;
10
- export declare function collectGEIds(value: unknown, ids?: Set<string>, visited?: WeakSet<object>): Set<string>;
11
- export declare function mergeGEPlayerVersion(hostScene: Record<string, unknown>, sourceScene: Record<string, unknown>): void;
12
- export {};
@@ -1,21 +0,0 @@
1
- import type { JSONScene } from '@galacean/effects-specification';
2
- import type { GEParticleAuthoringBounds, GEToIRPreservedData } from '../preserved-data';
3
- /** Host-canvas placement for an effect group or one bound particle system. */
4
- export interface GEParticlePlacement {
5
- effectGroupId: string;
6
- irLayerId?: string;
7
- width: number;
8
- height: number;
9
- position: readonly [x: number, y: number, z: number];
10
- }
11
- export interface ParticleSceneMergeInput {
12
- scene: unknown;
13
- preservedData: GEToIRPreservedData;
14
- placements: readonly GEParticlePlacement[];
15
- }
16
- export interface ResolvedGEParticlePlacement extends GEParticlePlacement {
17
- irCompositionId: string;
18
- authoringBounds: Readonly<GEParticleAuthoringBounds>;
19
- }
20
- /** Merge multiple restored particle GE scenes while preserving one shared painter-order calculation. */
21
- export declare function mergeParticleScenes(hostScene: unknown, sources: readonly ParticleSceneMergeInput[], hostStackingOrder?: ReadonlyMap<string, number>): JSONScene;