/** * RagdollSystem.ts * * Ragdoll physics system for articulated character bodies. * Creates rigid body chains with cone/hinge constraints for humanoid and quadruped skeletons. * * @module physics */ import { IVector3, IRigidBodyConfig, Constraint } from './PhysicsTypes'; export interface BoneDefinition { id: string; parentBone?: string; length: number; radius: number; mass: number; localOffset: IVector3; jointType: 'cone' | 'hinge'; jointLimits?: { swingSpan1?: number; swingSpan2?: number; twistSpan?: number; low?: number; high?: number; }; } export interface RagdollDefinition { id: string; bones: BoneDefinition[]; } export interface RagdollInstance { id: string; definition: RagdollDefinition; bodies: IRigidBodyConfig[]; constraints: Constraint[]; rootPosition: IVector3; } export declare const HUMANOID_PRESET: BoneDefinition[]; export declare const QUADRUPED_PRESET: BoneDefinition[]; export declare class RagdollSystem { private ragdolls; /** * Create a ragdoll from a definition at a given world position. */ createRagdoll(definition: RagdollDefinition, rootPosition: IVector3): RagdollInstance; /** * Create humanoid ragdoll from preset. */ createHumanoid(id: string, rootPosition: IVector3): RagdollInstance; /** * Create quadruped ragdoll from preset. */ createQuadruped(id: string, rootPosition: IVector3): RagdollInstance; /** * Get a ragdoll instance by ID. */ getRagdoll(id: string): RagdollInstance | undefined; /** * Remove a ragdoll. */ removeRagdoll(id: string): boolean; /** * Get total mass of a ragdoll. */ getTotalMass(id: string): number; } //# sourceMappingURL=RagdollSystem.d.ts.map