the-world-engine
Version:
three.js based, unity like game engine for browser
55 lines (54 loc) • 1.45 kB
TypeScript
export const b2StretchingModel: any;
export const b2BendingModel: any;
export class b2RopeTuning {
stretchingModel: any;
bendingModel: any;
damping: number;
stretchStiffness: number;
stretchHertz: number;
stretchDamping: number;
bendStiffness: number;
bendHertz: number;
bendDamping: number;
isometric: boolean;
fixedEffectiveMass: boolean;
warmStart: boolean;
Copy(other: any): b2RopeTuning;
}
export class b2RopeDef {
position: b2Vec2;
vertices: any[];
count: number;
masses: any[];
gravity: b2Vec2;
tuning: b2RopeTuning;
}
export class b2Rope {
m_position: b2Vec2;
m_count: number;
m_stretchCount: number;
m_bendCount: number;
m_stretchConstraints: any[];
m_bendConstraints: any[];
m_bindPositions: any[];
m_ps: any[];
m_p0s: any[];
m_vs: any[];
m_invMasses: any[];
m_gravity: b2Vec2;
m_tuning: b2RopeTuning;
Create(def: any): void;
SetTuning(tuning: any): void;
Step(dt: any, iterations: any, position: any): void;
Reset(position: any): void;
Draw(draw: any): void;
SolveStretch_PBD(): void;
SolveStretch_XPBD(dt: any): void;
SolveBend_PBD_Angle(): void;
SolveBend_XPBD_Angle(dt: any): void;
SolveBend_PBD_Distance(): void;
SolveBend_PBD_Height(): void;
SolveBend_PBD_Triangle(): void;
ApplyBendForces(dt: any): void;
}
import { b2Vec2 } from "../common/b2_math.js";