@dominicstop/utils
Version:
Yet another event emitter written in typescript.
35 lines • 1.56 kB
TypeScript
import { Rect, Vector2D } from "../geometry";
import { AnyParticle } from "./AnyParticle";
import { SomeParticleForce } from "./SomeParticleForce";
import { ParticleMetadataMap, SomePhysicsEngine } from "./SomePhysicsEngine";
import { SomeSystemForce } from "./SomeSystemForce";
export declare class PhysicsEngine<SomeParticle extends AnyParticle> implements SomePhysicsEngine<SomeParticle> {
particles: Array<SomeParticle>;
particleMetadataMap: ParticleMetadataMap;
particleForces: Array<SomeParticleForce>;
systemForces: Array<SomeSystemForce>;
worldBounds: Rect | null;
gravity: Vector2D;
restitutionCoefficient: number;
collisionIterations: number;
dampingFactor: number;
constructor();
addParticle(particle: SomeParticle): void;
removeParticle(particleOrId: SomeParticle | string): boolean;
getParticleById(id: string): SomeParticle | undefined;
addForce(force: SomeParticleForce | SomeSystemForce): void;
removeForce(force: SomeParticleForce | SomeSystemForce): boolean;
update(deltaTime: number): void;
resolveCollisions(): void;
handleBoundaryConditions(particle: SomeParticle): void;
clear(): void;
getTotalKineticEnergy(): number;
logState(): void;
getParticleCount(): number;
setGravity(gravity: Vector2D): void;
setWorldBounds(bounds: Rect | null): void;
setRestitutionCoefficient(restitution: number): void;
setCollisionIterations(iterations: number): void;
checkIfAllParticlesAtRest(): boolean;
}
//# sourceMappingURL=PhysicsEngine.d.ts.map