import { XY, RGBA, b2Shape, b2Vec2, b2Color, b2Transform, b2Readonly } from "@box2d/core"; import { b2ParticleFlag } from "./b2_particle"; import type { b2ParticleSystem } from "./b2_particle_system"; export declare enum b2ParticleGroupFlag { /** * Prevents overlapping or leaking. */ b2_solidParticleGroup = 1, /** * Keeps its shape. */ b2_rigidParticleGroup = 2, /** * Won't be destroyed if it gets empty. */ b2_particleGroupCanBeEmpty = 4, /** * Will be destroyed on next simulation step. */ b2_particleGroupWillBeDestroyed = 8, /** * Updates depth data on next simulation step. */ b2_particleGroupNeedsUpdateDepth = 16, b2_particleGroupInternalMask = 24 } export interface b2IParticleGroupDef { flags?: b2ParticleFlag; groupFlags?: number; position?: XY; angle?: number; linearVelocity?: XY; angularVelocity?: number; color?: RGBA; strength?: number; shape?: b2Shape; shapes?: b2Shape[]; shapeCount?: number; stride?: number; particleCount?: number; positionData?: XY[]; lifetime?: number; userData?: any; group?: b2ParticleGroup | null; } export declare class b2ParticleGroupDef implements b2IParticleGroupDef { flags: b2ParticleFlag; groupFlags: number; readonly position: b2Vec2; angle: number; readonly linearVelocity: b2Vec2; angularVelocity: number; readonly color: b2Color; strength: number; shape?: b2Shape; shapes?: b2Shape[]; shapeCount: number; stride: number; particleCount: number; positionData?: Array>; lifetime: number; userData: any; group: b2ParticleGroup | null; } export declare class b2ParticleGroup { readonly m_system: b2ParticleSystem; m_firstIndex: number; m_lastIndex: number; m_groupFlags: number; m_strength: number; m_prev: b2ParticleGroup | null; m_next: b2ParticleGroup | null; m_timestamp: number; m_mass: number; m_inertia: number; readonly m_center: b2Vec2; readonly m_linearVelocity: b2Vec2; m_angularVelocity: number; readonly m_transform: b2Transform; m_userData: any; constructor(system: b2ParticleSystem); GetNext(): b2ParticleGroup | null; GetParticleSystem(): b2ParticleSystem; GetParticleCount(): number; GetBufferIndex(): number; ContainsParticle(index: number): boolean; GetAllParticleFlags(): b2ParticleFlag; GetGroupFlags(): number; SetGroupFlags(flags: number): void; GetMass(): number; GetInertia(): number; GetCenter(): b2Readonly; GetLinearVelocity(): b2Readonly; GetAngularVelocity(): number; GetTransform(): b2Readonly; GetPosition(): b2Readonly; GetAngle(): number; GetLinearVelocityFromWorldPoint(worldPoint: XY, out: T): T; static readonly GetLinearVelocityFromWorldPoint_s_t0: b2Vec2; GetUserData(): void; SetUserData(data: any): void; ApplyForce(force: XY): void; ApplyLinearImpulse(impulse: XY): void; DestroyParticles(callDestructionListener: boolean): void; UpdateStatistics(): void; } //# sourceMappingURL=b2_particle_group.d.ts.map