/** * Options of the `particlesystem` component accepted by {@link ParticleSystemComponentSystem} that * differ from the properties of {@link ParticleSystemComponent}. Each replaces the same-named * property of the options that {@link Entity#addComponent} derives from the component class; see * {@link ComponentOptionsOverrides}. */ export type ParticleSystemComponentOptionsOverrides = { /** * - Same as * {@link ParticleSystemComponent#alphaGraph}, also accepting plain `{ type, keys }` curve data. */ alphaGraph?: Curve | { type?: number; keys: number[]; }; /** * - Same as * {@link ParticleSystemComponent#alphaGraph2}, also accepting plain `{ type, keys }` curve data. */ alphaGraph2?: Curve | { type?: number; keys: number[]; }; /** * - Same as * {@link ParticleSystemComponent#colorGraph}, also accepting plain `{ type, keys }` curve set data. */ colorGraph?: CurveSet | { type?: number; keys: number[][]; }; /** * - Same as * {@link ParticleSystemComponent#colorGraph2}, also accepting plain `{ type, keys }` curve set * data. */ colorGraph2?: CurveSet | { type?: number; keys: number[][]; }; /** * - Same as * {@link ParticleSystemComponent#emitterExtents}, also accepting an `[x, y, z]` array. */ emitterExtents?: Vec3 | number[]; /** * - Same as * {@link ParticleSystemComponent#emitterExtentsInner}, also accepting an `[x, y, z]` array. */ emitterExtentsInner?: Vec3 | number[]; /** * - Same as * {@link ParticleSystemComponent#localVelocityGraph}, also accepting plain `{ type, keys }` curve * set data. */ localVelocityGraph?: CurveSet | { type?: number; keys: number[][]; }; /** * - Same as * {@link ParticleSystemComponent#localVelocityGraph2}, also accepting plain `{ type, keys }` curve * set data. */ localVelocityGraph2?: CurveSet | { type?: number; keys: number[][]; }; /** * - Same as {@link ParticleSystemComponent#mesh}. An * {@link Asset} or asset id is assigned to {@link ParticleSystemComponent#meshAsset} instead. */ mesh?: Mesh | Asset | number; /** * - Same as * {@link ParticleSystemComponent#particleNormal}, also accepting an `[x, y, z]` array. */ particleNormal?: Vec3 | number[]; /** * - Same as * {@link ParticleSystemComponent#radialSpeedGraph}, also accepting plain `{ type, keys }` curve * data. */ radialSpeedGraph?: Curve | { type?: number; keys: number[]; }; /** * - Same as * {@link ParticleSystemComponent#radialSpeedGraph2}, also accepting plain `{ type, keys }` curve * data. */ radialSpeedGraph2?: Curve | { type?: number; keys: number[]; }; /** * - Same as * {@link ParticleSystemComponent#rotationSpeedGraph}, also accepting plain `{ type, keys }` curve * data. */ rotationSpeedGraph?: Curve | { type?: number; keys: number[]; }; /** * - Same as * {@link ParticleSystemComponent#rotationSpeedGraph2}, also accepting plain `{ type, keys }` curve * data. */ rotationSpeedGraph2?: Curve | { type?: number; keys: number[]; }; /** * - Same as * {@link ParticleSystemComponent#scaleGraph}, also accepting plain `{ type, keys }` curve data. */ scaleGraph?: Curve | { type?: number; keys: number[]; }; /** * - Same as * {@link ParticleSystemComponent#scaleGraph2}, also accepting plain `{ type, keys }` curve data. */ scaleGraph2?: Curve | { type?: number; keys: number[]; }; /** * - Same as * {@link ParticleSystemComponent#velocityGraph}, also accepting plain `{ type, keys }` curve set * data. */ velocityGraph?: CurveSet | { type?: number; keys: number[][]; }; /** * - Same as * {@link ParticleSystemComponent#velocityGraph2}, also accepting plain `{ type, keys }` curve set * data. */ velocityGraph2?: CurveSet | { type?: number; keys: number[][]; }; /** * - Same as {@link ParticleSystemComponent#wrapBounds}, * also accepting an `[x, y, z]` array. */ wrapBounds?: Vec3 | number[]; }; /** * Manages the {@link ParticleSystemComponent}s of an application. Reach it through * `app.systems.particlesystem`; components are created with {@link Entity#addComponent}, never by * calling the system directly. * * @category Graphics */ export class ParticleSystemComponentSystem extends ComponentSystem { id: string; ComponentType: typeof ParticleSystemComponent; initializeComponentData(component: any, _data: any): void; cloneComponent(entity: any, clone: any): import("../component.js").Component; onUpdate(dt: any): void; onBeforeRemove(entity: any, component: any): void; } import { Curve } from '../../../core/math/curve.js'; import { CurveSet } from '../../../core/math/curve-set.js'; import { Vec3 } from '../../../core/math/vec3.js'; import type { Mesh } from '../../../scene/mesh.js'; import { Asset } from '../../asset/asset.js'; import { ComponentSystem } from '../system.js'; import { ParticleSystemComponent } from './component.js';