@ue-too/dynamics / World
Class: World
Defined in: world.ts:65
Main physics world managing rigid body simulation.
Remarks
The World class is the main entry point for physics simulation. It manages all rigid bodies, runs collision detection and response, enforces constraints, and provides performance optimizations like sleeping and spatial indexing.
Simulation Loop
Call world.step(deltaTime) each frame to advance the simulation. This:
- Updates sleeping states
- Detects collisions (broad and narrow phase)
- Resolves collisions with impulses
- Enforces constraints
- Updates body positions and velocities
Performance Tuning
- Choose appropriate spatial index for your use case
- Enable sleeping for better performance with many bodies
- Use collision filtering to reduce collision checks
Example
Basic setup
const world = new World(2000, 2000, 'dynamictree');
// Add bodies
const ball = new Circle({ x: 0, y: 100 }, 20, 0, 10, false);
world.addRigidBody('ball', ball);
// Simulation loop
function update(dt: number) {
world.step(dt);
}Constructors
Constructor
new World(
maxTransWidth,maxTransHeight,spatialIndexType):World
Defined in: world.ts:80
Parameters
maxTransWidth
number
maxTransHeight
number
spatialIndexType
SpatialIndexType = 'dynamictree'
Returns
World
Properties
_context
_context:
CanvasRenderingContext2D|null=null
Defined in: world.ts:78
Accessors
currentSpatialIndexType
Get Signature
get currentSpatialIndexType():
SpatialIndexType
Defined in: world.ts:273
Returns
resolveCollision
Get Signature
get resolveCollision():
boolean
Defined in: world.ts:228
Returns
boolean
Set Signature
set resolveCollision(
resolveCollision):void
Defined in: world.ts:232
Parameters
resolveCollision
boolean
Returns
void
sleepingEnabled
Get Signature
get sleepingEnabled():
boolean
Defined in: world.ts:303
Returns
boolean
Set Signature
set sleepingEnabled(
enabled):void
Defined in: world.ts:307
Parameters
enabled
boolean
Returns
void
Methods
addConstraint()
addConstraint(
constraint):void
Defined in: world.ts:256
Parameters
constraint
Returns
void
addPinJoint()
addPinJoint(
bodyA,bodyB,anchorA,anchorB):void
Defined in: world.ts:264
Parameters
bodyA
bodyB
anchorA
Point
anchorB
Point
Returns
void
addRigidBody()
addRigidBody(
ident,body):void
Defined in: world.ts:110
Parameters
ident
string
body
Returns
void
getCollisionStats()
getCollisionStats():
object
Defined in: world.ts:325
Returns
object
activePairs
activePairs:
number
frameNumber
frameNumber:
number
sleepingBodies
sleepingBodies:
number
totalBodies
totalBodies:
number
totalPairs
totalPairs:
number
getConstraints()
getConstraints():
Constraint[]
Defined in: world.ts:260
Returns
getPairManager()
getPairManager():
PairManager
Defined in: world.ts:320
Returns
getRigidBodyList()
getRigidBodyList():
RigidBody[]
Defined in: world.ts:236
Returns
getRigidBodyMap()
getRigidBodyMap():
Map<string,RigidBody>
Defined in: world.ts:244
Returns
Map<string, RigidBody>
getSpatialIndexStats()
getSpatialIndexStats():
any
Defined in: world.ts:290
Returns
any
removeRigidBody()
removeRigidBody(
ident):void
Defined in: world.ts:120
Parameters
ident
string
Returns
void
resolveCollisionPhase()
resolveCollisionPhase():
Point[]
Defined in: world.ts:173
Returns
Point[]
setMaxTransHeight()
setMaxTransHeight(
height):void
Defined in: world.ts:248
Parameters
height
number
Returns
void
setMaxTransWidth()
setMaxTransWidth(
width):void
Defined in: world.ts:252
Parameters
width
number
Returns
void
setSpatialIndexType()
setSpatialIndexType(
type):void
Defined in: world.ts:277
Parameters
type
Returns
void
step()
step(
deltaTime):void
Defined in: world.ts:142
Parameters
deltaTime
number
Returns
void