@galacean/effects-core 2.1.0-alpha.0 → 2.1.0-alpha.10

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 (105) hide show
  1. package/dist/animation/color-playable.d.ts +26 -0
  2. package/dist/animation/index.d.ts +1 -0
  3. package/dist/asset-manager.d.ts +15 -11
  4. package/dist/asset.d.ts +4 -0
  5. package/dist/binary-asset.d.ts +2 -2
  6. package/dist/comp-vfx-item.d.ts +4 -5
  7. package/dist/components/base-render-component.d.ts +108 -0
  8. package/dist/components/effect-component.d.ts +3 -34
  9. package/dist/components/fake-3d-component.d.ts +28 -0
  10. package/dist/components/index.d.ts +3 -0
  11. package/dist/components/mesh-component.d.ts +21 -0
  12. package/dist/components/post-process-volume.d.ts +5 -3
  13. package/dist/components/shape-component.d.ts +291 -0
  14. package/dist/composition/scene-ticking.d.ts +15 -1
  15. package/dist/composition-source-manager.d.ts +5 -6
  16. package/dist/composition.d.ts +29 -25
  17. package/dist/downloader.d.ts +0 -3
  18. package/dist/effects-object.d.ts +23 -0
  19. package/dist/engine.d.ts +9 -0
  20. package/dist/events/event-emitter.d.ts +6 -0
  21. package/dist/events/types.d.ts +1 -1
  22. package/dist/index.d.ts +3 -1
  23. package/dist/index.js +22670 -19350
  24. package/dist/index.js.map +1 -1
  25. package/dist/index.mjs +22678 -19361
  26. package/dist/index.mjs.map +1 -1
  27. package/dist/math/index.d.ts +1 -1
  28. package/dist/math/translate.d.ts +1 -1
  29. package/dist/math/value-getters/color-curve.d.ts +12 -0
  30. package/dist/math/value-getters/index.d.ts +4 -0
  31. package/dist/math/value-getters/value-getter-map.d.ts +2 -0
  32. package/dist/math/{value-getter.d.ts → value-getters/value-getter.d.ts} +8 -5
  33. package/dist/math/value-getters/vector4-curve.d.ts +12 -0
  34. package/dist/plugin-system.d.ts +7 -5
  35. package/dist/plugins/cal/calculate-item.d.ts +5 -3
  36. package/dist/plugins/cal/calculate-loader.d.ts +1 -1
  37. package/dist/plugins/cal/calculate-vfx-item.d.ts +1 -1
  38. package/dist/plugins/cal/playable-graph.d.ts +1 -2
  39. package/dist/plugins/camera/camera-vfx-item-loader.d.ts +1 -1
  40. package/dist/plugins/index.d.ts +2 -7
  41. package/dist/plugins/interact/interact-item.d.ts +12 -0
  42. package/dist/plugins/interact/interact-loader.d.ts +1 -1
  43. package/dist/plugins/interact/mesh-collider.d.ts +15 -0
  44. package/dist/plugins/particle/burst.d.ts +2 -0
  45. package/dist/plugins/particle/particle-mesh.d.ts +10 -0
  46. package/dist/plugins/particle/particle-system.d.ts +4 -4
  47. package/dist/plugins/plugin.d.ts +14 -3
  48. package/dist/plugins/shape/build-adaptive-bezier.d.ts +1 -0
  49. package/dist/plugins/shape/ellipse.d.ts +79 -0
  50. package/dist/plugins/shape/graphics-path.d.ts +65 -0
  51. package/dist/plugins/shape/point-data.d.ts +6 -0
  52. package/dist/plugins/shape/point-like.d.ts +31 -0
  53. package/dist/plugins/shape/point.d.ts +58 -0
  54. package/dist/plugins/shape/poly-star.d.ts +42 -0
  55. package/dist/plugins/shape/polygon.d.ts +67 -0
  56. package/dist/plugins/shape/rectangle.d.ts +129 -0
  57. package/dist/plugins/shape/shape-path.d.ts +75 -0
  58. package/dist/plugins/shape/shape-primitive.d.ts +15 -0
  59. package/dist/plugins/shape/triangle.d.ts +89 -0
  60. package/dist/plugins/shape/triangulate.d.ts +1 -0
  61. package/dist/plugins/sprite/sprite-item.d.ts +15 -116
  62. package/dist/plugins/sprite/sprite-loader.d.ts +1 -1
  63. package/dist/plugins/sprite/sprite-mesh.d.ts +3 -4
  64. package/dist/plugins/text/text-item.d.ts +15 -5
  65. package/dist/plugins/timeline/index.d.ts +3 -0
  66. package/dist/plugins/timeline/playable-assets/color-property-playable-asset.d.ts +7 -0
  67. package/dist/plugins/timeline/playable-assets/float-property-playable-asset.d.ts +7 -0
  68. package/dist/plugins/timeline/playable-assets/index.d.ts +3 -0
  69. package/dist/plugins/{cal → timeline/playable-assets}/timeline-asset.d.ts +9 -9
  70. package/dist/plugins/timeline/playable-assets/vector4-property-playable-asset.d.ts +7 -0
  71. package/dist/plugins/timeline/playables/color-property-mixer-playable.d.ts +6 -0
  72. package/dist/plugins/timeline/playables/float-property-mixer-playable.d.ts +6 -0
  73. package/dist/plugins/timeline/playables/index.d.ts +7 -0
  74. package/dist/plugins/timeline/playables/property-clip-playable.d.ts +8 -0
  75. package/dist/plugins/timeline/playables/sub-composition-mixer-playable.d.ts +5 -0
  76. package/dist/plugins/timeline/playables/vector4-property-mixer-playable.d.ts +6 -0
  77. package/dist/plugins/timeline/track-instance.d.ts +14 -0
  78. package/dist/plugins/timeline/track.d.ts +6 -4
  79. package/dist/plugins/timeline/tracks/color-property-track.d.ts +5 -0
  80. package/dist/plugins/timeline/tracks/float-property-track.d.ts +6 -0
  81. package/dist/plugins/timeline/tracks/index.d.ts +9 -0
  82. package/dist/plugins/timeline/tracks/material-track.d.ts +5 -0
  83. package/dist/plugins/timeline/tracks/property-track.d.ts +8 -0
  84. package/dist/plugins/timeline/tracks/sub-composition-track.d.ts +3 -1
  85. package/dist/plugins/timeline/tracks/vector4-property-track.d.ts +5 -0
  86. package/dist/render/gpu-capability.d.ts +1 -1
  87. package/dist/render/index.d.ts +0 -1
  88. package/dist/render/mesh.d.ts +1 -1
  89. package/dist/render/render-frame.d.ts +5 -1
  90. package/dist/render/renderer.d.ts +1 -1
  91. package/dist/render/semantic-map.d.ts +1 -1
  92. package/dist/render/shader.d.ts +1 -1
  93. package/dist/scene.d.ts +17 -18
  94. package/dist/serialization-helper.d.ts +3 -3
  95. package/dist/shape/geometry.d.ts +4 -4
  96. package/dist/texture/texture.d.ts +11 -2
  97. package/dist/texture/utils.d.ts +1 -2
  98. package/dist/transform.d.ts +8 -0
  99. package/dist/utils/color.d.ts +4 -5
  100. package/dist/utils/index.d.ts +1 -1
  101. package/dist/vfx-item.d.ts +45 -9
  102. package/package.json +4 -3
  103. package/dist/image-asset.d.ts +0 -5
  104. package/dist/render/global-volume.d.ts +0 -17
  105. /package/dist/plugins/timeline/{playables → playable-assets}/sub-composition-playable-asset.d.ts +0 -0
@@ -0,0 +1,26 @@
1
+ import * as spec from '@galacean/effects-specification';
2
+ import { type ValueGetter } from '../math';
3
+ import type { FrameContext } from '../plugins/cal/playable-graph';
4
+ import { Playable } from '../plugins/cal/playable-graph';
5
+ import { VFXItem } from '../vfx-item';
6
+ import type { Material } from '../material';
7
+ import type { ColorStop } from '../utils';
8
+ import { BaseRenderComponent } from '../components';
9
+ export interface ColorPlayableAssetData extends spec.EffectsObjectData {
10
+ colorOverLifetime?: spec.ColorOverLifetime;
11
+ }
12
+ export declare class ColorPlayable extends Playable {
13
+ clipData: {
14
+ colorOverLifetime?: spec.ColorOverLifetime;
15
+ startColor?: spec.RGBAColorValue;
16
+ };
17
+ colorOverLifetime: ColorStop[];
18
+ opacityOverLifetime: ValueGetter<number>;
19
+ startColor: spec.RGBAColorValue;
20
+ renderColor: spec.vec4;
21
+ activeComponent?: BaseRenderComponent;
22
+ activeMaterial?: Material;
23
+ processFrame(context: FrameContext): void;
24
+ create(clipData: ColorPlayableAssetData): this;
25
+ getActiveComponent(boundObject: VFXItem): BaseRenderComponent;
26
+ }
@@ -0,0 +1 @@
1
+ export * from './color-playable';
@@ -1,5 +1,6 @@
1
1
  import { Downloader } from './downloader';
2
- import type { Scene, SceneLoadOptions, SceneType } from './scene';
2
+ import type { SceneLoadOptions } from './scene';
3
+ import { Scene } from './scene';
3
4
  import type { Disposable } from './utils';
4
5
  import type { Renderer } from './render';
5
6
  /**
@@ -7,20 +8,24 @@ import type { Renderer } from './render';
7
8
  * 用于加载和动效中所有的资源文件,包括图片、插件、图层粒子数据等
8
9
  */
9
10
  export declare class AssetManager implements Disposable {
10
- private options;
11
+ options: Omit<SceneLoadOptions, 'speed' | 'autoplay' | 'reusable'>;
11
12
  private readonly downloader;
12
13
  /**
13
- * 相对url的基本路径
14
+ * 相对 url 的基本路径
14
15
  */
15
16
  private baseUrl;
16
17
  /**
17
- * 图像资源,用于创建和释放GPU纹理资源
18
+ * 图像资源,用于创建和释放 GPU 纹理资源
18
19
  */
19
20
  private assets;
21
+ /**
22
+ * TextureSource 来源
23
+ */
24
+ private sourceFrom;
20
25
  /**
21
26
  * 自定义文本缓存,随页面销毁而销毁
22
27
  */
23
- static fonts: Set<string>;
28
+ private static fontCache;
24
29
  private id;
25
30
  /**
26
31
  * 加载超时时间
@@ -36,12 +41,8 @@ export declare class AssetManager implements Disposable {
36
41
  * @param options - 场景加载参数
37
42
  * @param downloader - 资源下载对象
38
43
  */
39
- constructor(options?: SceneLoadOptions, downloader?: Downloader);
44
+ constructor(options?: Omit<SceneLoadOptions, 'speed' | 'autoplay' | 'reusable'>, downloader?: Downloader);
40
45
  updateOptions(options?: SceneLoadOptions): void;
41
- /**
42
- * 根据用户传入的参数修改场景数据
43
- */
44
- private updateSceneData;
45
46
  /**
46
47
  * 场景创建,通过 json 创建出场景对象,并进行提前编译等工作
47
48
  * @param url - json 的 URL 链接或者 json 对象
@@ -49,7 +50,7 @@ export declare class AssetManager implements Disposable {
49
50
  * @param options - 扩展参数
50
51
  * @returns
51
52
  */
52
- loadScene(url: SceneType, renderer?: Renderer, options?: {
53
+ loadScene(url: Scene.LoadType, renderer?: Renderer, options?: {
53
54
  env: string;
54
55
  }): Promise<Scene>;
55
56
  private precompile;
@@ -57,9 +58,12 @@ export declare class AssetManager implements Disposable {
57
58
  private processBins;
58
59
  private processFontURL;
59
60
  private processImages;
61
+ private processPluginAssets;
62
+ private prepareAssets;
60
63
  private processTextures;
61
64
  private loadJSON;
62
65
  private loadBins;
66
+ private assignImagesToAssets;
63
67
  private removeTimer;
64
68
  /**
65
69
  * 销毁方法
@@ -0,0 +1,4 @@
1
+ import { EffectsObject } from './effects-object';
2
+ export declare class Asset<T> extends EffectsObject {
3
+ data: T;
4
+ }
@@ -1,6 +1,6 @@
1
- import type { EffectsObjectData } from '@galacean/effects-specification';
1
+ import * as spec from '@galacean/effects-specification';
2
2
  import { EffectsObject } from './effects-object';
3
3
  export declare class BinaryAsset extends EffectsObject {
4
4
  buffer: ArrayBuffer;
5
- fromData(data: EffectsObjectData): void;
5
+ fromData(data: spec.EffectsObjectData): void;
6
6
  }
@@ -2,7 +2,6 @@ import type { Ray } from '@galacean/effects-math/es/core/ray';
2
2
  import * as spec from '@galacean/effects-specification';
3
3
  import { Behaviour } from './components';
4
4
  import type { CompositionHitTestOptions } from './composition';
5
- import type { ContentOptions } from './composition-source-manager';
6
5
  import type { Region, TrackAsset } from './plugins';
7
6
  import { VFXItem } from './vfx-item';
8
7
  export interface SceneBinding {
@@ -19,9 +18,7 @@ export interface SceneBindingData {
19
18
  export declare class CompositionComponent extends Behaviour {
20
19
  time: number;
21
20
  startTime: number;
22
- refId: string;
23
21
  items: VFXItem[];
24
- data: ContentOptions;
25
22
  private reusable;
26
23
  private sceneBindings;
27
24
  private timelineAsset;
@@ -32,9 +29,11 @@ export declare class CompositionComponent extends Behaviour {
32
29
  getReusable(): boolean;
33
30
  onUpdate(dt: number): void;
34
31
  createContent(): void;
32
+ showItems(): void;
33
+ hideItems(): void;
35
34
  onDestroy(): void;
36
35
  hitTest(ray: Ray, x: number, y: number, regions: Region[], force?: boolean, options?: CompositionHitTestOptions): Region[];
37
- fromData(data: unknown): void;
36
+ fromData(data: any): void;
38
37
  private resolveBindings;
39
- private resolveTrackBindingsWithRoot;
38
+ private updateTrackAnimatedObject;
40
39
  }
@@ -0,0 +1,108 @@
1
+ import * as spec from '@galacean/effects-specification';
2
+ import { Matrix4 } from '@galacean/effects-math/es/core/matrix4';
3
+ import { RendererComponent } from './renderer-component';
4
+ import type { Texture } from '../texture';
5
+ import type { GeometryDrawMode, Renderer } from '../render';
6
+ import { Geometry } from '../render';
7
+ import type { Engine } from '../engine';
8
+ import type { BoundingBoxTriangle, HitTestTriangleParams } from '../plugins';
9
+ import { Material } from '../material';
10
+ import type { GeometryFromShape } from '../shape';
11
+ /**
12
+ * 图层元素渲染属性, 经过处理后的 spec.SpriteContent.renderer
13
+ */
14
+ export interface ItemRenderer extends Required<Omit<spec.RendererOptions, 'texture' | 'shape' | 'anchor' | 'particleOrigin'>> {
15
+ order: number;
16
+ mask: number;
17
+ texture: Texture;
18
+ shape?: GeometryFromShape;
19
+ anchor?: spec.vec2;
20
+ particleOrigin?: spec.ParticleOrigin;
21
+ }
22
+ /**
23
+ * 图层的渲染属性,用于 Mesh 的合并判断
24
+ */
25
+ export interface ItemRenderInfo {
26
+ side: number;
27
+ occlusion: boolean;
28
+ blending: number;
29
+ cachePrefix: string;
30
+ mask: number;
31
+ maskMode: number;
32
+ cacheId: string;
33
+ wireframe?: boolean;
34
+ }
35
+ /**
36
+ * @since 2.1.0
37
+ */
38
+ export declare class BaseRenderComponent extends RendererComponent {
39
+ interaction?: {
40
+ behavior: spec.InteractBehavior;
41
+ };
42
+ cachePrefix: string;
43
+ geoData: {
44
+ atlasOffset: number[] | spec.TypedArray;
45
+ index: number[] | spec.TypedArray;
46
+ };
47
+ anchor?: spec.vec2;
48
+ renderer: ItemRenderer;
49
+ emptyTexture: Texture;
50
+ color: spec.vec4;
51
+ worldMatrix: Matrix4;
52
+ geometry: Geometry;
53
+ protected renderInfo: ItemRenderInfo;
54
+ protected readonly wireframe?: boolean;
55
+ protected preMultiAlpha: number;
56
+ protected visible: boolean;
57
+ protected isManualTimeSet: boolean;
58
+ protected frameAnimationTime: number;
59
+ /**
60
+ *
61
+ * @param engine
62
+ */
63
+ constructor(engine: Engine);
64
+ /**
65
+ * 设置当前 Mesh 的可见性。
66
+ * @param visible - true:可见,false:不可见
67
+ */
68
+ setVisible(visible: boolean): void;
69
+ /**
70
+ * 获取当前 Mesh 的可见性。
71
+ */
72
+ getVisible(): boolean;
73
+ /**
74
+ * 设置当前图层的颜色
75
+ * > Tips: 透明度也属于颜色的一部分,当有透明度/颜色 K 帧变化时,该 API 会失效
76
+ * @since 2.0.0
77
+ * @param color - 颜色值
78
+ */
79
+ setColor(color: spec.vec4): void;
80
+ /**
81
+ * 设置当前 Mesh 的纹理
82
+ * @since 2.0.0
83
+ * @param texture - 纹理对象
84
+ */
85
+ setTexture(texture: Texture): void;
86
+ render(renderer: Renderer): void;
87
+ onStart(): void;
88
+ onDestroy(): void;
89
+ protected getItemInitData(): {
90
+ atlasOffset: spec.TypedArray | number[];
91
+ index: number[];
92
+ };
93
+ protected setItem(): void;
94
+ protected getItemGeometryData(): {
95
+ index: number[];
96
+ atlasOffset: number[];
97
+ };
98
+ protected createGeometry(mode: GeometryDrawMode): Geometry;
99
+ protected createMaterial(renderInfo: ItemRenderInfo, count: number): Material;
100
+ getTextures(): Texture[];
101
+ /**
102
+ * 获取图层包围盒的类型和世界坐标
103
+ * @returns
104
+ */
105
+ getBoundingBox(): BoundingBoxTriangle | void;
106
+ getHitTestParams: (force?: boolean) => HitTestTriangleParams | undefined;
107
+ }
108
+ export declare function getImageItemRenderInfo(item: BaseRenderComponent): ItemRenderInfo;
@@ -1,42 +1,11 @@
1
- import { Matrix4 } from '@galacean/effects-math/es/core/matrix4';
2
1
  import type { Engine } from '../engine';
3
- import type { Material, MaterialDestroyOptions } from '../material';
4
- import type { BoundingBoxTriangle, HitTestTriangleParams } from '../plugins';
5
- import type { MeshDestroyOptions, Renderer } from '../render';
6
- import type { Geometry } from '../render';
7
- import { DestroyOptions } from '../utils';
8
- import { RendererComponent } from './renderer-component';
2
+ import { MeshComponent } from './mesh-component';
9
3
  /**
10
4
  * @since 2.0.0
11
5
  */
12
- export declare class EffectComponent extends RendererComponent {
13
- /**
14
- * Mesh 的世界矩阵
15
- */
16
- worldMatrix: Matrix4;
17
- /**
18
- * Mesh 的 Geometry
19
- */
20
- geometry: Geometry;
21
- private triangles;
22
- private destroyed;
23
- private hitTestGeometry;
6
+ export declare class EffectComponent extends MeshComponent {
24
7
  constructor(engine: Engine);
25
8
  onStart(): void;
26
- render(renderer: Renderer): void;
27
- /**
28
- * 设置当前 Mesh 的材质
29
- * @param material - 要设置的材质
30
- * @param destroy - 可选的材质销毁选项
31
- */
32
- setMaterial(material: Material, destroy?: MaterialDestroyOptions | DestroyOptions.keep): void;
33
- getHitTestParams: (force?: boolean) => HitTestTriangleParams | void;
34
- getBoundingBox(): BoundingBoxTriangle | void;
9
+ onUpdate(dt: number): void;
35
10
  fromData(data: unknown): void;
36
- toData(): void;
37
- /**
38
- * 销毁当前资源
39
- * @param options - 可选的销毁选项
40
- */
41
- dispose(options?: MeshDestroyOptions): void;
42
11
  }
@@ -0,0 +1,28 @@
1
+ import { Component } from './component';
2
+ import { EffectComponent } from './effect-component';
3
+ export declare class Fake3DComponent extends Component {
4
+ loop: boolean;
5
+ amountOfMotion: number;
6
+ animationLength: number;
7
+ mode: Fake3DAnimationMode;
8
+ startPositionX: number;
9
+ startPositionY: number;
10
+ startPositionZ: number;
11
+ endPositionX: number;
12
+ endPositionY: number;
13
+ endPositionZ: number;
14
+ amplitudeX: number;
15
+ amplitudeY: number;
16
+ amplitudeZ: number;
17
+ phaseX: number;
18
+ phaseY: number;
19
+ phaseZ: number;
20
+ effectComponent: EffectComponent;
21
+ onStart(): void;
22
+ onUpdate(dt: number): void;
23
+ updateFake3D(): void;
24
+ }
25
+ export declare enum Fake3DAnimationMode {
26
+ Circular = 0,
27
+ Linear = 1
28
+ }
@@ -2,3 +2,6 @@ export * from './renderer-component';
2
2
  export * from './component';
3
3
  export * from './effect-component';
4
4
  export * from './post-process-volume';
5
+ export * from './base-render-component';
6
+ export * from './shape-component';
7
+ export * from './fake-3d-component';
@@ -0,0 +1,21 @@
1
+ import type { BoundingBoxTriangle, HitTestTriangleParams } from '../plugins';
2
+ import { MeshCollider } from '../plugins';
3
+ import type { Geometry } from '../render/geometry';
4
+ import type { Renderer } from '../render/renderer';
5
+ import { RendererComponent } from './renderer-component';
6
+ /**
7
+ * Mesh 组件
8
+ */
9
+ export declare class MeshComponent extends RendererComponent {
10
+ /**
11
+ * 渲染的 Geometry
12
+ */
13
+ protected geometry: Geometry;
14
+ /**
15
+ * 用于点击测试的碰撞器
16
+ */
17
+ protected meshCollider: MeshCollider;
18
+ render(renderer: Renderer): void;
19
+ getHitTestParams: (force?: boolean) => HitTestTriangleParams | void;
20
+ getBoundingBox(): BoundingBoxTriangle | void;
21
+ }
@@ -1,7 +1,9 @@
1
1
  import { Behaviour } from './component';
2
+ /**
3
+ * @since 2.1.0
4
+ */
2
5
  export declare class PostProcessVolume extends Behaviour {
3
- useHDR: boolean;
4
- useBloom: boolean;
6
+ bloomEnabled: boolean;
5
7
  threshold: number;
6
8
  bloomIntensity: number;
7
9
  brightness: number;
@@ -10,6 +12,6 @@ export declare class PostProcessVolume extends Behaviour {
10
12
  vignetteIntensity: number;
11
13
  vignetteSmoothness: number;
12
14
  vignetteRoundness: number;
13
- useToneMapping: boolean;
15
+ toneMappingEnabled: boolean;
14
16
  onStart(): void;
15
17
  }
@@ -0,0 +1,291 @@
1
+ import type * as spec from '@galacean/effects-specification';
2
+ import type { Engine } from '../engine';
3
+ import { MeshComponent } from './mesh-component';
4
+ /**
5
+ * 图形组件
6
+ * @since 2.1.0
7
+ */
8
+ export declare class ShapeComponent extends MeshComponent {
9
+ private path;
10
+ private curveValues;
11
+ private data;
12
+ private animated;
13
+ private vert;
14
+ private frag;
15
+ /**
16
+ *
17
+ * @param engine
18
+ */
19
+ constructor(engine: Engine);
20
+ onStart(): void;
21
+ onUpdate(dt: number): void;
22
+ private buildGeometryFromPath;
23
+ private buildPath;
24
+ fromData(data: ShapeComponentData): void;
25
+ }
26
+ /************************** Test Interface **********************************/
27
+ /**
28
+ * 矢量图形组件
29
+ */
30
+ export interface ShapeComponentData extends spec.ComponentData {
31
+ shapeDatas: ShapeData[];
32
+ }
33
+ /**
34
+ * 矢量图形类型
35
+ */
36
+ export declare enum ShapeType {
37
+ /**
38
+ * 自定义图形
39
+ */
40
+ Custom = 0,
41
+ /**
42
+ * 矩形
43
+ */
44
+ Rectangle = 1,
45
+ /**
46
+ * 椭圆
47
+ */
48
+ Ellipse = 2,
49
+ /**
50
+ * 多边形
51
+ */
52
+ Polygon = 3,
53
+ /**
54
+ * 星形
55
+ */
56
+ Star = 4
57
+ }
58
+ export declare class ShapeData {
59
+ /**
60
+ * 矢量类型
61
+ */
62
+ type: ShapeType;
63
+ }
64
+ /**
65
+ * 自定义图形组件
66
+ */
67
+ export interface CustomShapeData extends ShapeData {
68
+ /**
69
+ * 矢量类型 - 形状
70
+ */
71
+ type: ShapeType.Custom;
72
+ /**
73
+ * 路径点
74
+ */
75
+ points: spec.Vector3Data[];
76
+ /**
77
+ * 入射控制点
78
+ */
79
+ easingIns: spec.Vector3Data[];
80
+ /**
81
+ * 入射控制点
82
+ */
83
+ easingOuts: spec.Vector3Data[];
84
+ /**
85
+ * 自定义形状
86
+ */
87
+ shapes: CustomShape[];
88
+ }
89
+ /**
90
+ * 自定义形状参数
91
+ */
92
+ export interface CustomShape {
93
+ /**
94
+ * 是否垂直与平面 - 用于减少实时运算
95
+ */
96
+ verticalToPlane: 'x' | 'y' | 'z' | 'none';
97
+ /**
98
+ * 点索引 - 用于构成闭合图形
99
+ */
100
+ indexes: CustomShapePoint[];
101
+ /**
102
+ * 是否为闭合图形 - 用于Stroke
103
+ */
104
+ close: boolean;
105
+ /**
106
+ * 填充属性
107
+ */
108
+ fill?: ShapeFillParam;
109
+ /**
110
+ * 描边属性
111
+ */
112
+ stroke?: ShapeStrokeParam;
113
+ /**
114
+ * 空间变换
115
+ */
116
+ transform?: spec.TransformData;
117
+ }
118
+ /**
119
+ * 自定义形状点
120
+ */
121
+ export interface CustomShapePoint {
122
+ /**
123
+ * 顶点索引
124
+ */
125
+ point: number;
126
+ /**
127
+ * 入射点索引
128
+ */
129
+ easingIn: number;
130
+ /**
131
+ * 出射点索引
132
+ */
133
+ easingOut: number;
134
+ }
135
+ /**
136
+ * 矢量填充参数
137
+ */
138
+ export interface ShapeFillParam {
139
+ /**
140
+ * 填充颜色
141
+ */
142
+ color: spec.ColorExpression;
143
+ }
144
+ /**
145
+ * 矢量描边参数
146
+ */
147
+ export interface ShapeStrokeParam {
148
+ /**
149
+ * 线宽
150
+ */
151
+ width: number;
152
+ /**
153
+ * 线颜色
154
+ */
155
+ color: spec.ColorExpression;
156
+ /**
157
+ * 连接类型
158
+ */
159
+ connectType: ShapeConnectType;
160
+ /**
161
+ * 点类型
162
+ */
163
+ pointType: ShapePointType;
164
+ }
165
+ export declare enum ShapeConnectType {
166
+ }
167
+ export declare enum ShapePointType {
168
+ }
169
+ /**
170
+ * 椭圆组件参数
171
+ */
172
+ export interface EllipseData extends ShapeData {
173
+ type: ShapeType.Ellipse;
174
+ /**
175
+ * x 轴半径
176
+ * -- TODO 后续完善类型
177
+ * -- TODO 可以看一下用xRadius/yRadius 还是 width/height
178
+ */
179
+ xRadius: number;
180
+ /**
181
+ * y 轴半径
182
+ */
183
+ yRadius: number;
184
+ /**
185
+ * 填充属性
186
+ */
187
+ fill?: ShapeFillParam;
188
+ /**
189
+ * 描边属性
190
+ */
191
+ stroke?: ShapeStrokeParam;
192
+ /**
193
+ * 空间变换
194
+ */
195
+ transform?: spec.TransformData;
196
+ }
197
+ /**
198
+ * 星形参数
199
+ */
200
+ export interface StarData extends ShapeData {
201
+ /**
202
+ * 顶点数 - 内外顶点同数
203
+ */
204
+ pointCount: number;
205
+ /**
206
+ * 内径
207
+ */
208
+ innerRadius: number;
209
+ /**
210
+ * 外径
211
+ */
212
+ outerRadius: number;
213
+ /**
214
+ * 内径点圆度
215
+ */
216
+ innerRoundness: number;
217
+ /**
218
+ * 外径点圆度
219
+ */
220
+ outerRoundness: number;
221
+ /**
222
+ * 填充属性
223
+ */
224
+ fill?: ShapeFillParam;
225
+ /**
226
+ * 描边属性
227
+ */
228
+ stroke?: ShapeStrokeParam;
229
+ /**
230
+ * 空间变换
231
+ */
232
+ transform?: spec.TransformData;
233
+ }
234
+ /**
235
+ * 多边形参数
236
+ */
237
+ export interface PolygonData extends ShapeData {
238
+ /**
239
+ * 顶点数
240
+ */
241
+ pointCount: number;
242
+ /**
243
+ * 外切圆半径
244
+ */
245
+ radius: number;
246
+ /**
247
+ * 角点圆度
248
+ */
249
+ roundness: number;
250
+ /**
251
+ * 填充属性
252
+ */
253
+ fill?: ShapeFillParam;
254
+ /**
255
+ * 描边属性
256
+ */
257
+ stroke?: ShapeStrokeParam;
258
+ /**
259
+ * 空间变换
260
+ */
261
+ transform?: spec.TransformData;
262
+ }
263
+ /**
264
+ * 矩形参数
265
+ */
266
+ export interface RectangleData extends ShapeData {
267
+ /**
268
+ * 宽度
269
+ */
270
+ width: number;
271
+ /**
272
+ * 高度
273
+ */
274
+ height: number;
275
+ /**
276
+ * 角点元素
277
+ */
278
+ roundness: number;
279
+ /**
280
+ * 填充属性
281
+ */
282
+ fill?: ShapeFillParam;
283
+ /**
284
+ * 描边属性
285
+ */
286
+ stroke?: ShapeStrokeParam;
287
+ /**
288
+ * 空间变换
289
+ */
290
+ transform?: spec.TransformData;
291
+ }
@@ -1,9 +1,23 @@
1
- import { Component } from '../components/component';
1
+ import { Component } from '../components';
2
+ /**
3
+ *
4
+ */
2
5
  export declare class SceneTicking {
3
6
  update: UpdateTickData;
4
7
  lateUpdate: LateUpdateTickData;
8
+ /**
9
+ *
10
+ * @param obj
11
+ */
5
12
  addComponent(obj: Component): void;
13
+ /**
14
+ *
15
+ * @param obj
16
+ */
6
17
  removeComponent(obj: Component): void;
18
+ /**
19
+ *
20
+ */
7
21
  clear(): void;
8
22
  }
9
23
  declare class TickData {