@galacean/engine-core 1.1.0-alpha.1 → 1.1.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/main.js +93 -31
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +93 -31
- package/dist/module.js +93 -31
- package/dist/module.js.map +1 -1
- package/package.json +3 -3
- package/types/RenderPipeline/MeshRenderElement.d.ts +1 -3
- package/types/RenderPipeline/RenderElementX.d.ts +12 -0
- package/types/RenderPipeline/SpriteElement.d.ts +1 -3
- package/types/RenderPipeline/SpriteMaskElement.d.ts +1 -3
- package/types/RenderPipeline/TextRenderElement.d.ts +1 -3
- package/types/SafeLoopArray.d.ts +37 -0
- package/types/Ticker.d.ts +30 -0
- package/types/Transform.d.ts +1 -0
- package/types/animation/internal/AnimationCurveOwnerLayerData.d.ts +1 -0
- package/types/asset/Loader.d.ts +1 -1
- package/types/asset/ResourceManager.d.ts +8 -0
- package/types/graphic/Primitive.d.ts +1 -0
- package/types/graphic/PrimitiveVertexBinding.d.ts +1 -0
- package/types/graphic/SubPrimitive.d.ts +9 -0
- package/types/index.d.ts +1 -1
- package/types/particle/ParticleBufferUtils.d.ts +1 -0
- package/types/particle/ParticleData.d.ts +1 -0
- package/types/particle/ParticleGenerator.d.ts +72 -0
- package/types/particle/ParticleMaterial.d.ts +28 -0
- package/types/particle/ParticleMesh.d.ts +289 -0
- package/types/particle/ParticleShaderDeclaration.d.ts +1 -0
- package/types/particle/ParticleShaderMacro.d.ts +1 -0
- package/types/particle/ParticleShaderProperty.d.ts +1 -0
- package/types/particle/ParticleSystem.d.ts +41 -0
- package/types/particle/ParticleVertexElements.d.ts +1 -0
- package/types/particle/ParticleVertexUtils.d.ts +1 -0
- package/types/particle/enum/ParticleAnimationRowMode.d.ts +9 -0
- package/types/particle/enum/ParticleAnimationType.d.ts +9 -0
- package/types/particle/enum/ParticleCurveMode.d.ts +13 -0
- package/types/particle/enum/ParticleGradientMode.d.ts +13 -0
- package/types/particle/enum/ParticleRenderMode.d.ts +17 -0
- package/types/particle/enum/ParticleScaleMode.d.ts +11 -0
- package/types/particle/enum/ParticleShapeMultiModeValue.d.ts +9 -0
- package/types/particle/enum/ParticleShapeType.d.ts +15 -0
- package/types/particle/enum/ParticleSimulationSpace.d.ts +9 -0
- package/types/particle/enum/index.d.ts +9 -0
- package/types/particle/enums/ParticleCurveMode.d.ts +9 -0
- package/types/particle/enums/ParticleGradientMode.d.ts +9 -0
- package/types/particle/enums/ParticleRandomSubSeeds.d.ts +1 -0
- package/types/particle/enums/ParticleRenderMode.d.ts +17 -0
- package/types/particle/enums/ParticleScaleMode.d.ts +11 -0
- package/types/particle/enums/ParticleSimulationSpace.d.ts +9 -0
- package/types/particle/enums/ParticleStopMode.d.ts +6 -0
- package/types/particle/enums/attributes/BillboardParticleVertexAttribute.d.ts +1 -0
- package/types/particle/enums/attributes/MeshParticleVertexAttribute.d.ts +5 -0
- package/types/particle/enums/attributes/ParticleInstanceVertexAttribute.d.ts +1 -0
- package/types/particle/module/Burst.d.ts +38 -0
- package/types/particle/module/ColorGradient.d.ts +75 -0
- package/types/particle/module/ColorOverLifetimeModule.d.ts +20 -0
- package/types/particle/module/EmissionModule.d.ts +63 -0
- package/types/particle/module/FrameOverTime.d.ts +73 -0
- package/types/particle/module/ParticleCurve.d.ts +37 -0
- package/types/particle/module/RotationOverLifetimeModule.d.ts +21 -0
- package/types/particle/module/RotationVelocityGradient.d.ts +184 -0
- package/types/particle/module/SizeGradient.d.ts +151 -0
- package/types/particle/module/SizeOverLifetimeModule.d.ts +21 -0
- package/types/particle/module/StartFrame.d.ts +46 -0
- package/types/particle/module/TextureSheetAnimationModule.d.ts +37 -0
- package/types/particle/module/VelocityGradient.d.ts +110 -0
- package/types/particle/module/VelocityOverLifetimeModule.d.ts +22 -0
- package/types/particle/module/index.d.ts +15 -0
- package/types/particle/module/shape/BaseShape.d.ts +26 -0
- package/types/particle/module/shape/BoxShape.d.ts +20 -0
- package/types/particle/module/shape/CircleShape.d.ts +27 -0
- package/types/particle/module/shape/ConeShape.d.ts +35 -0
- package/types/particle/module/shape/HemisphereShape.d.ts +23 -0
- package/types/particle/module/shape/ShapeUtils.d.ts +1 -0
- package/types/particle/module/shape/SphereShape.d.ts +23 -0
- package/types/particle/module/shape/index.d.ts +5 -0
- package/types/particle/modules/Burst.d.ts +14 -0
- package/types/particle/modules/ColorOverLifetimeModule.d.ts +20 -0
- package/types/particle/modules/EmissionModule.d.ts +45 -0
- package/types/particle/modules/MainModule.d.ts +68 -0
- package/types/particle/modules/ParticleCompositeCurve.d.ts +56 -0
- package/types/particle/modules/ParticleCompositeGradient.d.ts +55 -0
- package/types/particle/modules/ParticleCurve.d.ts +56 -0
- package/types/particle/modules/ParticleGeneratorModule.d.ts +12 -0
- package/types/particle/modules/ParticleGradient.d.ts +94 -0
- package/types/particle/modules/RotationOverLifetimeModule.d.ts +34 -0
- package/types/particle/modules/ShapeModule.d.ts +9 -0
- package/types/particle/modules/SizeOverLifetimeModule.d.ts +34 -0
- package/types/particle/modules/TextureSheetAnimationModule.d.ts +42 -0
- package/types/particle/modules/VelocityOverLifetimeModule.d.ts +34 -0
- package/types/particle/modules/shape/BaseShape.d.ts +12 -0
- package/types/particle/modules/shape/BoxShape.d.ts +11 -0
- package/types/particle/modules/shape/CircleShape.d.ts +17 -0
- package/types/particle/modules/shape/ConeShape.d.ts +28 -0
- package/types/particle/modules/shape/HemisphereShape.d.ts +9 -0
- package/types/particle/modules/shape/ShapeUtils.d.ts +1 -0
- package/types/particle/modules/shape/SphereShape.d.ts +9 -0
- package/types/particle/modules/shape/enums/ParticleShapeArcMode.d.ts +9 -0
- package/types/particle/modules/shape/enums/ParticleShapeMultiModeValue.d.ts +9 -0
- package/types/particle/modules/shape/enums/ParticleShapeType.d.ts +15 -0
- package/types/particle/modules/shape/index.d.ts +6 -0
- package/types/particle/moudules/Burst.d.ts +25 -0
- package/types/particle/moudules/Emission.d.ts +47 -0
- package/types/particle/moudules/EmissionModule.d.ts +49 -0
- package/types/particle/moudules/MainModule.d.ts +59 -0
- package/types/particle/moudules/ParticleCurve.d.ts +27 -0
- package/types/particle/moudules/ParticleGradient.d.ts +28 -0
- package/types/particle/moudules/ShapeModule.d.ts +7 -0
- package/types/particle/moudules/shape/BaseShape.d.ts +28 -0
- package/types/particle/moudules/shape/BoxShape.d.ts +20 -0
- package/types/particle/moudules/shape/CircleShape.d.ts +27 -0
- package/types/particle/moudules/shape/ConeShape.d.ts +35 -0
- package/types/particle/moudules/shape/HemisphereShape.d.ts +23 -0
- package/types/particle/moudules/shape/ShapeUtils.d.ts +1 -0
- package/types/particle/moudules/shape/SphereShape.d.ts +23 -0
- package/types/particle/moudules/shape/enums/ParticleShapeMultiModeValue.d.ts +9 -0
- package/types/particle/moudules/shape/enums/ParticleShapeType.d.ts +15 -0
- package/types/particle/moudules/shape/index.d.ts +5 -0
- package/types/physics/PhysicsScene.d.ts +6 -2
- package/types/shaderlib/particle/index.d.ts +14 -0
- package/types/shadow/PipelinePass.d.ts +16 -0
- package/types/utils/BoolUpdateFlag.d.ts +12 -0
- package/types/utils/DisorderedArray.d.ts +18 -0
- package/types/utils/UpdateFlag.d.ts +20 -0
- package/types/utils/UpdateFlagManager.d.ts +1 -0
- package/types/utils/Utils.d.ts +31 -0
- package/types/xr/XRManager.d.ts +31 -0
- package/types/xr/component/XRPoseDriver.d.ts +10 -0
- package/types/xr/data/XRCamera.d.ts +6 -0
- package/types/xr/data/XRDevice.d.ts +9 -0
- package/types/xr/data/XRHandle.d.ts +10 -0
- package/types/xr/enum/EnumXRButton.d.ts +5 -0
- package/types/xr/enum/EnumXRDevicePhase.d.ts +4 -0
- package/types/xr/enum/EnumXRFeature.d.ts +9 -0
- package/types/xr/enum/EnumXRInputSource.d.ts +8 -0
- package/types/xr/enum/EnumXRMode.d.ts +7 -0
- package/types/xr/enum/EnumXRSubsystem.d.ts +4 -0
- package/types/xr/enum/EnumXRTrackingMode.d.ts +7 -0
- package/types/xr/feature/XRCameraManager.d.ts +21 -0
- package/types/xr/feature/XRFeature.d.ts +29 -0
- package/types/xr/feature/XRImageTrackManager.d.ts +10 -0
- package/types/xr/feature/XRInputManager.d.ts +16 -0
- package/types/xr/index.d.ts +18 -0
- package/types/xr/provider/XRProvider.d.ts +19 -0
- package/types/xr/subsystem/XRInputSubsystem.d.ts +5 -0
- package/types/xr/subsystem/XRSubsystem.d.ts +30 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { BaseShape } from "./BaseShape";
|
|
2
|
+
import { BoundingBox, Rand, Vector2, Vector3 } from "@galacean/engine-math";
|
|
3
|
+
export declare enum ConeEmitType {
|
|
4
|
+
Base = 0,
|
|
5
|
+
BaseShell = 1,
|
|
6
|
+
Volume = 2,
|
|
7
|
+
VolumeShell = 3
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Cone particle emitter
|
|
11
|
+
*/
|
|
12
|
+
export declare class ConeShape extends BaseShape {
|
|
13
|
+
protected static _tempPositionPoint: Vector2;
|
|
14
|
+
protected static _tempDirectionPoint: Vector2;
|
|
15
|
+
/** Angle of the cone to emit particles from. */
|
|
16
|
+
angle: number;
|
|
17
|
+
/** Radius of the shape to emit particles from. */
|
|
18
|
+
radius: number;
|
|
19
|
+
/** Length of the cone to emit particles from. */
|
|
20
|
+
length: number;
|
|
21
|
+
/** Cone emitter subtype */
|
|
22
|
+
emitType: ConeEmitType;
|
|
23
|
+
constructor();
|
|
24
|
+
/**
|
|
25
|
+
* @inheritDoc
|
|
26
|
+
*/
|
|
27
|
+
protected _getShapeBoundBox(boundBox: BoundingBox): void;
|
|
28
|
+
/**
|
|
29
|
+
* @inheritDoc
|
|
30
|
+
*/
|
|
31
|
+
protected _getSpeedBoundBox(boundBox: BoundingBox): void;
|
|
32
|
+
_generatePositionAndDirection(position: Vector3, direction: Vector3, rand?: Rand, randomSeeds?: Uint32Array): void;
|
|
33
|
+
cloneTo(destShape: ConeShape): void;
|
|
34
|
+
clone(): ConeShape;
|
|
35
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BaseShape } from "./BaseShape";
|
|
2
|
+
import { BoundingBox, Rand, Vector3 } from "@galacean/engine-math";
|
|
3
|
+
/**
|
|
4
|
+
* Hemisphere emitter
|
|
5
|
+
*/
|
|
6
|
+
export declare class HemisphereShape extends BaseShape {
|
|
7
|
+
/** Radius of the shape to emit particles from. */
|
|
8
|
+
radius: number;
|
|
9
|
+
/** Whether emit from shell */
|
|
10
|
+
emitFromShell: boolean;
|
|
11
|
+
constructor();
|
|
12
|
+
/**
|
|
13
|
+
* @inheritDoc
|
|
14
|
+
*/
|
|
15
|
+
protected _getShapeBoundBox(boundBox: BoundingBox): void;
|
|
16
|
+
/**
|
|
17
|
+
* @inheritDoc
|
|
18
|
+
*/
|
|
19
|
+
protected _getSpeedBoundBox(boundBox: BoundingBox): void;
|
|
20
|
+
_generatePositionAndDirection(position: Vector3, direction: Vector3, rand?: Rand, randomSeeds?: Uint32Array): void;
|
|
21
|
+
cloneTo(destShape: HemisphereShape): void;
|
|
22
|
+
clone(): HemisphereShape;
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BaseShape } from "./BaseShape";
|
|
2
|
+
import { BoundingBox, Rand, Vector3 } from "@galacean/engine-math";
|
|
3
|
+
/**
|
|
4
|
+
* Sphere emitter
|
|
5
|
+
*/
|
|
6
|
+
export declare class SphereShape extends BaseShape {
|
|
7
|
+
/** Radius of the shape to emit particles from. */
|
|
8
|
+
radius: number;
|
|
9
|
+
/** Whether emit from shell */
|
|
10
|
+
emitFromShell: boolean;
|
|
11
|
+
constructor();
|
|
12
|
+
/**
|
|
13
|
+
* @inheritDoc
|
|
14
|
+
*/
|
|
15
|
+
protected _getShapeBoundBox(boundBox: BoundingBox): void;
|
|
16
|
+
/**
|
|
17
|
+
* @inheritDoc
|
|
18
|
+
*/
|
|
19
|
+
protected _getSpeedBoundBox(boundBox: BoundingBox): void;
|
|
20
|
+
_generatePositionAndDirection(position: Vector3, direction: Vector3, rand?: Rand, randomSeeds?: Uint32Array): void;
|
|
21
|
+
cloneTo(destShape: SphereShape): void;
|
|
22
|
+
clone(): SphereShape;
|
|
23
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ParticleCompositeCurve } from "./ParticleCompositeCurve";
|
|
2
|
+
/**
|
|
3
|
+
* A burst is a particle emission event, where a number of particles are all emitted at the same time
|
|
4
|
+
*/
|
|
5
|
+
export declare class Burst {
|
|
6
|
+
time: number;
|
|
7
|
+
count: ParticleCompositeCurve;
|
|
8
|
+
/**
|
|
9
|
+
* Create burst object.
|
|
10
|
+
* @param time - Time to emit the burst
|
|
11
|
+
* @param count - Count of particles to emit
|
|
12
|
+
*/
|
|
13
|
+
constructor(time: number, count: ParticleCompositeCurve);
|
|
14
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ShaderMacro } from "../../shader/ShaderMacro";
|
|
2
|
+
import { ShaderProperty } from "../../shader/ShaderProperty";
|
|
3
|
+
import { ParticleCompositeGradient } from "./ParticleCompositeGradient";
|
|
4
|
+
import { ParticleGeneratorModule } from "./ParticleGeneratorModule";
|
|
5
|
+
/**
|
|
6
|
+
* Color over lifetime module.
|
|
7
|
+
*/
|
|
8
|
+
export declare class ColorOverLifetimeModule extends ParticleGeneratorModule {
|
|
9
|
+
static readonly _gradientMacro: ShaderMacro;
|
|
10
|
+
static readonly _randomGradientsMacro: ShaderMacro;
|
|
11
|
+
static readonly _minGradientColor: ShaderProperty;
|
|
12
|
+
static readonly _minGradientAlpha: ShaderProperty;
|
|
13
|
+
static readonly _maxGradientColor: ShaderProperty;
|
|
14
|
+
static readonly _maxGradientAlpha: ShaderProperty;
|
|
15
|
+
static readonly _gradientKeysCount: ShaderProperty;
|
|
16
|
+
/** Color gradient over lifetime. */
|
|
17
|
+
color: ParticleCompositeGradient;
|
|
18
|
+
private _gradientKeysCount;
|
|
19
|
+
private _colorMacro;
|
|
20
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Burst } from "./Burst";
|
|
2
|
+
import { ParticleCompositeCurve } from "./ParticleCompositeCurve";
|
|
3
|
+
import { ParticleGeneratorModule } from "./ParticleGeneratorModule";
|
|
4
|
+
import { BaseShape } from "./shape/BaseShape";
|
|
5
|
+
/**
|
|
6
|
+
* The EmissionModule of a Particle System.
|
|
7
|
+
*/
|
|
8
|
+
export declare class EmissionModule extends ParticleGeneratorModule {
|
|
9
|
+
/** The rate of particle emission. */
|
|
10
|
+
rateOverTime: ParticleCompositeCurve;
|
|
11
|
+
/** The rate at which the emitter spawns new particles over distance. */
|
|
12
|
+
rateOverDistance: ParticleCompositeCurve;
|
|
13
|
+
/** The shape of the emitter. */
|
|
14
|
+
shape: BaseShape;
|
|
15
|
+
private _bursts;
|
|
16
|
+
private _frameRateTime;
|
|
17
|
+
private _currentBurstIndex;
|
|
18
|
+
private _burstRand;
|
|
19
|
+
/**
|
|
20
|
+
* Gets the burst array.
|
|
21
|
+
*/
|
|
22
|
+
get bursts(): ReadonlyArray<Burst>;
|
|
23
|
+
/**
|
|
24
|
+
* Add a single burst.
|
|
25
|
+
* @param burst - The burst
|
|
26
|
+
*/
|
|
27
|
+
addBurst(burst: Burst): void;
|
|
28
|
+
/**
|
|
29
|
+
* Remove a single burst from the array of bursts.
|
|
30
|
+
* @param burst - The burst data
|
|
31
|
+
*/
|
|
32
|
+
removeBurst(burst: Burst): void;
|
|
33
|
+
/**
|
|
34
|
+
* Remove a single burst from the array of bursts.
|
|
35
|
+
* @param index - The burst data index
|
|
36
|
+
*/
|
|
37
|
+
removeBurstByIndex(index: number): void;
|
|
38
|
+
/**
|
|
39
|
+
* Clear burst data.
|
|
40
|
+
*/
|
|
41
|
+
clearBurst(): void;
|
|
42
|
+
private _emitByRateOverTime;
|
|
43
|
+
private _emitByBurst;
|
|
44
|
+
private _emitBySubBurst;
|
|
45
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { ICustomClone } from "../../clone/ComponentCloner";
|
|
2
|
+
import { ParticleScaleMode } from "../enums/ParticleScaleMode";
|
|
3
|
+
import { ParticleSimulationSpace } from "../enums/ParticleSimulationSpace";
|
|
4
|
+
import { ParticleCompositeCurve } from "./ParticleCompositeCurve";
|
|
5
|
+
import { ParticleCompositeGradient } from "./ParticleCompositeGradient";
|
|
6
|
+
export declare class MainModule implements ICustomClone {
|
|
7
|
+
private static _tempVector40;
|
|
8
|
+
private static _vector3One;
|
|
9
|
+
private static readonly _positionScale;
|
|
10
|
+
private static readonly _sizeScale;
|
|
11
|
+
private static readonly _worldPosition;
|
|
12
|
+
private static readonly _worldRotation;
|
|
13
|
+
private static readonly _gravity;
|
|
14
|
+
private static readonly _simulationSpace;
|
|
15
|
+
private static readonly _startRotation3D;
|
|
16
|
+
private static readonly _scaleMode;
|
|
17
|
+
/** The duration of the Particle System in seconds. */
|
|
18
|
+
duration: number;
|
|
19
|
+
/** Specifies whether the Particle System loops. */
|
|
20
|
+
isLoop: boolean;
|
|
21
|
+
/** Start delay in seconds. */
|
|
22
|
+
startDelay: ParticleCompositeCurve;
|
|
23
|
+
/** The initial lifetime of particles when emitted. */
|
|
24
|
+
startLifetime: ParticleCompositeCurve;
|
|
25
|
+
/** The initial speed of particles when the Particle System first spawns them. */
|
|
26
|
+
startSpeed: ParticleCompositeCurve;
|
|
27
|
+
/** A flag to enable specifying particle size individually for each axis. */
|
|
28
|
+
startSize3D: boolean;
|
|
29
|
+
/** The initial size of particles when the Particle System first spawns them. */
|
|
30
|
+
startSize: ParticleCompositeCurve;
|
|
31
|
+
/** The initial size of particles along the x-axis when the Particle System first spawns them. */
|
|
32
|
+
startSizeX: ParticleCompositeCurve;
|
|
33
|
+
/** The initial size of particles along the y-axis when the Particle System first spawns them. */
|
|
34
|
+
startSizeY: ParticleCompositeCurve;
|
|
35
|
+
/** The initial size of particles along the z-axis when the Particle System first spawns them. */
|
|
36
|
+
startSizeZ: ParticleCompositeCurve;
|
|
37
|
+
/** A flag to enable 3D particle rotation. */
|
|
38
|
+
startRotation3D: boolean;
|
|
39
|
+
/** The initial rotation of particles when the Particle System first spawns them. */
|
|
40
|
+
startRotation: ParticleCompositeCurve;
|
|
41
|
+
/** The initial rotation of particles around the x-axis when emitted.*/
|
|
42
|
+
startRotationX: ParticleCompositeCurve;
|
|
43
|
+
/** The initial rotation of particles around the y-axis when emitted. */
|
|
44
|
+
startRotationY: ParticleCompositeCurve;
|
|
45
|
+
startRotationZ: ParticleCompositeCurve;
|
|
46
|
+
/** Makes some particles spin in the opposite direction. */
|
|
47
|
+
flipRotation: number;
|
|
48
|
+
/** The mode of start color */
|
|
49
|
+
startColor: ParticleCompositeGradient;
|
|
50
|
+
/** A scale that this Particle System applies to gravity, defined by Physics.gravity. */
|
|
51
|
+
gravityModifier: ParticleCompositeCurve;
|
|
52
|
+
/** This selects the space in which to simulate particles. It can be either world or local space. */
|
|
53
|
+
simulationSpace: ParticleSimulationSpace;
|
|
54
|
+
/** Override the default playback speed of the Particle System. */
|
|
55
|
+
simulationSpeed: number;
|
|
56
|
+
/** Control how the Particle System applies its Transform component to the particles it emits. */
|
|
57
|
+
scalingMode: ParticleScaleMode;
|
|
58
|
+
/** If set to true, the Particle Generator automatically begins to play on startup. */
|
|
59
|
+
playOnEnabled: boolean;
|
|
60
|
+
private _maxParticles;
|
|
61
|
+
private _generator;
|
|
62
|
+
private _gravity;
|
|
63
|
+
/**
|
|
64
|
+
* Max particles count.
|
|
65
|
+
*/
|
|
66
|
+
get maxParticles(): number;
|
|
67
|
+
set maxParticles(value: number);
|
|
68
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { ParticleCurveMode } from "../enums/ParticleCurveMode";
|
|
2
|
+
import { ParticleCurve } from "./ParticleCurve";
|
|
3
|
+
/**
|
|
4
|
+
* Particle composite curve.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ParticleCompositeCurve {
|
|
7
|
+
/** The curve mode. */
|
|
8
|
+
mode: ParticleCurveMode;
|
|
9
|
+
/** The min constant value used by the curve if mode is set to `TwoConstants`.*/
|
|
10
|
+
constantMin: number;
|
|
11
|
+
/** The max constant value used by the curve if mode is set to `TwoConstants`.*/
|
|
12
|
+
constantMax: number;
|
|
13
|
+
/** The min curve used by the curve if mode is set to `TwoCurves`. */
|
|
14
|
+
curveMin: ParticleCurve;
|
|
15
|
+
/** The max curve used by the curve if mode is set to `TwoCurves`. */
|
|
16
|
+
curveMax: ParticleCurve;
|
|
17
|
+
/**
|
|
18
|
+
* The constant value used by the curve if mode is set to `Constant`.
|
|
19
|
+
*/
|
|
20
|
+
get constant(): number;
|
|
21
|
+
set constant(value: number);
|
|
22
|
+
/**
|
|
23
|
+
* The curve used by the curve if mode is set to `Curve`.
|
|
24
|
+
*/
|
|
25
|
+
get curve(): ParticleCurve;
|
|
26
|
+
set curve(value: ParticleCurve);
|
|
27
|
+
/**
|
|
28
|
+
* Create a particle curve that generates a constant value.
|
|
29
|
+
* @param constant - The constant value
|
|
30
|
+
*/
|
|
31
|
+
constructor(constant: number);
|
|
32
|
+
/**
|
|
33
|
+
* Create a particle curve that can generate values between a minimum constant and a maximum constant.
|
|
34
|
+
* @param constantMin - The min constant value
|
|
35
|
+
* @param constantMax - The max constant value
|
|
36
|
+
*/
|
|
37
|
+
constructor(constantMin: number, constantMax: number);
|
|
38
|
+
/**
|
|
39
|
+
* Create a particle composite curve by a curve.
|
|
40
|
+
* @param curve - The curve
|
|
41
|
+
*/
|
|
42
|
+
constructor(curve: ParticleCurve);
|
|
43
|
+
/**
|
|
44
|
+
* Create a particle composite curve by min and max curves.
|
|
45
|
+
* @param curveMin - The min curve
|
|
46
|
+
* @param curveMax - The max curve
|
|
47
|
+
*/
|
|
48
|
+
constructor(curveMin: ParticleCurve, curveMax: ParticleCurve);
|
|
49
|
+
/**
|
|
50
|
+
* Query the value at the specified time.
|
|
51
|
+
* @param time - Normalized time at which to evaluate the curve, Valid when `mode` is set to `Curve` or `TwoCurves`
|
|
52
|
+
* @param lerpFactor - Lerp factor between two constants or curves, Valid when `mode` is set to `TwoConstants` or `TwoCurves`
|
|
53
|
+
* @returns - The result curve value
|
|
54
|
+
*/
|
|
55
|
+
evaluate(time: number, lerpFactor: number): number;
|
|
56
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Color } from "@galacean/engine-math";
|
|
2
|
+
import { ParticleGradientMode } from "../enums/ParticleGradientMode";
|
|
3
|
+
import { ParticleGradient } from "./ParticleGradient";
|
|
4
|
+
/**
|
|
5
|
+
* Particle composite gradient.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ParticleCompositeGradient {
|
|
8
|
+
/** The gradient mode. */
|
|
9
|
+
mode: ParticleGradientMode;
|
|
10
|
+
constantMin: Color;
|
|
11
|
+
constantMax: Color;
|
|
12
|
+
/** The min gradient used by the gradient if mode is set to `Gradient`. */
|
|
13
|
+
gradientMin: ParticleGradient;
|
|
14
|
+
/** The max gradient used by the gradient if mode is set to `Gradient`. */
|
|
15
|
+
gradientMax: ParticleGradient;
|
|
16
|
+
/**
|
|
17
|
+
* The constant color used by the gradient if mode is set to `Constant`.
|
|
18
|
+
*/
|
|
19
|
+
get constant(): Color;
|
|
20
|
+
set constant(value: Color);
|
|
21
|
+
/**
|
|
22
|
+
* The gradient used by the gradient if mode is set to `Gradient`.
|
|
23
|
+
*/
|
|
24
|
+
get gradient(): ParticleGradient;
|
|
25
|
+
set gradient(value: ParticleGradient);
|
|
26
|
+
/**
|
|
27
|
+
* Create a particle gradient that generates a constant color.
|
|
28
|
+
* @param constant - The constant color
|
|
29
|
+
*/
|
|
30
|
+
constructor(constant: Color);
|
|
31
|
+
/**
|
|
32
|
+
* Create a particle gradient that can generate color between a minimum constant and a maximum constant.
|
|
33
|
+
* @param constantMin - The min constant color
|
|
34
|
+
* @param constantMax - The max constant color
|
|
35
|
+
*/
|
|
36
|
+
constructor(constantMin: Color, constantMax: Color);
|
|
37
|
+
/**
|
|
38
|
+
* Create a particle gradient that generates a color from a gradient.
|
|
39
|
+
* @param gradient - The gradient
|
|
40
|
+
*/
|
|
41
|
+
constructor(gradient: ParticleGradient);
|
|
42
|
+
/**
|
|
43
|
+
* Create a particle gradient that can generate color from a minimum gradient and a maximum gradient.
|
|
44
|
+
* @param gradientMin - The min gradient
|
|
45
|
+
*
|
|
46
|
+
*/
|
|
47
|
+
constructor(gradientMin: ParticleGradient, gradientMax: ParticleGradient);
|
|
48
|
+
/**
|
|
49
|
+
* Query the color at the specified time.
|
|
50
|
+
* @param time - Normalized time at which to evaluate the gradient, Valid when `mode` is set to `Gradient` or `TwoGradients`
|
|
51
|
+
* @param lerpFactor - Lerp factor between two constants or gradients, Valid when `mode` is set to `TwoConstants` or `TwoGradients`
|
|
52
|
+
* @param out - The result color
|
|
53
|
+
*/
|
|
54
|
+
evaluate(time: number, lerpFactor: number, out: Color): void;
|
|
55
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Particle curve.
|
|
3
|
+
*/
|
|
4
|
+
export declare class ParticleCurve {
|
|
5
|
+
private _keys;
|
|
6
|
+
private _typeArray;
|
|
7
|
+
private _typeArrayDirty;
|
|
8
|
+
/**
|
|
9
|
+
* The keys of the curve.
|
|
10
|
+
*/
|
|
11
|
+
get keys(): ReadonlyArray<CurveKey>;
|
|
12
|
+
/**
|
|
13
|
+
* Create a new particle curve.
|
|
14
|
+
* @param keys - The keys of the curve
|
|
15
|
+
*/
|
|
16
|
+
constructor(...keys: CurveKey[]);
|
|
17
|
+
/**
|
|
18
|
+
* Add an key to the curve.
|
|
19
|
+
* @param key - The key
|
|
20
|
+
*/
|
|
21
|
+
addKey(key: CurveKey): void;
|
|
22
|
+
/**
|
|
23
|
+
* Add an key to the curve.
|
|
24
|
+
* @param time - The key time
|
|
25
|
+
* @param value - The key value
|
|
26
|
+
*/
|
|
27
|
+
addKey(time: number, value: number): void;
|
|
28
|
+
/**
|
|
29
|
+
* Remove a key from the curve.
|
|
30
|
+
* @param index - The remove key index
|
|
31
|
+
*/
|
|
32
|
+
removeKey(index: number): void;
|
|
33
|
+
/**
|
|
34
|
+
* Set the keys of the curve.
|
|
35
|
+
* @param keys - The keys
|
|
36
|
+
*/
|
|
37
|
+
setKeys(keys: CurveKey[]): void;
|
|
38
|
+
private _addKey;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The key of the curve.
|
|
42
|
+
*/
|
|
43
|
+
export declare class CurveKey {
|
|
44
|
+
/** The key time. */
|
|
45
|
+
time: number;
|
|
46
|
+
/** The key value. */
|
|
47
|
+
value: number;
|
|
48
|
+
/**
|
|
49
|
+
* Create a new key.
|
|
50
|
+
*/
|
|
51
|
+
constructor(
|
|
52
|
+
/** The key time. */
|
|
53
|
+
time: number,
|
|
54
|
+
/** The key value. */
|
|
55
|
+
value: number);
|
|
56
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ShaderData, ShaderMacro } from "../../shader";
|
|
2
|
+
import { ParticleGenerator } from "../ParticleGenerator";
|
|
3
|
+
/**
|
|
4
|
+
* Particle generator module.
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class ParticleGeneratorModule {
|
|
7
|
+
/** Specifies whether the module is enabled or not. */
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
protected _generator: ParticleGenerator;
|
|
10
|
+
constructor(generator: ParticleGenerator);
|
|
11
|
+
protected _enableMacro(shaderData: ShaderData, lastEnableMacro: ShaderMacro, enableMacro: ShaderMacro): ShaderMacro;
|
|
12
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { Color } from "@galacean/engine-math";
|
|
2
|
+
/**
|
|
3
|
+
* Particle gradient.
|
|
4
|
+
*/
|
|
5
|
+
export declare class ParticleGradient {
|
|
6
|
+
private _colorKeys;
|
|
7
|
+
private _alphaKeys;
|
|
8
|
+
private _colorTypeArray;
|
|
9
|
+
private _alphaTypeArray;
|
|
10
|
+
private _colorTypeArrayDirty;
|
|
11
|
+
private _alphaTypeArrayDirty;
|
|
12
|
+
/**
|
|
13
|
+
* The color keys of the gradient.
|
|
14
|
+
*/
|
|
15
|
+
get colorKeys(): ReadonlyArray<GradientColorKey>;
|
|
16
|
+
/**
|
|
17
|
+
* The alpha keys of the gradient.
|
|
18
|
+
*/
|
|
19
|
+
get alphaKeys(): ReadonlyArray<GradientAlphaKey>;
|
|
20
|
+
/**
|
|
21
|
+
* Create a new particle gradient.
|
|
22
|
+
* @param colorKeys - The color keys of the gradient
|
|
23
|
+
* @param alphaKeys - The alpha keys of the gradient
|
|
24
|
+
*/
|
|
25
|
+
constructor(colorKeys?: GradientColorKey[], alphaKeys?: GradientAlphaKey[]);
|
|
26
|
+
/**
|
|
27
|
+
* Add a color key to the gradient.
|
|
28
|
+
* @param key - The key
|
|
29
|
+
*/
|
|
30
|
+
addColorKey(key: GradientColorKey): void;
|
|
31
|
+
/**
|
|
32
|
+
* Add a color key to the gradient.
|
|
33
|
+
* @param time - The key time
|
|
34
|
+
* @param color - The key color
|
|
35
|
+
*/
|
|
36
|
+
addColorKey(time: number, color: Color): void;
|
|
37
|
+
/**
|
|
38
|
+
* Add an alpha key to the gradient.
|
|
39
|
+
* @param key - The key
|
|
40
|
+
*/
|
|
41
|
+
addAlphaKey(key: GradientAlphaKey): void;
|
|
42
|
+
/**
|
|
43
|
+
* Add an alpha key to the gradient.
|
|
44
|
+
* @param time - The key time
|
|
45
|
+
* @param alpha - The key alpha
|
|
46
|
+
*/
|
|
47
|
+
addAlphaKey(time: number, alpha: number): void;
|
|
48
|
+
/**
|
|
49
|
+
* Remove a color key from the gradient.
|
|
50
|
+
* @param index - The remove color key index
|
|
51
|
+
*/
|
|
52
|
+
removeColorKey(index: number): void;
|
|
53
|
+
/**
|
|
54
|
+
* Remove an alpha key from the gradient.
|
|
55
|
+
* @param index - The remove alpha key index
|
|
56
|
+
*/
|
|
57
|
+
removeAlphaKey(index: number): void;
|
|
58
|
+
/**
|
|
59
|
+
* Set the keys of the gradient.
|
|
60
|
+
* @param colorKeys - The color keys
|
|
61
|
+
* @param alphaKeys - The alpha keys
|
|
62
|
+
*/
|
|
63
|
+
setKeys(colorKeys: GradientColorKey[], alphaKeys: GradientAlphaKey[]): void;
|
|
64
|
+
private _addKey;
|
|
65
|
+
private _removeKey;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The color key of the particle gradient.
|
|
69
|
+
*/
|
|
70
|
+
export declare class GradientColorKey {
|
|
71
|
+
/** The key time. */
|
|
72
|
+
time: number;
|
|
73
|
+
/** The key color. */
|
|
74
|
+
color: Color;
|
|
75
|
+
constructor(
|
|
76
|
+
/** The key time. */
|
|
77
|
+
time: number,
|
|
78
|
+
/** The key color. */
|
|
79
|
+
color: Color);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* The alpha key of the particle gradient.
|
|
83
|
+
*/
|
|
84
|
+
export declare class GradientAlphaKey {
|
|
85
|
+
/** The key time. */
|
|
86
|
+
time: number;
|
|
87
|
+
/** The key alpha. */
|
|
88
|
+
alpha: number;
|
|
89
|
+
constructor(
|
|
90
|
+
/** The key time. */
|
|
91
|
+
time: number,
|
|
92
|
+
/** The key alpha. */
|
|
93
|
+
alpha: number);
|
|
94
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ShaderMacro } from "../../shader/ShaderMacro";
|
|
2
|
+
import { ShaderProperty } from "../../shader/ShaderProperty";
|
|
3
|
+
import { ParticleCompositeCurve } from "./ParticleCompositeCurve";
|
|
4
|
+
import { ParticleGeneratorModule } from "./ParticleGeneratorModule";
|
|
5
|
+
/**
|
|
6
|
+
* Rotate particles throughout their lifetime.
|
|
7
|
+
*/
|
|
8
|
+
export declare class RotationOverLifetimeModule extends ParticleGeneratorModule {
|
|
9
|
+
static readonly _constantModeMacro: ShaderMacro;
|
|
10
|
+
static readonly _curveModeMacro: ShaderMacro;
|
|
11
|
+
static readonly _isSeparateMacro: ShaderMacro;
|
|
12
|
+
static readonly _isRandomTwoMacro: ShaderMacro;
|
|
13
|
+
static readonly _minConstantProperty: ShaderProperty;
|
|
14
|
+
static readonly _minCurveXProperty: ShaderProperty;
|
|
15
|
+
static readonly _minCurveYProperty: ShaderProperty;
|
|
16
|
+
static readonly _minCurveZProperty: ShaderProperty;
|
|
17
|
+
static readonly _maxConstantProperty: ShaderProperty;
|
|
18
|
+
static readonly _maxCurveXProperty: ShaderProperty;
|
|
19
|
+
static readonly _maxCurveYProperty: ShaderProperty;
|
|
20
|
+
static readonly _maxCurveZProperty: ShaderProperty;
|
|
21
|
+
/** Specifies whether the rotation is separate on each axis, when disabled only z axis is used. */
|
|
22
|
+
separateAxes: boolean;
|
|
23
|
+
/** Rotation over lifetime for z axis. */
|
|
24
|
+
rotationX: ParticleCompositeCurve;
|
|
25
|
+
/** Rotation over lifetime for z axis. */
|
|
26
|
+
rotationY: ParticleCompositeCurve;
|
|
27
|
+
/** Rotation over lifetime for z axis. */
|
|
28
|
+
rotationZ: ParticleCompositeCurve;
|
|
29
|
+
private _rotationMinConstant;
|
|
30
|
+
private _rotationMaxConstant;
|
|
31
|
+
private _enableSeparateMacro;
|
|
32
|
+
private _isCurveMacro;
|
|
33
|
+
private _isRandomTwoMacro;
|
|
34
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ParticleGeneratorModule } from "./ParticleGeneratorModule";
|
|
2
|
+
import { BaseShape } from "./shape/BaseShape";
|
|
3
|
+
/**
|
|
4
|
+
* Shape module of `ParticleGenerator`.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ShapeModule extends ParticleGeneratorModule {
|
|
7
|
+
/** The shape of the emitter. */
|
|
8
|
+
shape: BaseShape;
|
|
9
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ShaderMacro } from "../../shader/ShaderMacro";
|
|
2
|
+
import { ShaderProperty } from "../../shader/ShaderProperty";
|
|
3
|
+
import { ParticleCompositeCurve } from "./ParticleCompositeCurve";
|
|
4
|
+
import { ParticleGeneratorModule } from "./ParticleGeneratorModule";
|
|
5
|
+
/**
|
|
6
|
+
* Size over lifetime module.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SizeOverLifetimeModule extends ParticleGeneratorModule {
|
|
9
|
+
static readonly _curveModeMacro: ShaderMacro;
|
|
10
|
+
static readonly _isSeparateMacro: ShaderMacro;
|
|
11
|
+
static readonly _isRandomTwoMacro: ShaderMacro;
|
|
12
|
+
static readonly _minCurveXProperty: ShaderProperty;
|
|
13
|
+
static readonly _minCurveYProperty: ShaderProperty;
|
|
14
|
+
static readonly _minCurveZProperty: ShaderProperty;
|
|
15
|
+
static readonly _maxCurveXProperty: ShaderProperty;
|
|
16
|
+
static readonly _maxCurveYProperty: ShaderProperty;
|
|
17
|
+
static readonly _maxCurveZProperty: ShaderProperty;
|
|
18
|
+
/** Specifies whether the Size is separate on each axis. */
|
|
19
|
+
separateAxes: boolean;
|
|
20
|
+
/** Size curve over lifetime for x axis. */
|
|
21
|
+
sizeX: ParticleCompositeCurve;
|
|
22
|
+
/** Size curve over lifetime for y axis. */
|
|
23
|
+
sizeY: ParticleCompositeCurve;
|
|
24
|
+
/** Size curve over lifetime for z axis. */
|
|
25
|
+
sizeZ: ParticleCompositeCurve;
|
|
26
|
+
private _enableSeparateMacro;
|
|
27
|
+
private _isCurveMacro;
|
|
28
|
+
private _isRandomTwoMacro;
|
|
29
|
+
/**
|
|
30
|
+
* Size curve over lifetime.
|
|
31
|
+
*/
|
|
32
|
+
get size(): ParticleCompositeCurve;
|
|
33
|
+
set size(value: ParticleCompositeCurve);
|
|
34
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Vector2 } from "@galacean/engine-math";
|
|
2
|
+
import { ParticleCompositeCurve } from "./ParticleCompositeCurve";
|
|
3
|
+
import { ParticleGeneratorModule } from "./ParticleGeneratorModule";
|
|
4
|
+
/**
|
|
5
|
+
* Texture sheet animation module.
|
|
6
|
+
*/
|
|
7
|
+
export declare class TextureSheetAnimationModule extends ParticleGeneratorModule {
|
|
8
|
+
private static readonly _frameCurveMacro;
|
|
9
|
+
private static readonly _frameRandomCurvesMacro;
|
|
10
|
+
private static readonly _cycleCountProperty;
|
|
11
|
+
private static readonly _tillingParamsProperty;
|
|
12
|
+
private static readonly _frameMinCurveProperty;
|
|
13
|
+
private static readonly _frameMaxCurveProperty;
|
|
14
|
+
/** Start frame of the texture sheet. */
|
|
15
|
+
readonly startFrame: ParticleCompositeCurve;
|
|
16
|
+
/** Frame over time curve of the texture sheet. */
|
|
17
|
+
readonly frameOverTime: ParticleCompositeCurve;
|
|
18
|
+
/** Texture sheet animation type. */
|
|
19
|
+
type: TextureSheetAnimationType;
|
|
20
|
+
/** Cycle count. */
|
|
21
|
+
cycleCount: number;
|
|
22
|
+
private _tiling;
|
|
23
|
+
private _textureSheetMacro;
|
|
24
|
+
/**
|
|
25
|
+
* Tiling of the texture sheet.
|
|
26
|
+
* */
|
|
27
|
+
get tiling(): Vector2;
|
|
28
|
+
set tiling(value: Vector2);
|
|
29
|
+
/**
|
|
30
|
+
* @inheritDoc
|
|
31
|
+
*/
|
|
32
|
+
cloneTo(dest: TextureSheetAnimationModule): void;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Texture sheet animation type.
|
|
36
|
+
*/
|
|
37
|
+
export declare enum TextureSheetAnimationType {
|
|
38
|
+
/** Animate over the whole texture sheet from left to right, top to bottom. */
|
|
39
|
+
WholeSheet = 0,
|
|
40
|
+
/** Animate a single row in the sheet from left to right. */
|
|
41
|
+
SingleRow = 1
|
|
42
|
+
}
|