@pmndrs/cannon-worker-api
Version:
An API to use cannon-es in a web worker
85 lines (84 loc) • 5.64 kB
TypeScript
/// <reference types="node" />
import EventEmitter from 'events';
import type { Broadphase, CannonMessageBody, StepProps, Triplet, WorldProps } from './types';
export declare type CannonWorkerProps = Partial<WorldProps> & {
size?: number;
};
export declare class CannonWorkerAPI extends EventEmitter {
get axisIndex(): 0 | 1 | 2;
set axisIndex(value: 0 | 1 | 2);
get broadphase(): Broadphase;
set broadphase(value: Broadphase);
get frictionGravity(): Triplet | null;
set frictionGravity(value: Triplet | null);
get gravity(): Triplet;
set gravity(value: Triplet);
get iterations(): number;
set iterations(value: number);
get tolerance(): number;
set tolerance(value: number);
private buffers;
private config;
private messageQueue;
private worker;
constructor({ allowSleep, axisIndex, broadphase, defaultContactMaterial, frictionGravity, gravity, iterations, quatNormalizeFast, quatNormalizeSkip, size, solver, tolerance, }: CannonWorkerProps);
addBodies({ props, type, uuid }: CannonMessageBody<'addBodies'>): void;
addConstraint({ props: [refA, refB, optns], type, uuid }: CannonMessageBody<'addConstraint'>): void;
addContactMaterial({ props, uuid }: CannonMessageBody<'addContactMaterial'>): void;
addRay({ props, uuid }: CannonMessageBody<'addRay'>): void;
addRaycastVehicle({ props: [chassisBodyUUID, wheelUUIDs, wheelInfos, indexForwardAxis, indexRightAxis, indexUpAxis], uuid, }: CannonMessageBody<'addRaycastVehicle'>): void;
addSpring({ props: [refA, refB, optns], uuid }: CannonMessageBody<'addSpring'>): void;
applyForce({ props, uuid }: CannonMessageBody<'applyForce'>): void;
applyImpulse({ props, uuid }: CannonMessageBody<'applyImpulse'>): void;
applyLocalForce({ props, uuid }: CannonMessageBody<'applyLocalForce'>): void;
applyLocalImpulse({ props, uuid }: CannonMessageBody<'applyLocalImpulse'>): void;
applyRaycastVehicleEngineForce({ props, uuid }: CannonMessageBody<'applyRaycastVehicleEngineForce'>): void;
applyTorque({ props, uuid }: CannonMessageBody<'applyTorque'>): void;
connect(): void;
disableConstraint({ uuid }: CannonMessageBody<'disableConstraint'>): void;
disableConstraintMotor({ uuid }: CannonMessageBody<'disableConstraintMotor'>): void;
disconnect(): void;
enableConstraint({ uuid }: CannonMessageBody<'enableConstraint'>): void;
enableConstraintMotor({ uuid }: CannonMessageBody<'enableConstraintMotor'>): void;
init(): void;
removeBodies({ uuid }: CannonMessageBody<'removeBodies'>): void;
removeConstraint({ uuid }: CannonMessageBody<'removeConstraint'>): void;
removeContactMaterial({ uuid }: CannonMessageBody<'removeContactMaterial'>): void;
removeRay({ uuid }: CannonMessageBody<'removeRay'>): void;
removeRaycastVehicle({ uuid }: CannonMessageBody<'removeRaycastVehicle'>): void;
removeSpring({ uuid }: CannonMessageBody<'removeSpring'>): void;
setAllowSleep({ props, uuid }: CannonMessageBody<'setAllowSleep'>): void;
setAngularDamping({ props, uuid }: CannonMessageBody<'setAngularDamping'>): void;
setAngularFactor({ props, uuid }: CannonMessageBody<'setAngularFactor'>): void;
setAngularVelocity({ props, uuid }: CannonMessageBody<'setAngularVelocity'>): void;
setCollisionFilterGroup({ props, uuid }: CannonMessageBody<'setCollisionFilterGroup'>): void;
setCollisionFilterMask({ props, uuid }: CannonMessageBody<'setCollisionFilterMask'>): void;
setCollisionResponse({ props, uuid }: CannonMessageBody<'setCollisionResponse'>): void;
setConstraintMotorMaxForce({ props, uuid }: CannonMessageBody<'setConstraintMotorMaxForce'>): void;
setConstraintMotorSpeed({ props, uuid }: CannonMessageBody<'setConstraintMotorSpeed'>): void;
setFixedRotation({ props, uuid }: CannonMessageBody<'setFixedRotation'>): void;
setIsTrigger({ props, uuid }: CannonMessageBody<'setIsTrigger'>): void;
setLinearDamping({ props, uuid }: CannonMessageBody<'setLinearDamping'>): void;
setLinearFactor({ props, uuid }: CannonMessageBody<'setLinearFactor'>): void;
setMass({ props, uuid }: CannonMessageBody<'setMass'>): void;
setMaterial({ props, uuid }: CannonMessageBody<'setMaterial'>): void;
setPosition({ props, uuid }: CannonMessageBody<'setPosition'>): void;
setQuaternion({ props: [x, y, z, w], uuid }: CannonMessageBody<'setQuaternion'>): void;
setRaycastVehicleBrake({ props, uuid }: CannonMessageBody<'setRaycastVehicleBrake'>): void;
setRaycastVehicleSteeringValue({ props, uuid }: CannonMessageBody<'setRaycastVehicleSteeringValue'>): void;
setRotation({ props, uuid }: CannonMessageBody<'setRotation'>): void;
setSleepSpeedLimit({ props, uuid }: CannonMessageBody<'setSleepSpeedLimit'>): void;
setSleepTimeLimit({ props, uuid }: CannonMessageBody<'setSleepTimeLimit'>): void;
setSpringDamping({ props, uuid }: CannonMessageBody<'setSpringDamping'>): void;
setSpringRestLength({ props, uuid }: CannonMessageBody<'setSpringRestLength'>): void;
setSpringStiffness({ props, uuid }: CannonMessageBody<'setSpringStiffness'>): void;
setUserData({ props, uuid }: CannonMessageBody<'setUserData'>): void;
setVelocity({ props, uuid }: CannonMessageBody<'setVelocity'>): void;
sleep({ uuid }: CannonMessageBody<'sleep'>): void;
step(props: StepProps): void;
subscribe({ props: { id, target, type }, uuid }: CannonMessageBody<'subscribe'>): void;
terminate(): void;
unsubscribe({ props }: CannonMessageBody<'unsubscribe'>): void;
wakeUp({ uuid }: CannonMessageBody<'wakeUp'>): void;
private postMessage;
}