@galacean/effects-core 2.9.0-alpha.1 → 2.9.0-alpha.2
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.
- package/dist/components/component.d.ts +4 -0
- package/dist/components/composition-component.d.ts +1 -4
- package/dist/components/renderer-component.d.ts +8 -1
- package/dist/components/shape-component.d.ts +2 -0
- package/dist/effects-object.d.ts +1 -1
- package/dist/index.js +327 -224
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +327 -224
- package/dist/index.mjs.map +1 -1
- package/dist/material/types.d.ts +2 -0
- package/dist/math/shape/build-adaptive-bezier.d.ts +1 -1
- package/dist/math/shape/circle.d.ts +1 -1
- package/dist/math/shape/ellipse.d.ts +1 -1
- package/dist/math/shape/graphics-path.d.ts +1 -1
- package/dist/math/shape/poly-star.d.ts +1 -1
- package/dist/math/shape/polygon.d.ts +1 -1
- package/dist/math/shape/rectangle.d.ts +1 -1
- package/dist/math/shape/shape-path.d.ts +1 -1
- package/dist/math/shape/shape-primitive.d.ts +1 -1
- package/dist/math/shape/triangle.d.ts +1 -1
- package/dist/plugins/interact/click-handler.d.ts +5 -0
- package/dist/plugins/text/text-item.d.ts +1 -1
- package/dist/scene.d.ts +0 -1
- package/dist/vfx-item.d.ts +18 -3
- package/package.json +1 -1
package/dist/material/types.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type * as spec from '@galacean/effects-specification';
|
|
|
2
2
|
import type { Matrix3, Matrix4, Vector2, Vector3, Vector4 } from '@galacean/effects-math/es/core/index';
|
|
3
3
|
import type { Texture } from '../texture';
|
|
4
4
|
import type { DestroyOptions } from '../utils';
|
|
5
|
+
import type { VFXItem } from '../vfx-item';
|
|
5
6
|
export type UniformSemantic = 'VIEW' | 'MODEL' | 'MODELVIEW' | 'PROJECTION' | 'VIEWPROJECTION' | 'VIEWINVERSE' | 'EDITOR_TRANSFORM' | 'MODELVIEWPROJECTION';
|
|
6
7
|
export interface MaterialBlendingStates {
|
|
7
8
|
blending?: boolean;
|
|
@@ -63,6 +64,7 @@ export declare enum ShaderType {
|
|
|
63
64
|
*
|
|
64
65
|
*/
|
|
65
66
|
export interface Maskable {
|
|
67
|
+
item: VFXItem;
|
|
66
68
|
drawStencilMask(maskRef: number): void;
|
|
67
69
|
}
|
|
68
70
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function buildAdaptiveBezier(points: number[], sX: number, sY: number, cp1x: number, cp1y: number, cp2x: number, cp2y: number, eX: number, eY: number, smoothness?: number): number[];
|
|
1
|
+
export declare function buildAdaptiveBezier(points: number[], sX: number, sY: number, cp1x: number, cp1y: number, cp2x: number, cp2y: number, eX: number, eY: number, smoothness?: number, scale?: number): number[];
|
|
@@ -191,6 +191,6 @@ export declare class Circle extends ShapePrimitive {
|
|
|
191
191
|
* @see {@link Circle.clone} For creating new circle copy
|
|
192
192
|
*/
|
|
193
193
|
copyTo(circle: Circle): Circle;
|
|
194
|
-
build(points: number[]): void;
|
|
194
|
+
build(points: number[], screenScale?: number): void;
|
|
195
195
|
triangulate(points: number[], vertices: number[], verticesOffset: number, indices: number[], indicesOffset: number): void;
|
|
196
196
|
}
|
|
@@ -74,6 +74,6 @@ export declare class Ellipse extends ShapePrimitive {
|
|
|
74
74
|
copyTo(ellipse: Ellipse): Ellipse;
|
|
75
75
|
getX(): number;
|
|
76
76
|
getY(): number;
|
|
77
|
-
build(points: number[]): number[];
|
|
77
|
+
build(points: number[], screenScale?: number): number[];
|
|
78
78
|
triangulate(points: number[], vertices: number[], verticesOffset: number, indices: number[], indicesOffset: number): void;
|
|
79
79
|
}
|
|
@@ -23,7 +23,7 @@ export declare class GraphicsPath {
|
|
|
23
23
|
* @param smoothness - Optional parameter to adjust the smoothness of the curve.
|
|
24
24
|
* @returns The instance of the current object for chaining.
|
|
25
25
|
*/
|
|
26
|
-
bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number, smoothness?: number): GraphicsPath;
|
|
26
|
+
bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number, smoothness?: number, scale?: number): GraphicsPath;
|
|
27
27
|
/**
|
|
28
28
|
* Connects the current point to a new point with a straight line. This method updates the current path.
|
|
29
29
|
* @param x - The x-coordinate of the new point to connect to.
|
|
@@ -35,7 +35,7 @@ export declare class PolyStar extends ShapePrimitive {
|
|
|
35
35
|
clone(): ShapePrimitive;
|
|
36
36
|
copyFrom(source: PolyStar): void;
|
|
37
37
|
copyTo(destination: PolyStar): void;
|
|
38
|
-
build(points: number[]): void;
|
|
38
|
+
build(points: number[], screenScale?: number): void;
|
|
39
39
|
triangulate(points: number[], vertices: number[], verticesOffset: number, indices: number[], indicesOffset: number): void;
|
|
40
40
|
private buildStarPath;
|
|
41
41
|
private buildPolygonPath;
|
|
@@ -58,7 +58,7 @@ export declare class Polygon extends ShapePrimitive {
|
|
|
58
58
|
* @readonly
|
|
59
59
|
*/
|
|
60
60
|
getY(): number;
|
|
61
|
-
build(points: number[]): void;
|
|
61
|
+
build(points: number[], screenScale?: number): void;
|
|
62
62
|
triangulate(points: number[], vertices: number[], verticesOffset: number, indices: number[], indicesOffset: number): void;
|
|
63
63
|
/**
|
|
64
64
|
* 获取直线上最远的两个端点坐标组成的三角形
|
|
@@ -57,6 +57,6 @@ export declare class Rectangle extends ShapePrimitive {
|
|
|
57
57
|
* @returns Returns given parameter.
|
|
58
58
|
*/
|
|
59
59
|
copyTo(rectangle: Rectangle): Rectangle;
|
|
60
|
-
build(points: number[]): void;
|
|
60
|
+
build(points: number[], screenScale?: number): void;
|
|
61
61
|
triangulate(points: number[], vertices: number[], verticesOffset: number, indices: number[], indicesOffset: number): void;
|
|
62
62
|
}
|
|
@@ -26,7 +26,7 @@ export declare class ShapePath {
|
|
|
26
26
|
* @param smoothness - Optional parameter to adjust the smoothness of the curve.
|
|
27
27
|
* @returns The instance of the current object for chaining.
|
|
28
28
|
*/
|
|
29
|
-
bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number, smoothness?: number): ShapePath;
|
|
29
|
+
bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number, smoothness?: number, scale?: number): ShapePath;
|
|
30
30
|
moveTo(x: number, y: number): ShapePath;
|
|
31
31
|
/**
|
|
32
32
|
* Connects the current point to a new point with a straight line. This method updates the current path.
|
|
@@ -10,6 +10,6 @@ export declare abstract class ShapePrimitive {
|
|
|
10
10
|
/** Returns the framing rectangle of the ShapePrimitive as a Rectangle object. */
|
|
11
11
|
/** The X coordinate of the shape */
|
|
12
12
|
/** The Y coordinate of the shape */
|
|
13
|
-
abstract build(points: number[]): void;
|
|
13
|
+
abstract build(points: number[], screenScale?: number): void;
|
|
14
14
|
abstract triangulate(points: number[], vertices: number[], verticesOffset: number, indices: number[], indicesOffset: number): void;
|
|
15
15
|
}
|
|
@@ -84,6 +84,6 @@ export declare class Triangle extends ShapePrimitive {
|
|
|
84
84
|
getBounds(out?: Rectangle): Rectangle;
|
|
85
85
|
getX(): number;
|
|
86
86
|
getY(): number;
|
|
87
|
-
build(points: number[]): void;
|
|
87
|
+
build(points: number[], screenScale?: number): void;
|
|
88
88
|
triangulate(points: number[], vertices: number[], verticesOffset: number, indices: number[], indicesOffset: number): void;
|
|
89
89
|
}
|
|
@@ -3,6 +3,7 @@ import { Vector2 } from '@galacean/effects-math/es/core/vector2';
|
|
|
3
3
|
import type * as spec from '@galacean/effects-specification';
|
|
4
4
|
import type { VFXItem } from '../../vfx-item';
|
|
5
5
|
import type { Composition } from '../../composition';
|
|
6
|
+
import type { Maskable } from '../../material';
|
|
6
7
|
export declare enum HitTestType {
|
|
7
8
|
triangle = 1,
|
|
8
9
|
box = 2,
|
|
@@ -28,23 +29,27 @@ export interface HitTestTriangleParams {
|
|
|
28
29
|
type: HitTestType.triangle;
|
|
29
30
|
triangles: TriangleLike[];
|
|
30
31
|
backfaceCulling?: boolean;
|
|
32
|
+
clipMasks: Maskable[];
|
|
31
33
|
behavior?: spec.InteractBehavior;
|
|
32
34
|
}
|
|
33
35
|
export interface HitTestBoxParams {
|
|
34
36
|
type: HitTestType.box;
|
|
35
37
|
center: Vector3;
|
|
36
38
|
size: Vector3;
|
|
39
|
+
clipMasks: Maskable[];
|
|
37
40
|
behavior?: spec.InteractBehavior;
|
|
38
41
|
}
|
|
39
42
|
export interface HitTestSphereParams {
|
|
40
43
|
type: HitTestType.sphere;
|
|
41
44
|
center: Vector3;
|
|
42
45
|
radius: number;
|
|
46
|
+
clipMasks: Maskable[];
|
|
43
47
|
behavior?: spec.InteractBehavior;
|
|
44
48
|
}
|
|
45
49
|
export interface HitTestCustomParams {
|
|
46
50
|
type: HitTestType.custom;
|
|
47
51
|
collect(ray: Ray, pointInCanvas: Vector2): Vector3[] | void;
|
|
52
|
+
clipMasks: Maskable[];
|
|
48
53
|
behavior?: spec.InteractBehavior;
|
|
49
54
|
}
|
|
50
55
|
export type Region = {
|
|
@@ -133,7 +133,7 @@ export declare class TextComponent extends MaskableGraphic {
|
|
|
133
133
|
*
|
|
134
134
|
* 说明:
|
|
135
135
|
* - 使用 Canvas 2D 的 measureText,并按当前实现的逐字符排版规则累加宽度(与 updateTexture 保持一致)。
|
|
136
|
-
* - 结果为"逻辑宽度"
|
|
136
|
+
* - 结果为"逻辑宽度"(扣除 fontOffset),可直接写回 options.textWidth。,可直接写回 options.textWidth。
|
|
137
137
|
* - 通过 padding 追加少量冗余像素,用于降低边缘裁切风险。
|
|
138
138
|
*
|
|
139
139
|
* @returns 文本宽度(>= 0)
|
package/dist/scene.d.ts
CHANGED
package/dist/vfx-item.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import type { Ray } from '@galacean/effects-math/es/core/ray';
|
|
1
2
|
import { Vector3 } from '@galacean/effects-math/es/core/vector3';
|
|
2
3
|
import * as spec from '@galacean/effects-specification';
|
|
3
4
|
import type { Component } from './components';
|
|
4
|
-
import type { Composition } from './composition';
|
|
5
|
+
import type { Composition, CompositionHitTestOptions } from './composition';
|
|
5
6
|
import { EffectsObject } from './effects-object';
|
|
6
7
|
import type { Engine } from './engine';
|
|
7
8
|
import type { EventEmitterListener, EventEmitterOptions, ItemEvent } from './events';
|
|
8
|
-
import type { BoundingBoxData, HitTestBoxParams, HitTestCustomParams, HitTestSphereParams, HitTestTriangleParams } from './plugins';
|
|
9
|
+
import type { BoundingBoxData, HitTestBoxParams, HitTestCustomParams, HitTestSphereParams, HitTestTriangleParams, Region } from './plugins';
|
|
9
10
|
import { Transform } from './transform';
|
|
10
11
|
import type { Constructor, Disposable } from './utils';
|
|
11
12
|
/**
|
|
@@ -54,7 +55,7 @@ export declare class VFXItem extends EffectsObject implements Disposable {
|
|
|
54
55
|
*/
|
|
55
56
|
type: spec.ItemType;
|
|
56
57
|
/**
|
|
57
|
-
* @deprecated 2.9.0 Please use `
|
|
58
|
+
* @deprecated 2.9.0 Please use `definition` instead
|
|
58
59
|
*/
|
|
59
60
|
props: spec.VFXItemData;
|
|
60
61
|
/**
|
|
@@ -275,6 +276,19 @@ export declare class VFXItem extends EffectsObject implements Disposable {
|
|
|
275
276
|
* @param force - 元素没有开启交互也返回参数
|
|
276
277
|
*/
|
|
277
278
|
getHitTestParams(force?: boolean): void | HitTestBoxParams | HitTestTriangleParams | HitTestSphereParams | HitTestCustomParams;
|
|
279
|
+
/**
|
|
280
|
+
* 对当前元素及其子节点进行射线命中测试
|
|
281
|
+
*
|
|
282
|
+
* @param ray - 射线
|
|
283
|
+
* @param x - 归一化屏幕坐标 x
|
|
284
|
+
* @param y - 归一化屏幕坐标 y
|
|
285
|
+
* @param regions - 命中结果收集数组
|
|
286
|
+
* @param hitPositions - 共享的命中位置数组,所有 region 共享同一引用
|
|
287
|
+
* @param force - 是否强制测试无交互信息的元素
|
|
288
|
+
* @param options - 额外选项(maxCount、stop、skip)
|
|
289
|
+
* @returns 是否有任何命中
|
|
290
|
+
*/
|
|
291
|
+
hitTest(ray: Ray, x: number, y: number, regions: Region[], hitPositions: Vector3[], force?: boolean, options?: CompositionHitTestOptions): boolean;
|
|
278
292
|
/**
|
|
279
293
|
* 获取元素当前世界坐标
|
|
280
294
|
*/
|
|
@@ -286,6 +300,7 @@ export declare class VFXItem extends EffectsObject implements Disposable {
|
|
|
286
300
|
* @returns 复制的新 VFXItem
|
|
287
301
|
*/
|
|
288
302
|
duplicate(): VFXItem;
|
|
303
|
+
private onParentChanged;
|
|
289
304
|
fromData(data: spec.VFXItemData): void;
|
|
290
305
|
toData(): void;
|
|
291
306
|
/**
|