/** * Manages creation of {@link JointComponent}s. * * @category Physics * @alpha */ export class JointComponentSystem extends ComponentSystem { /** * Joints waiting for their rigid bodies to enter the simulation. * * @type {Set} * @private */ private _pending; /** * Joints with an active constraint and a finite break impulse. * * @type {Set} * @private */ private _breakable; /** * Shared static Ammo body that world-pinned joints attach to - see {@link getFixedBody}. * * @type {object|null} * @private */ private _fixedBody; id: string; ComponentType: typeof JointComponent; /** * Returns a shared static body, lazily created and never added to the dynamics world, that * world-pinned joints (entityB of null) attach to. Its transform is identity, so the frame a * joint computes against it is simply the joint's world frame. This mirrors Bullet's own * getFixedBody pattern and avoids the single-body constraint constructors, some of which do * not transform their frame to world space (notably btConeTwistConstraint). * * @returns {object} The shared static Ammo body. * @ignore */ getFixedBody(): object; initializeComponentData(component: any, data: any, properties: any): void; cloneComponent(entity: any, clone: any): import("../component.js").Component; onBeforeRemove(entity: any, component: any): void; onUpdate(dt: any): void; onPostUpdate(dt: any): void; } import { ComponentSystem } from '../system.js'; import { JointComponent } from './component.js';