@rjfwhite/random-lib
Version:
Core engine for MML
95 lines • 2.83 kB
TypeScript
import { AttachmentRule, Behavior } from "./types";
import * as RAPIER from "@dimforge/rapier3d-compat";
export declare class TransformBehavior extends Behavior {
static getAttachmentRules(): AttachmentRule[];
static elementToRigidBody: Map<Element, RAPIER.RigidBody>;
static elementToCollider: Map<Element, RAPIER.Collider>;
private rigidBody;
private collider;
private isInitialized;
private hasRigidBody;
private hasCollider;
private parentRigidBody;
private mass;
private friction;
private restitution;
private linearDamping;
private angularDamping;
private bodyType;
private colliderShape;
private lockedRotations;
private width;
private height;
private depth;
private radius;
onAttach(): void;
onDetach(): void;
private shouldHaveCollider;
private findParentRigidBody;
private readPhysicsConfiguration;
private readColliderConfiguration;
private readSizeParameters;
private waitForPhysicsAndCreate;
private createPhysicsComponents;
private retryParentAttachment;
private createRigidBody;
private createCollider;
private calculateWorldTransform;
private calculateRelativeTransform;
private cleanup;
tick(): void;
onAttributeChange(attributeName: string, oldValue: string | null, newValue: string | null): void;
private updateColliderBounds;
getNearbyElementsWithClass(className: string, range?: number): Element[];
getRigidBody(): RAPIER.RigidBody | null;
getCollider(): RAPIER.Collider | null;
getParentRigidBody(): RAPIER.RigidBody | null;
hasOwnRigidBody(): boolean;
hasOwnCollider(): boolean;
applyForce(force: {
x: number;
y: number;
z: number;
}, point?: {
x: number;
y: number;
z: number;
}): void;
applyImpulse(impulse: {
x: number;
y: number;
z: number;
}, point?: {
x: number;
y: number;
z: number;
}): void;
setVelocity(velocity: {
x: number;
y: number;
z: number;
}): void;
setAngularVelocity(angularVelocity: {
x: number;
y: number;
z: number;
}): void;
setPosition(position: {
x: number;
y: number;
z: number;
}): void;
static getRigidBodyForElement(element: Element): RAPIER.RigidBody | null;
static getColliderForElement(element: Element): RAPIER.Collider | null;
static getEffectiveRigidBodyForElement(element: Element): RAPIER.RigidBody | null;
static applyImpulseToElement(element: Element, impulse: {
x: number;
y: number;
z: number;
}, point?: {
x: number;
y: number;
z: number;
}): boolean;
}
//# sourceMappingURL=TransformBehavior.d.ts.map