import type { Vector3 } from '@holoscript/core'; /** * RopeSystem.ts * * Verlet rope/chain: segment links, tension, pin/attach points, * gravity, damping, and length constraints. * * @module physics */ export interface RopeNode { position: Vector3; previous: Vector3; mass: number; pinned: boolean; } export interface RopeConfig { segmentCount: number; segmentLength: number; gravity: Vector3; damping: number; iterations: number; elasticity: number; } export interface RopeAttachment { nodeIndex: number; entityId: string; offset: Vector3; } export declare class RopeSystem { private toArr3; private ropes; createRope(id: string, start: Vector3 | { x: number; y: number; z: number; }, end: Vector3 | { x: number; y: number; z: number; }, config?: Partial): void; pinNode(ropeId: string, nodeIndex: number): void; unpinNode(ropeId: string, nodeIndex: number): void; attach(ropeId: string, attachment: RopeAttachment): void; update(dt: number): void; getRopeNodes(ropeId: string): RopeNode[]; getRopeLength(ropeId: string): number; getTension(ropeId: string, nodeIndex: number): number; getRopeCount(): number; removeRope(id: string): void; } //# sourceMappingURL=RopeSystem.d.ts.map