sparcoon 0.1.0 → 0.2.0
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/{elements → emitter}/FXEmitter.Internal.d.ts +0 -4
- package/dist/emitter/FXEmitter.Internal.js +7 -0
- package/dist/{elements → emitter}/FXEmitter.d.ts +6 -13
- package/dist/{elements → emitter}/FXEmitter.js +15 -22
- package/dist/{behaviorModules → emitter/behavior}/FXBehaviorDirectionalGravity.d.ts +2 -2
- package/dist/{behaviorModules → emitter/behavior}/FXBehaviorDirectionalGravity.js +2 -2
- package/dist/{behaviorModules → emitter/behavior}/FXBehaviorModule.d.ts +1 -1
- package/dist/{behaviorModules → emitter/behavior}/FXBehaviorPointGravity.d.ts +2 -2
- package/dist/{behaviorModules → emitter/behavior}/FXBehaviorPointGravity.js +2 -2
- package/dist/{behaviorModules → emitter/behavior}/FXBehaviorScaleOverLife.d.ts +1 -1
- package/dist/{behaviorModules → emitter/behavior}/FXBehaviorScaleOverLife.js +2 -2
- package/dist/{behaviorModules → emitter/behavior}/FXBehaviorTorqueDamping.d.ts +1 -1
- package/dist/{behaviorModules → emitter/behavior}/FXBehaviorTorqueDamping.js +2 -2
- package/dist/{behaviorModules → emitter/behavior}/FXBehaviorTorqueNoise.d.ts +1 -1
- package/dist/{behaviorModules → emitter/behavior}/FXBehaviorTorqueNoise.js +3 -3
- package/dist/{behaviorModules → emitter/behavior}/FXBehaviorVelocityDamping.d.ts +1 -1
- package/dist/{behaviorModules → emitter/behavior}/FXBehaviorVelocityDamping.js +2 -2
- package/dist/{behaviorModules → emitter/behavior}/FXBehaviorVelocityNoise.d.ts +1 -1
- package/dist/{behaviorModules → emitter/behavior}/FXBehaviorVelocityNoise.js +3 -3
- package/dist/{spawnModules → emitter/spawn}/FXSpawnBox.d.ts +2 -2
- package/dist/{spawnModules → emitter/spawn}/FXSpawnBox.js +2 -2
- package/dist/{spawnModules → emitter/spawn}/FXSpawnModule.d.ts +1 -1
- package/dist/{spawnModules → emitter/spawn}/FXSpawnOffset.d.ts +2 -2
- package/dist/{spawnModules → emitter/spawn}/FXSpawnOffset.js +2 -2
- package/dist/{spawnModules → emitter/spawn}/FXSpawnRandomLifetime.d.ts +1 -1
- package/dist/{spawnModules → emitter/spawn}/FXSpawnRandomLifetime.js +2 -2
- package/dist/{spawnModules → emitter/spawn}/FXSpawnRandomRotation.d.ts +1 -1
- package/dist/{spawnModules → emitter/spawn}/FXSpawnRandomRotation.js +2 -2
- package/dist/{spawnModules → emitter/spawn}/FXSpawnRandomScale.d.ts +1 -1
- package/dist/{spawnModules → emitter/spawn}/FXSpawnRandomScale.js +2 -2
- package/dist/{spawnModules → emitter/spawn}/FXSpawnRandomTorque.d.ts +1 -1
- package/dist/{spawnModules → emitter/spawn}/FXSpawnRandomTorque.js +2 -2
- package/dist/{spawnModules → emitter/spawn}/FXSpawnRandomVelocity.d.ts +1 -1
- package/dist/{spawnModules → emitter/spawn}/FXSpawnRandomVelocity.js +2 -2
- package/dist/emitter/spawn/FXSpawnSphere.d.ts +38 -0
- package/dist/emitter/spawn/FXSpawnSphere.js +89 -0
- package/dist/index.d.ts +24 -20
- package/dist/index.js +25 -22
- package/dist/instancedParticle/FXInstancedParticle.Internal.d.ts +2 -9
- package/dist/instancedParticle/FXInstancedParticle.Internal.js +2 -188
- package/dist/instancedParticle/FXInstancedParticle.d.ts +3 -5
- package/dist/instancedParticle/FXInstancedParticle.js +4 -10
- package/dist/instancedParticle/shared.d.ts +1 -1
- package/dist/instancedParticle/shared.js +1 -1
- package/dist/materials/FXDiffuseMaterial/FXDiffuseMaterial.Internal.d.ts +9 -0
- package/dist/materials/FXDiffuseMaterial/FXDiffuseMaterial.Internal.js +108 -0
- package/dist/materials/FXDiffuseMaterial/FXDiffuseMaterial.d.ts +15 -0
- package/dist/materials/FXDiffuseMaterial/FXDiffuseMaterial.js +18 -0
- package/dist/materials/FXMaterial.Internal.d.ts +4 -0
- package/dist/materials/FXMaterial.Internal.js +106 -0
- package/dist/materials/FXMaterial.d.ts +14 -0
- package/dist/materials/FXMaterial.js +21 -0
- package/dist/materials/FXUnlitMaterial/FXUnlitMaterial.Internal.d.ts +4 -0
- package/dist/materials/FXUnlitMaterial/FXUnlitMaterial.Internal.js +80 -0
- package/dist/materials/FXUnlitMaterial/FXUnlitMaterial.d.ts +11 -0
- package/dist/materials/FXUnlitMaterial/FXUnlitMaterial.js +17 -0
- package/dist/materials/color-nodes/FXAnimatedTextureNode.d.ts +10 -0
- package/dist/materials/color-nodes/FXAnimatedTextureNode.js +41 -0
- package/dist/materials/color-nodes/FXColorNode.d.ts +3 -0
- package/dist/materials/color-nodes/FXColorNode.js +8 -0
- package/dist/materials/color-nodes/FXColorOverLifeNode.d.ts +7 -0
- package/dist/materials/color-nodes/FXColorOverLifeNode.js +38 -0
- package/dist/materials/color-nodes/FXStaticTextureNode.d.ts +5 -0
- package/dist/materials/color-nodes/FXStaticTextureNode.js +23 -0
- package/dist/materials/miscellaneous.d.ts +1 -0
- package/dist/materials/miscellaneous.js +25 -0
- package/dist/{color → miscellaneous/color}/FXColor.js +2 -2
- package/dist/miscellaneous/miscellaneous.d.ts +1 -1
- package/package.json +1 -1
- package/dist/elements/FXEmitter.Internal.js +0 -12
- package/dist/instancedParticle/FXParticleDepthMaterial.d.ts +0 -2
- package/dist/instancedParticle/FXParticleDepthMaterial.js +0 -52
- package/dist/instancedParticle/FXParticleLambertMaterial.d.ts +0 -4
- package/dist/instancedParticle/FXParticleLambertMaterial.js +0 -152
- package/dist/instancedParticle/FXParticleNormalsMode.d.ts +0 -5
- package/dist/instancedParticle/FXParticleNormalsMode.js +0 -8
- package/dist/instancedParticle/FXParticleRenderingMode.d.ts +0 -4
- package/dist/instancedParticle/FXParticleRenderingMode.js +0 -7
- package/dist/miscellaneous/texture/FXTextureView.Internal.js +0 -6
- package/dist/miscellaneous/texture/FXTextureView.js +0 -234
- package/dist/renderingModules/FXRenderingAnimatedTexture.d.ts +0 -5
- package/dist/renderingModules/FXRenderingAnimatedTexture.js +0 -14
- package/dist/renderingModules/FXRenderingColorOverLife.d.ts +0 -14
- package/dist/renderingModules/FXRenderingColorOverLife.js +0 -32
- package/dist/renderingModules/FXRenderingColorOverVelocity.d.ts +0 -15
- package/dist/renderingModules/FXRenderingColorOverVelocity.js +0 -37
- package/dist/renderingModules/FXRenderingModule.d.ts +0 -8
- package/dist/renderingModules/FXRenderingModule.js +0 -9
- package/dist/renderingModules/FXRenderingShadow.d.ts +0 -12
- package/dist/renderingModules/FXRenderingTexture.d.ts +0 -14
- package/dist/renderingModules/FXRenderingTexture.js +0 -26
- package/dist/shaders/FXRenderingAnimatedTexture.glsl.js +0 -3
- package/dist/shaders/FXRenderingColorOverLife.glsl.js +0 -3
- package/dist/shaders/FXRenderingColorOverVelocity.glsl.js +0 -3
- package/dist/shaders/FXRenderingTexture.glsl.js +0 -3
- /package/dist/{behaviorModules → emitter/behavior}/FXBehaviorModule.js +0 -0
- /package/dist/{spawnModules → emitter/spawn}/FXSpawnModule.js +0 -0
- /package/dist/{color → miscellaneous/color}/FXColor.Internal.d.ts +0 -0
- /package/dist/{color → miscellaneous/color}/FXColor.Internal.js +0 -0
- /package/dist/{color → miscellaneous/color}/FXColor.d.ts +0 -0
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { FXParticleNormalsMode } from "../instancedParticle/FXParticleNormalsMode";
|
|
2
|
-
import { FXParticleRenderingMode } from "../instancedParticle/FXParticleRenderingMode";
|
|
3
1
|
export interface FXEmitterPlayOptions {
|
|
4
2
|
duration: number;
|
|
5
3
|
}
|
|
@@ -8,5 +6,3 @@ export declare const EMITTER_DEFAULT_CAPACITY_STEP = 32;
|
|
|
8
6
|
export declare const EMITTER_DEFAULT_AUTOMATICALLY_DESTROY_MODULES = true;
|
|
9
7
|
export declare const EMITTER_DEFAULT_CAST_SHADOW = false;
|
|
10
8
|
export declare const EMITTER_DEFAULT_RECEIVE_SHADOW = false;
|
|
11
|
-
export declare const EMITTER_DEFAULT_RENDERING_MODE = FXParticleRenderingMode.Unlit;
|
|
12
|
-
export declare const EMITTER_DEFAULT_NORMALS_MODE = FXParticleNormalsMode.Flat;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const EMITTER_DEFAULT_EXPECTED_CAPACITY = 32;
|
|
2
|
+
const EMITTER_DEFAULT_CAPACITY_STEP = 32;
|
|
3
|
+
const EMITTER_DEFAULT_AUTOMATICALLY_DESTROY_MODULES = true;
|
|
4
|
+
const EMITTER_DEFAULT_CAST_SHADOW = false;
|
|
5
|
+
const EMITTER_DEFAULT_RECEIVE_SHADOW = false;
|
|
6
|
+
|
|
7
|
+
export { EMITTER_DEFAULT_AUTOMATICALLY_DESTROY_MODULES, EMITTER_DEFAULT_CAPACITY_STEP, EMITTER_DEFAULT_CAST_SHADOW, EMITTER_DEFAULT_EXPECTED_CAPACITY, EMITTER_DEFAULT_RECEIVE_SHADOW };
|
|
@@ -1,33 +1,26 @@
|
|
|
1
|
-
import { Object3D
|
|
2
|
-
import type {
|
|
3
|
-
import {
|
|
4
|
-
import { FXParticleRenderingMode } from "../instancedParticle/FXParticleRenderingMode";
|
|
5
|
-
import type { FXRenderingModule } from "../renderingModules/FXRenderingModule";
|
|
6
|
-
import type { FXSpawnModule } from "../spawnModules/FXSpawnModule";
|
|
1
|
+
import { Object3D } from "three";
|
|
2
|
+
import type { FXMaterial } from "../materials/FXMaterial";
|
|
3
|
+
import type { FXBehaviorModule } from "./behavior/FXBehaviorModule";
|
|
7
4
|
import type { FXEmitterPlayOptions } from "./FXEmitter.Internal";
|
|
8
|
-
|
|
5
|
+
import type { FXSpawnModule } from "./spawn/FXSpawnModule";
|
|
9
6
|
export interface FXEmitterOptions {
|
|
10
7
|
expectedCapacity: number;
|
|
11
8
|
capacityStep: number;
|
|
12
9
|
automaticallyDestroyModules: boolean;
|
|
13
|
-
blending: Blending;
|
|
14
|
-
useAlphaHashing: boolean;
|
|
15
10
|
castShadow: boolean;
|
|
16
11
|
receiveShadow: boolean;
|
|
17
|
-
renderingMode: FXParticleRenderingMode;
|
|
18
|
-
normalsMode: FXParticleNormalsMode;
|
|
19
12
|
}
|
|
20
13
|
export declare class FXEmitter extends Object3D {
|
|
21
14
|
private readonly spawnSequence;
|
|
22
15
|
private readonly behaviorSequence;
|
|
23
|
-
private readonly renderingSequence;
|
|
24
16
|
automaticallyDestroyModules: boolean;
|
|
25
17
|
private readonly mesh;
|
|
18
|
+
private readonly material;
|
|
26
19
|
private emissionRate;
|
|
27
20
|
private emissionAccumulator;
|
|
28
21
|
private emissionDuration;
|
|
29
22
|
private emissionElapsed;
|
|
30
|
-
constructor(spawnSequence: FXSpawnModule[], behaviorSequence: readonly FXBehaviorModule[],
|
|
23
|
+
constructor(spawnSequence: FXSpawnModule[], behaviorSequence: readonly FXBehaviorModule[], material: FXMaterial, options?: Partial<FXEmitterOptions>);
|
|
31
24
|
static onWillRender: (deltaTime: number) => void;
|
|
32
25
|
destroy(): void;
|
|
33
26
|
burst(count: number): void;
|
|
@@ -1,20 +1,16 @@
|
|
|
1
|
-
import { Object3D
|
|
1
|
+
import { Object3D } from 'three';
|
|
2
2
|
import { FXInstancedParticle } from '../instancedParticle/FXInstancedParticle.js';
|
|
3
|
-
import { collectProperties
|
|
4
|
-
import { buildParticleDepthMaterial } from '../instancedParticle/FXParticleDepthMaterial.js';
|
|
5
|
-
export { FXParticleNormalsMode } from '../instancedParticle/FXParticleNormalsMode.js';
|
|
6
|
-
export { FXParticleRenderingMode } from '../instancedParticle/FXParticleRenderingMode.js';
|
|
3
|
+
import { collectProperties } from '../instancedParticle/FXInstancedParticle.Internal.js';
|
|
7
4
|
import { resolveGLSLTypeInfo } from '../instancedParticle/shared.js';
|
|
8
5
|
import { BUILTIN_OFFSET_AGE, BUILTIN_OFFSET_POSITION_X, BUILTIN_OFFSET_VELOCITY_X, BUILTIN_OFFSET_POSITION_Y, BUILTIN_OFFSET_VELOCITY_Y, BUILTIN_OFFSET_POSITION_Z, BUILTIN_OFFSET_VELOCITY_Z, BUILTIN_OFFSET_ROTATION, BUILTIN_OFFSET_TORQUE, BUILTIN_OFFSET_RANDOM_A, BUILTIN_OFFSET_RANDOM_B, BUILTIN_OFFSET_RANDOM_C } from '../miscellaneous/miscellaneous.js';
|
|
9
|
-
import { EMITTER_DEFAULT_EXPECTED_CAPACITY, EMITTER_DEFAULT_CAPACITY_STEP,
|
|
6
|
+
import { EMITTER_DEFAULT_EXPECTED_CAPACITY, EMITTER_DEFAULT_CAPACITY_STEP, EMITTER_DEFAULT_CAST_SHADOW, EMITTER_DEFAULT_RECEIVE_SHADOW, EMITTER_DEFAULT_AUTOMATICALLY_DESTROY_MODULES } from './FXEmitter.Internal.js';
|
|
10
7
|
|
|
11
|
-
const
|
|
8
|
+
const EMITTERS = new Array();
|
|
12
9
|
class FXEmitter extends Object3D {
|
|
13
|
-
constructor(_private_spawnSequence, _private_behaviorSequence,
|
|
10
|
+
constructor(_private_spawnSequence, _private_behaviorSequence, material, options = {}) {
|
|
14
11
|
super();
|
|
15
12
|
this._private_spawnSequence = _private_spawnSequence;
|
|
16
13
|
this._private_behaviorSequence = _private_behaviorSequence;
|
|
17
|
-
this._private_renderingSequence = _private_renderingSequence;
|
|
18
14
|
this._private_emissionRate = 0;
|
|
19
15
|
this._private_emissionAccumulator = 0;
|
|
20
16
|
this._private_emissionDuration = Infinity;
|
|
@@ -78,28 +74,27 @@ class FXEmitter extends Object3D {
|
|
|
78
74
|
const collectedProperties = {
|
|
79
75
|
builtin: resolveGLSLTypeInfo("Matrix4"),
|
|
80
76
|
};
|
|
81
|
-
collectProperties(collectedProperties, _private_spawnSequence, "FXEmitter.constructor.spawnSequence
|
|
77
|
+
collectProperties(collectedProperties, _private_spawnSequence, "FXEmitter.constructor.spawnSequence");
|
|
82
78
|
collectProperties(collectedProperties, _private_behaviorSequence, "FXEmitter.constructor.behaviorSequence");
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
collectUniforms(collectedUniforms, _private_renderingSequence, "FXEmitter.constructor.renderingSequence");
|
|
86
|
-
this._private_mesh = new FXInstancedParticle(_private_renderingSequence.map((module) => module.source), collectedUniforms, collectedProperties, options.expectedCapacity ?? EMITTER_DEFAULT_EXPECTED_CAPACITY, options.capacityStep ?? EMITTER_DEFAULT_CAPACITY_STEP, options.blending ?? NormalBlending, options.useAlphaHashing ?? false, options.renderingMode ?? EMITTER_DEFAULT_RENDERING_MODE, options.normalsMode ?? EMITTER_DEFAULT_NORMALS_MODE);
|
|
79
|
+
const threeMaterial = material.buildThreeMaterial(collectedProperties);
|
|
80
|
+
this._private_mesh = new FXInstancedParticle(collectedProperties, options.expectedCapacity ?? EMITTER_DEFAULT_EXPECTED_CAPACITY, options.capacityStep ?? EMITTER_DEFAULT_CAPACITY_STEP, threeMaterial);
|
|
87
81
|
if (options.castShadow ?? EMITTER_DEFAULT_CAST_SHADOW) {
|
|
88
82
|
this._private_mesh.castShadow = true;
|
|
89
|
-
this._private_mesh.customDepthMaterial =
|
|
83
|
+
this._private_mesh.customDepthMaterial = material.buildDepthMaterial();
|
|
90
84
|
}
|
|
91
85
|
if (options.receiveShadow ?? EMITTER_DEFAULT_RECEIVE_SHADOW) {
|
|
92
86
|
this._private_mesh.receiveShadow = true;
|
|
93
87
|
}
|
|
94
88
|
this.automaticallyDestroyModules =
|
|
95
89
|
options.automaticallyDestroyModules ?? EMITTER_DEFAULT_AUTOMATICALLY_DESTROY_MODULES;
|
|
90
|
+
this._private_material = material;
|
|
96
91
|
this.add(this._private_mesh);
|
|
97
|
-
|
|
92
|
+
EMITTERS.push(this);
|
|
98
93
|
}
|
|
99
94
|
destroy() {
|
|
100
|
-
const index =
|
|
95
|
+
const index = EMITTERS.indexOf(this);
|
|
101
96
|
if (index !== -1) {
|
|
102
|
-
|
|
97
|
+
EMITTERS.splice(index, 1);
|
|
103
98
|
}
|
|
104
99
|
if (this.automaticallyDestroyModules) {
|
|
105
100
|
for (const module of this._private_spawnSequence) {
|
|
@@ -108,9 +103,7 @@ class FXEmitter extends Object3D {
|
|
|
108
103
|
for (const module of this._private_behaviorSequence) {
|
|
109
104
|
module.destroy?.();
|
|
110
105
|
}
|
|
111
|
-
|
|
112
|
-
module.destroy?.();
|
|
113
|
-
}
|
|
106
|
+
this._private_material.destroy();
|
|
114
107
|
}
|
|
115
108
|
this.removeFromParent();
|
|
116
109
|
}
|
|
@@ -150,7 +143,7 @@ class FXEmitter extends Object3D {
|
|
|
150
143
|
}
|
|
151
144
|
}
|
|
152
145
|
FXEmitter.onWillRender = (deltaTime) => {
|
|
153
|
-
for (const instance of
|
|
146
|
+
for (const instance of EMITTERS) {
|
|
154
147
|
instance._private_onRendering(deltaTime);
|
|
155
148
|
}
|
|
156
149
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Vector3Like } from "
|
|
2
|
-
import { type FXVector3Config } from "
|
|
1
|
+
import type { Vector3Like } from "../../miscellaneous/math";
|
|
2
|
+
import { type FXVector3Config } from "../../miscellaneous/miscellaneous";
|
|
3
3
|
import { FXBehaviorModule } from "./FXBehaviorModule";
|
|
4
4
|
/**
|
|
5
5
|
* Applies constant acceleration to all particles.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { assertValidNumber } from '
|
|
2
|
-
import { resolveFXVector3Config, BUILTIN_OFFSET_VELOCITY_X, BUILTIN_OFFSET_VELOCITY_Y, BUILTIN_OFFSET_VELOCITY_Z } from '
|
|
1
|
+
import { assertValidNumber } from '../../miscellaneous/asserts.js';
|
|
2
|
+
import { resolveFXVector3Config, BUILTIN_OFFSET_VELOCITY_X, BUILTIN_OFFSET_VELOCITY_Y, BUILTIN_OFFSET_VELOCITY_Z } from '../../miscellaneous/miscellaneous.js';
|
|
3
3
|
import { FXBehaviorModule } from './FXBehaviorModule.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Vector3Like } from "
|
|
2
|
-
import { type FXRange, type FXRangeConfig, type FXVector3Config } from "
|
|
1
|
+
import type { Vector3Like } from "../../miscellaneous/math";
|
|
2
|
+
import { type FXRange, type FXRangeConfig, type FXVector3Config } from "../../miscellaneous/miscellaneous";
|
|
3
3
|
import { FXBehaviorModule } from "./FXBehaviorModule";
|
|
4
4
|
/**
|
|
5
5
|
* Applies gravity attraction toward a point.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MathUtils } from 'three';
|
|
2
|
-
import { assertValidNumber } from '
|
|
3
|
-
import { resolveFXVector3Config, resolveFXRangeConfig, BUILTIN_OFFSET_POSITION_X, BUILTIN_OFFSET_POSITION_Y, BUILTIN_OFFSET_POSITION_Z, BUILTIN_OFFSET_RANDOM_A, BUILTIN_OFFSET_RANDOM_B, BUILTIN_OFFSET_RANDOM_C, BUILTIN_OFFSET_VELOCITY_X, BUILTIN_OFFSET_VELOCITY_Y, BUILTIN_OFFSET_VELOCITY_Z } from '
|
|
2
|
+
import { assertValidNumber } from '../../miscellaneous/asserts.js';
|
|
3
|
+
import { resolveFXVector3Config, resolveFXRangeConfig, BUILTIN_OFFSET_POSITION_X, BUILTIN_OFFSET_POSITION_Y, BUILTIN_OFFSET_POSITION_Z, BUILTIN_OFFSET_RANDOM_A, BUILTIN_OFFSET_RANDOM_B, BUILTIN_OFFSET_RANDOM_C, BUILTIN_OFFSET_VELOCITY_X, BUILTIN_OFFSET_VELOCITY_Y, BUILTIN_OFFSET_VELOCITY_Z } from '../../miscellaneous/miscellaneous.js';
|
|
4
4
|
import { FXBehaviorModule } from './FXBehaviorModule.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type FXAspectConfig, type FXRangeConfig } from "
|
|
1
|
+
import { type FXAspectConfig, type FXRangeConfig } from "../../miscellaneous/miscellaneous";
|
|
2
2
|
import { FXBehaviorModule } from "./FXBehaviorModule";
|
|
3
3
|
/**
|
|
4
4
|
* Animates particle scale over lifetime.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MathUtils } from 'three';
|
|
2
|
-
import { assertValidNonNegativeNumber, assertValidPositiveNumber } from '
|
|
3
|
-
import { resolveFXRangeConfig, resolveAspect, BUILTIN_OFFSET_AGE, BUILTIN_OFFSET_LIFETIME, BUILTIN_OFFSET_RANDOM_A, BUILTIN_OFFSET_SCALE_X, BUILTIN_OFFSET_SCALE_Y } from '
|
|
2
|
+
import { assertValidNonNegativeNumber, assertValidPositiveNumber } from '../../miscellaneous/asserts.js';
|
|
3
|
+
import { resolveFXRangeConfig, resolveAspect, BUILTIN_OFFSET_AGE, BUILTIN_OFFSET_LIFETIME, BUILTIN_OFFSET_RANDOM_A, BUILTIN_OFFSET_SCALE_X, BUILTIN_OFFSET_SCALE_Y } from '../../miscellaneous/miscellaneous.js';
|
|
4
4
|
import { FXBehaviorModule } from './FXBehaviorModule.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type FXRange, type FXRangeConfig } from "
|
|
1
|
+
import { type FXRange, type FXRangeConfig } from "../../miscellaneous/miscellaneous";
|
|
2
2
|
import { FXBehaviorModule } from "./FXBehaviorModule";
|
|
3
3
|
/**
|
|
4
4
|
* Reduces particle angular velocity over time.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MathUtils } from 'three';
|
|
2
|
-
import { assertValidNonNegativeNumber } from '
|
|
3
|
-
import { resolveFXRangeConfig, BUILTIN_OFFSET_RANDOM_B, BUILTIN_OFFSET_TORQUE } from '
|
|
2
|
+
import { assertValidNonNegativeNumber } from '../../miscellaneous/asserts.js';
|
|
3
|
+
import { resolveFXRangeConfig, BUILTIN_OFFSET_RANDOM_B, BUILTIN_OFFSET_TORQUE } from '../../miscellaneous/miscellaneous.js';
|
|
4
4
|
import { FXBehaviorModule } from './FXBehaviorModule.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FXRange, FXRangeConfig } from "
|
|
1
|
+
import type { FXRange, FXRangeConfig } from "../../miscellaneous/miscellaneous";
|
|
2
2
|
import { FXBehaviorModule } from "./FXBehaviorModule";
|
|
3
3
|
/**
|
|
4
4
|
* Applies noise-based angular acceleration to particles.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { m as modExports } from '
|
|
1
|
+
import { m as modExports } from '../../_virtual/mod.js';
|
|
2
2
|
import { MathUtils } from 'three';
|
|
3
|
-
import { assertValidPositiveNumber, assertValidNonNegativeNumber } from '
|
|
4
|
-
import { resolveFXRangeConfig, BUILTIN_OFFSET_RANDOM_C, BUILTIN_OFFSET_POSITION_X, BUILTIN_OFFSET_POSITION_Y, BUILTIN_OFFSET_POSITION_Z, BUILTIN_OFFSET_RANDOM_A, BUILTIN_OFFSET_TORQUE } from '
|
|
3
|
+
import { assertValidPositiveNumber, assertValidNonNegativeNumber } from '../../miscellaneous/asserts.js';
|
|
4
|
+
import { resolveFXRangeConfig, BUILTIN_OFFSET_RANDOM_C, BUILTIN_OFFSET_POSITION_X, BUILTIN_OFFSET_POSITION_Y, BUILTIN_OFFSET_POSITION_Z, BUILTIN_OFFSET_RANDOM_A, BUILTIN_OFFSET_TORQUE } from '../../miscellaneous/miscellaneous.js';
|
|
5
5
|
import { FXBehaviorModule } from './FXBehaviorModule.js';
|
|
6
6
|
|
|
7
7
|
const generateNoise3D = modExports.makeNoise3D();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type FXRange, type FXRangeConfig } from "
|
|
1
|
+
import { type FXRange, type FXRangeConfig } from "../../miscellaneous/miscellaneous";
|
|
2
2
|
import { FXBehaviorModule } from "./FXBehaviorModule";
|
|
3
3
|
/**
|
|
4
4
|
* Reduces particle velocity over time.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MathUtils } from 'three';
|
|
2
|
-
import { assertValidNonNegativeNumber } from '
|
|
3
|
-
import { resolveFXRangeConfig, BUILTIN_OFFSET_RANDOM_B, BUILTIN_OFFSET_VELOCITY_X, BUILTIN_OFFSET_VELOCITY_Y, BUILTIN_OFFSET_VELOCITY_Z } from '
|
|
2
|
+
import { assertValidNonNegativeNumber } from '../../miscellaneous/asserts.js';
|
|
3
|
+
import { resolveFXRangeConfig, BUILTIN_OFFSET_RANDOM_B, BUILTIN_OFFSET_VELOCITY_X, BUILTIN_OFFSET_VELOCITY_Y, BUILTIN_OFFSET_VELOCITY_Z } from '../../miscellaneous/miscellaneous.js';
|
|
4
4
|
import { FXBehaviorModule } from './FXBehaviorModule.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FXRange, FXRangeConfig } from "
|
|
1
|
+
import type { FXRange, FXRangeConfig } from "../../miscellaneous/miscellaneous";
|
|
2
2
|
import { FXBehaviorModule } from "./FXBehaviorModule";
|
|
3
3
|
/**
|
|
4
4
|
* Applies noise-based acceleration to particles.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { m as modExports } from '
|
|
1
|
+
import { m as modExports } from '../../_virtual/mod.js';
|
|
2
2
|
import { MathUtils } from 'three';
|
|
3
|
-
import { assertValidPositiveNumber, assertValidNonNegativeNumber } from '
|
|
4
|
-
import { resolveFXRangeConfig, BUILTIN_OFFSET_POSITION_X, BUILTIN_OFFSET_POSITION_Y, BUILTIN_OFFSET_POSITION_Z, BUILTIN_OFFSET_RANDOM_C, BUILTIN_OFFSET_RANDOM_A, BUILTIN_OFFSET_VELOCITY_X, BUILTIN_OFFSET_VELOCITY_Y, BUILTIN_OFFSET_VELOCITY_Z } from '
|
|
3
|
+
import { assertValidPositiveNumber, assertValidNonNegativeNumber } from '../../miscellaneous/asserts.js';
|
|
4
|
+
import { resolveFXRangeConfig, BUILTIN_OFFSET_POSITION_X, BUILTIN_OFFSET_POSITION_Y, BUILTIN_OFFSET_POSITION_Z, BUILTIN_OFFSET_RANDOM_C, BUILTIN_OFFSET_RANDOM_A, BUILTIN_OFFSET_VELOCITY_X, BUILTIN_OFFSET_VELOCITY_Y, BUILTIN_OFFSET_VELOCITY_Z } from '../../miscellaneous/miscellaneous.js';
|
|
5
5
|
import { FXBehaviorModule } from './FXBehaviorModule.js';
|
|
6
6
|
|
|
7
7
|
const generateNoise3D0 = modExports.makeNoise3D();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Vector3Like } from "
|
|
2
|
-
import { type FXVector3Config } from "
|
|
1
|
+
import type { Vector3Like } from "../../miscellaneous/math";
|
|
2
|
+
import { type FXVector3Config } from "../../miscellaneous/miscellaneous";
|
|
3
3
|
import { FXSpawnModule } from "./FXSpawnModule";
|
|
4
4
|
/**
|
|
5
5
|
* Spawns particles at random positions within an axis-aligned bounding box.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MathUtils } from 'three';
|
|
2
|
-
import { assertValidNumber } from '
|
|
3
|
-
import { resolveFXVector3Config, BUILTIN_OFFSET_POSITION_X, BUILTIN_OFFSET_POSITION_Y, BUILTIN_OFFSET_POSITION_Z } from '
|
|
2
|
+
import { assertValidNumber } from '../../miscellaneous/asserts.js';
|
|
3
|
+
import { resolveFXVector3Config, BUILTIN_OFFSET_POSITION_X, BUILTIN_OFFSET_POSITION_Y, BUILTIN_OFFSET_POSITION_Z } from '../../miscellaneous/miscellaneous.js';
|
|
4
4
|
import { FXSpawnModule } from './FXSpawnModule.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Vector3Like } from "
|
|
2
|
-
import type
|
|
1
|
+
import type { Vector3Like } from "../../miscellaneous/math";
|
|
2
|
+
import { type FXVector3Config } from "../../miscellaneous/miscellaneous";
|
|
3
3
|
import { FXSpawnModule } from "./FXSpawnModule";
|
|
4
4
|
/**
|
|
5
5
|
* Sets particle spawn position offset.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { assertValidNumber } from '
|
|
2
|
-
import { resolveFXVector3Config, BUILTIN_OFFSET_POSITION_X, BUILTIN_OFFSET_POSITION_Y, BUILTIN_OFFSET_POSITION_Z } from '
|
|
1
|
+
import { assertValidNumber } from '../../miscellaneous/asserts.js';
|
|
2
|
+
import { resolveFXVector3Config, BUILTIN_OFFSET_POSITION_X, BUILTIN_OFFSET_POSITION_Y, BUILTIN_OFFSET_POSITION_Z } from '../../miscellaneous/miscellaneous.js';
|
|
3
3
|
import { FXSpawnModule } from './FXSpawnModule.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MathUtils } from 'three';
|
|
2
|
-
import { assertValidPositiveNumber } from '
|
|
3
|
-
import { resolveFXRangeConfig, BUILTIN_OFFSET_LIFETIME, BUILTIN_OFFSET_AGE } from '
|
|
2
|
+
import { assertValidPositiveNumber } from '../../miscellaneous/asserts.js';
|
|
3
|
+
import { resolveFXRangeConfig, BUILTIN_OFFSET_LIFETIME, BUILTIN_OFFSET_AGE } from '../../miscellaneous/miscellaneous.js';
|
|
4
4
|
import { FXSpawnModule } from './FXSpawnModule.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MathUtils } from 'three';
|
|
2
|
-
import { assertValidNumber } from '
|
|
3
|
-
import { resolveFXRangeConfig, BUILTIN_OFFSET_ROTATION } from '
|
|
2
|
+
import { assertValidNumber } from '../../miscellaneous/asserts.js';
|
|
3
|
+
import { resolveFXRangeConfig, BUILTIN_OFFSET_ROTATION } from '../../miscellaneous/miscellaneous.js';
|
|
4
4
|
import { FXSpawnModule } from './FXSpawnModule.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type FXAspectConfig, type FXRange, type FXRangeConfig } from "
|
|
1
|
+
import { type FXAspectConfig, type FXRange, type FXRangeConfig } from "../../miscellaneous/miscellaneous";
|
|
2
2
|
import { FXSpawnModule } from "./FXSpawnModule";
|
|
3
3
|
/**
|
|
4
4
|
* Assigns random scale to particles.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MathUtils } from 'three';
|
|
2
|
-
import { assertValidPositiveNumber } from '
|
|
3
|
-
import { resolveFXRangeConfig, resolveAspect, BUILTIN_OFFSET_SCALE_X, BUILTIN_OFFSET_SCALE_Y } from '
|
|
2
|
+
import { assertValidPositiveNumber } from '../../miscellaneous/asserts.js';
|
|
3
|
+
import { resolveFXRangeConfig, resolveAspect, BUILTIN_OFFSET_SCALE_X, BUILTIN_OFFSET_SCALE_Y } from '../../miscellaneous/miscellaneous.js';
|
|
4
4
|
import { FXSpawnModule } from './FXSpawnModule.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type FXRange, type FXRangeConfig } from "
|
|
1
|
+
import { type FXRange, type FXRangeConfig } from "../../miscellaneous/miscellaneous";
|
|
2
2
|
import { FXSpawnModule } from "./FXSpawnModule";
|
|
3
3
|
/**
|
|
4
4
|
* Assigns random angular velocity to particles.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MathUtils } from 'three';
|
|
2
|
-
import { assertValidNumber } from '
|
|
3
|
-
import { resolveFXRangeConfig, BUILTIN_OFFSET_TORQUE } from '
|
|
2
|
+
import { assertValidNumber } from '../../miscellaneous/asserts.js';
|
|
3
|
+
import { resolveFXRangeConfig, BUILTIN_OFFSET_TORQUE } from '../../miscellaneous/miscellaneous.js';
|
|
4
4
|
import { FXSpawnModule } from './FXSpawnModule.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Vector3 } from "three";
|
|
2
|
-
import { type FXRange, type FXRangeConfig } from "
|
|
2
|
+
import { type FXRange, type FXRangeConfig } from "../../miscellaneous/miscellaneous";
|
|
3
3
|
import { FXSpawnModule } from "./FXSpawnModule";
|
|
4
4
|
export declare class FXSpawnRandomVelocity extends FXSpawnModule<{
|
|
5
5
|
builtin: "Matrix4";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Vector3, MathUtils } from 'three';
|
|
2
|
-
import { assertValidNumber } from '
|
|
3
|
-
import { resolveFXRangeConfig, BUILTIN_OFFSET_VELOCITY_X, BUILTIN_OFFSET_VELOCITY_Y, BUILTIN_OFFSET_VELOCITY_Z } from '
|
|
2
|
+
import { assertValidNumber } from '../../miscellaneous/asserts.js';
|
|
3
|
+
import { resolveFXRangeConfig, BUILTIN_OFFSET_VELOCITY_X, BUILTIN_OFFSET_VELOCITY_Y, BUILTIN_OFFSET_VELOCITY_Z } from '../../miscellaneous/miscellaneous.js';
|
|
4
4
|
import { FXSpawnModule } from './FXSpawnModule.js';
|
|
5
5
|
|
|
6
6
|
const TEMP_TANGENT = new Vector3();
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { FXSpawnModule } from "./FXSpawnModule";
|
|
2
|
+
/**
|
|
3
|
+
* Spawns particles at random positions within a spherical shell.
|
|
4
|
+
*
|
|
5
|
+
* The `angle` parameter controls the polar spread from the equatorial plane:
|
|
6
|
+
* - `0` - flat disk (XZ plane only)
|
|
7
|
+
* - `Math.PI / 2` - full sphere
|
|
8
|
+
* - Values in between produce a spherical band/zone
|
|
9
|
+
*/
|
|
10
|
+
export declare class FXSpawnSphere extends FXSpawnModule<{
|
|
11
|
+
builtin: "Matrix4";
|
|
12
|
+
}> {
|
|
13
|
+
private innerRadiusInternal;
|
|
14
|
+
private outerRadiusInternal;
|
|
15
|
+
private angleInternal;
|
|
16
|
+
/**
|
|
17
|
+
* @param innerRadius - Minimum spawn radius (0 = spawn from center)
|
|
18
|
+
* @param outerRadius - Maximum spawn radius
|
|
19
|
+
* @param angle - Polar half-angle from equatorial plane: 0 = disk, Math.PI/2 = full sphere
|
|
20
|
+
*/
|
|
21
|
+
constructor(innerRadius?: number, outerRadius?: number, angle?: number);
|
|
22
|
+
/**
|
|
23
|
+
* Polar half-angle from the equatorial plane.
|
|
24
|
+
* - `0` — flat disk
|
|
25
|
+
* - `Math.PI / 2` — full sphere
|
|
26
|
+
*/
|
|
27
|
+
get angle(): number;
|
|
28
|
+
/** Minimum spawn radius */
|
|
29
|
+
get innerRadius(): number;
|
|
30
|
+
/** Maximum spawn radius */
|
|
31
|
+
get outerRadius(): number;
|
|
32
|
+
/** Minimum spawn radius */
|
|
33
|
+
set innerRadius(value: number);
|
|
34
|
+
/** Maximum spawn radius */
|
|
35
|
+
set outerRadius(value: number);
|
|
36
|
+
/** @see {@link angle} */
|
|
37
|
+
set angle(value: number);
|
|
38
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { MathUtils } from 'three';
|
|
2
|
+
import { assertValidNonNegativeNumber, assertValidNumber } from '../../miscellaneous/asserts.js';
|
|
3
|
+
import { BUILTIN_OFFSET_POSITION_X, BUILTIN_OFFSET_POSITION_Y, BUILTIN_OFFSET_POSITION_Z } from '../../miscellaneous/miscellaneous.js';
|
|
4
|
+
import { FXSpawnModule } from './FXSpawnModule.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Spawns particles at random positions within a spherical shell.
|
|
8
|
+
*
|
|
9
|
+
* The `angle` parameter controls the polar spread from the equatorial plane:
|
|
10
|
+
* - `0` - flat disk (XZ plane only)
|
|
11
|
+
* - `Math.PI / 2` - full sphere
|
|
12
|
+
* - Values in between produce a spherical band/zone
|
|
13
|
+
*/
|
|
14
|
+
class FXSpawnSphere extends FXSpawnModule {
|
|
15
|
+
/**
|
|
16
|
+
* @param innerRadius - Minimum spawn radius (0 = spawn from center)
|
|
17
|
+
* @param outerRadius - Maximum spawn radius
|
|
18
|
+
* @param angle - Polar half-angle from equatorial plane: 0 = disk, Math.PI/2 = full sphere
|
|
19
|
+
*/
|
|
20
|
+
constructor(innerRadius = 0, outerRadius = 1, angle = Math.PI / 2) {
|
|
21
|
+
super();
|
|
22
|
+
/** @internal */
|
|
23
|
+
this.requiredProperties = { builtin: "Matrix4" };
|
|
24
|
+
this._private_innerRadiusInternal = innerRadius;
|
|
25
|
+
this._private_outerRadiusInternal = outerRadius;
|
|
26
|
+
this._private_angleInternal = angle;
|
|
27
|
+
assertValidNonNegativeNumber(innerRadius, "FXSpawnSphere.constructor.innerRadius");
|
|
28
|
+
assertValidNonNegativeNumber(outerRadius, "FXSpawnSphere.constructor.outerRadius");
|
|
29
|
+
assertValidNumber(angle, "FXSpawnSphere.constructor.angle");
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Polar half-angle from the equatorial plane.
|
|
33
|
+
* - `0` — flat disk
|
|
34
|
+
* - `Math.PI / 2` — full sphere
|
|
35
|
+
*/
|
|
36
|
+
get angle() {
|
|
37
|
+
return this._private_angleInternal;
|
|
38
|
+
}
|
|
39
|
+
/** Minimum spawn radius */
|
|
40
|
+
get innerRadius() {
|
|
41
|
+
return this._private_innerRadiusInternal;
|
|
42
|
+
}
|
|
43
|
+
/** Maximum spawn radius */
|
|
44
|
+
get outerRadius() {
|
|
45
|
+
return this._private_outerRadiusInternal;
|
|
46
|
+
}
|
|
47
|
+
/** Minimum spawn radius */
|
|
48
|
+
set innerRadius(value) {
|
|
49
|
+
assertValidNonNegativeNumber(value, "FXSpawnSphere.innerRadius");
|
|
50
|
+
this._private_innerRadiusInternal = value;
|
|
51
|
+
}
|
|
52
|
+
/** Maximum spawn radius */
|
|
53
|
+
set outerRadius(value) {
|
|
54
|
+
assertValidNonNegativeNumber(value, "FXSpawnSphere.outerRadius");
|
|
55
|
+
this._private_outerRadiusInternal = value;
|
|
56
|
+
}
|
|
57
|
+
/** @see {@link angle} */
|
|
58
|
+
set angle(value) {
|
|
59
|
+
assertValidNumber(value, "FXSpawnSphere.angle");
|
|
60
|
+
this._private_angleInternal = value;
|
|
61
|
+
}
|
|
62
|
+
/** @internal */
|
|
63
|
+
spawn(properties, instanceBegin, instanceEnd) {
|
|
64
|
+
const { builtin } = properties;
|
|
65
|
+
const { array, itemSize } = builtin;
|
|
66
|
+
const inner = this._private_innerRadiusInternal;
|
|
67
|
+
const outer = this._private_outerRadiusInternal;
|
|
68
|
+
const sinAngle = Math.sin(this._private_angleInternal);
|
|
69
|
+
// Volume-uniform radius sampling within the shell
|
|
70
|
+
const inner3 = inner * inner * inner;
|
|
71
|
+
const outer3 = outer * outer * outer;
|
|
72
|
+
for (let i = instanceBegin; i < instanceEnd; i++) {
|
|
73
|
+
// Uniform volume-weighted radius
|
|
74
|
+
const r = Math.cbrt(MathUtils.randFloat(inner3, outer3));
|
|
75
|
+
// Uniform sampling on spherical zone:
|
|
76
|
+
// cosTheta in [-sinAngle, sinAngle] gives latitude range [-angle, +angle]
|
|
77
|
+
const cosTheta = MathUtils.randFloat(-sinAngle, sinAngle);
|
|
78
|
+
const sinTheta = Math.sqrt(1 - cosTheta * cosTheta);
|
|
79
|
+
const phi = MathUtils.randFloat(0, Math.PI * 2);
|
|
80
|
+
const itemOffset = i * itemSize;
|
|
81
|
+
array[itemOffset + BUILTIN_OFFSET_POSITION_X] = r * sinTheta * Math.cos(phi);
|
|
82
|
+
array[itemOffset + BUILTIN_OFFSET_POSITION_Y] = r * cosTheta;
|
|
83
|
+
array[itemOffset + BUILTIN_OFFSET_POSITION_Z] = r * sinTheta * Math.sin(phi);
|
|
84
|
+
}
|
|
85
|
+
builtin.needsUpdate = true;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export { FXSpawnSphere };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
|
-
export { FXBehaviorDirectionalGravity } from "./
|
|
2
|
-
export { FXBehaviorPointGravity } from "./
|
|
3
|
-
export { FXBehaviorScaleOverLife } from "./
|
|
4
|
-
export { FXBehaviorTorqueDamping } from "./
|
|
5
|
-
export { FXBehaviorTorqueNoise } from "./
|
|
6
|
-
export { FXBehaviorVelocityDamping } from "./
|
|
7
|
-
export { FXBehaviorVelocityNoise } from "./
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
18
|
-
export {
|
|
19
|
-
export {
|
|
20
|
-
export {
|
|
1
|
+
export { FXBehaviorDirectionalGravity } from "./emitter/behavior/FXBehaviorDirectionalGravity";
|
|
2
|
+
export { FXBehaviorPointGravity } from "./emitter/behavior/FXBehaviorPointGravity";
|
|
3
|
+
export { FXBehaviorScaleOverLife } from "./emitter/behavior/FXBehaviorScaleOverLife";
|
|
4
|
+
export { FXBehaviorTorqueDamping } from "./emitter/behavior/FXBehaviorTorqueDamping";
|
|
5
|
+
export { FXBehaviorTorqueNoise } from "./emitter/behavior/FXBehaviorTorqueNoise";
|
|
6
|
+
export { FXBehaviorVelocityDamping } from "./emitter/behavior/FXBehaviorVelocityDamping";
|
|
7
|
+
export { FXBehaviorVelocityNoise } from "./emitter/behavior/FXBehaviorVelocityNoise";
|
|
8
|
+
export { FXEmitter } from "./emitter/FXEmitter";
|
|
9
|
+
export { FXSpawnBox } from "./emitter/spawn/FXSpawnBox";
|
|
10
|
+
export { FXSpawnOffset } from "./emitter/spawn/FXSpawnOffset";
|
|
11
|
+
export { FXSpawnRandomLifetime } from "./emitter/spawn/FXSpawnRandomLifetime";
|
|
12
|
+
export { FXSpawnRandomRotation } from "./emitter/spawn/FXSpawnRandomRotation";
|
|
13
|
+
export { FXSpawnRandomScale } from "./emitter/spawn/FXSpawnRandomScale";
|
|
14
|
+
export { FXSpawnRandomTorque } from "./emitter/spawn/FXSpawnRandomTorque";
|
|
15
|
+
export { FXSpawnRandomVelocity } from "./emitter/spawn/FXSpawnRandomVelocity";
|
|
16
|
+
export { FXSpawnSphere } from "./emitter/spawn/FXSpawnSphere";
|
|
17
|
+
export { FXAnimatedTextureNode } from "./materials/color-nodes/FXAnimatedTextureNode";
|
|
18
|
+
export { FXColorNode } from "./materials/color-nodes/FXColorNode";
|
|
19
|
+
export { FXColorOverLifeNode } from "./materials/color-nodes/FXColorOverLifeNode";
|
|
20
|
+
export { FXStaticTextureNode } from "./materials/color-nodes/FXStaticTextureNode";
|
|
21
|
+
export { FXDiffuseMaterial, FXParticleNormalsMode, } from "./materials/FXDiffuseMaterial/FXDiffuseMaterial";
|
|
22
|
+
export { FXMaterial } from "./materials/FXMaterial";
|
|
23
|
+
export { FXUnlitMaterial } from "./materials/FXUnlitMaterial/FXUnlitMaterial";
|
|
24
|
+
export { FXColor } from "./miscellaneous/color/FXColor";
|