Updated Matter TS defs for v0.19

This commit is contained in:
Richard Davey 2023-04-04 15:04:56 +01:00
parent b2e0f446ec
commit f483629378

310
types/matter.d.ts vendored
View file

@ -2076,6 +2076,7 @@ declare namespace MatterJS {
/** /**
* Creates a new rigid body model with a trapezoid hull. * Creates a new rigid body model with a trapezoid hull.
* The `slope` is parameterised as a fraction of `width` and must be < 1 to form a valid trapezoid.
* The options parameter is an object that specifies any properties you wish to override the defaults. * The options parameter is an object that specifies any properties you wish to override the defaults.
* See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object. * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.
* @method trapezoid * @method trapezoid
@ -2110,6 +2111,17 @@ declare namespace MatterJS {
* @return {body} * @return {body}
*/ */
static fromVertices (x: number, y: number, vertexSets: Array<Array<Vector>>, options?: IBodyDefinition, flagInternal?: boolean, removeCollinear?: number, minimumArea?: number): BodyType; static fromVertices (x: number, y: number, vertexSets: Array<Array<Vector>>, options?: IBodyDefinition, flagInternal?: boolean, removeCollinear?: number, minimumArea?: number): BodyType;
/**
* Takes an array of Body objects and flags all internal edges (coincident parts) based on the maxDistance
* value. The array is changed in-place and returned, so you can pass this function a `Body.parts` property.
*
* @method flagCoincidentParts
* @param {body[]} parts - The Body parts, or array of bodies, to flag.
* @param {number} [maxDistance=5]
* @return {body[]} The modified `parts` parameter.
*/
static flagCoincidentParts (parts: Array<BodyType>, maxDistance?: number): Array<BodyType>;
} }
class BodiesFactory { class BodiesFactory {
@ -2158,6 +2170,7 @@ declare namespace MatterJS {
/** /**
* Creates a new rigid body model with a trapezoid hull. * Creates a new rigid body model with a trapezoid hull.
* The `slope` is parameterised as a fraction of `width` and must be < 1 to form a valid trapezoid.
* The options parameter is an object that specifies any properties you wish to override the defaults. * The options parameter is an object that specifies any properties you wish to override the defaults.
* See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object. * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.
* @method trapezoid * @method trapezoid
@ -2192,6 +2205,18 @@ declare namespace MatterJS {
* @return {body} * @return {body}
*/ */
fromVertices (x: number, y: number, vertexSets: Array<Array<Vector>>, options?: IBodyDefinition, flagInternal?: boolean, removeCollinear?: number, minimumArea?: number): BodyType; fromVertices (x: number, y: number, vertexSets: Array<Array<Vector>>, options?: IBodyDefinition, flagInternal?: boolean, removeCollinear?: number, minimumArea?: number): BodyType;
/**
* Takes an array of Body objects and flags all internal edges (coincident parts) based on the maxDistance
* value. The array is changed in-place and returned, so you can pass this function a `Body.parts` property.
*
* @method flagCoincidentParts
* @param {body[]} parts - The Body parts, or array of bodies, to flag.
* @param {number} [maxDistance=5]
* @return {body[]} The modified `parts` parameter.
*/
flagCoincidentParts (parts: Array<BodyType>, maxDistance?: number): Array<BodyType>;
} }
/** /**
@ -2214,6 +2239,13 @@ declare namespace MatterJS {
*/ */
static applyForce (body: BodyType, position: Vector, force: Vector): void; static applyForce (body: BodyType, position: Vector, force: Vector): void;
/**
* Updates properties `body.velocity`, `body.speed`, `body.angularVelocity` and `body.angularSpeed` which are normalised in relation to `Body._baseDelta`.
* @method updateVelocities
* @param {body} body
*/
static updateVelocities (body: BodyType): void;
/** /**
* Creates a new rigid body model. The options parameter is an object that specifies any properties you wish to override the defaults. * Creates a new rigid body model. The options parameter is an object that specifies any properties you wish to override the defaults.
* All properties have default values, and many are pre-calculated automatically based on other properties. * All properties have default values, and many are pre-calculated automatically based on other properties.
@ -2229,8 +2261,9 @@ declare namespace MatterJS {
* @method rotate * @method rotate
* @param {body} body * @param {body} body
* @param {number} rotation * @param {number} rotation
* @param {boolean} [updateVelocity]
*/ */
static rotate (body: BodyType, rotation: number): void; static rotate (body: BodyType, rotation: number, updateVelocity?: boolean): void;
/** /**
* Returns the next unique group index for which bodies will collide. * Returns the next unique group index for which bodies will collide.
@ -2329,16 +2362,18 @@ declare namespace MatterJS {
* @method setPosition * @method setPosition
* @param {body} body * @param {body} body
* @param {vector} position * @param {vector} position
* @param {boolean} updateVelocity
*/ */
static setPosition (body: BodyType, position: Vector): void; static setPosition (body: BodyType, position: Vector, updateVelocity: boolean): void;
/** /**
* Sets the angle of the body instantly. Angular velocity, position, force etc. are unchanged. * Sets the angle of the body instantly. Angular velocity, position, force etc. are unchanged.
* @method setAngle * @method setAngle
* @param {body} body * @param {body} body
* @param {number} angle * @param {number} angle
* @param {boolean} updateVelocity
*/ */
static setAngle (body: BodyType, angle: number): void; static setAngle (body: BodyType, angle: number, updateVelocity: boolean): void;
/** /**
* Sets the linear velocity of the body instantly. Position, angle, force etc. are unchanged. See also `Body.applyForce`. * Sets the linear velocity of the body instantly. Position, angle, force etc. are unchanged. See also `Body.applyForce`.
@ -2379,19 +2414,59 @@ declare namespace MatterJS {
* @method translate * @method translate
* @param {body} body * @param {body} body
* @param {vector} translation * @param {vector} translation
* @param {boolean} [updateVelocity]
*/ */
static translate (body: BodyType, translation: Vector): void; static translate (body: BodyType, translation: Vector, updateVelocity?: boolean): void;
/** /**
* Performs a simulation step for the given `body`, including updating position and angle using Verlet integration. * Performs a simulation step for the given `body`, including updating position and angle using Verlet integration.
* @method update * @method update
* @param {body} body * @param {body} body
* @param {number} deltaTime * @param {number} deltaTime
* @param {number} timeScale
* @param {number} correction
*/ */
static update (body: BodyType, deltaTime: number, timeScale: number, correction: number): void; static update (body: BodyType, deltaTime: number): void;
/**
* Gets the current linear speed of the body.
* Equivalent to the magnitude of its velocity.
* @method getSpeed
* @param {body} body
* @return {number} speed
*/
static getSpeed (body: BodyType): number;
/**
* Sets the current linear speed of the body.
* Direction is maintained. Affects body velocity.
* @method setSpeed
* @param {body} body
* @param {number} speed
*/
static setSpeed (body: BodyType, speed: number): void;
/**
* Gets the current rotational velocity of the body.
* @method getAngularVelocity
* @param {body} body
* @return {number} angular velocity
*/
static getAngularVelocity (body: BodyType): number;
/**
* Gets the current rotational velocity of the body.
* @method getAngularSpeed
* @param {body} body
* @return {number} angular velocity
*/
static getAngularSpeed (body: BodyType): number;
/**
* Sets the angular velocity of the body instantly. Position, angle, force etc. are unchanged. See also `Body.applyForce`.
* @method setAngularSpeed
* @param {body} body
* @param {number} velocity
*/
static setAngularSpeed (body: BodyType, velocity: number): void;
} }
class BodyFactory { class BodyFactory {
@ -2405,6 +2480,13 @@ declare namespace MatterJS {
*/ */
applyForce (body: BodyType, position: Vector, force: Vector): void; applyForce (body: BodyType, position: Vector, force: Vector): void;
/**
* Updates properties `body.velocity`, `body.speed`, `body.angularVelocity` and `body.angularSpeed` which are normalised in relation to `Body._baseDelta`.
* @method updateVelocities
* @param {body} body
*/
updateVelocities (body: BodyType): void;
/** /**
* Creates a new rigid body model. The options parameter is an object that specifies any properties you wish to override the defaults. * Creates a new rigid body model. The options parameter is an object that specifies any properties you wish to override the defaults.
* All properties have default values, and many are pre-calculated automatically based on other properties. * All properties have default values, and many are pre-calculated automatically based on other properties.
@ -2420,8 +2502,9 @@ declare namespace MatterJS {
* @method rotate * @method rotate
* @param {body} body * @param {body} body
* @param {number} rotation * @param {number} rotation
* @param {boolean} [updateVelocity]
*/ */
rotate (body: BodyType, rotation: number): void; rotate (body: BodyType, rotation: number, updateVelocity?: boolean): void;
/** /**
* Returns the next unique group index for which bodies will collide. * Returns the next unique group index for which bodies will collide.
@ -2520,16 +2603,18 @@ declare namespace MatterJS {
* @method setPosition * @method setPosition
* @param {body} body * @param {body} body
* @param {vector} position * @param {vector} position
* @param {boolean} updateVelocity
*/ */
setPosition (body: BodyType, position: Vector): void; setPosition (body: BodyType, position: Vector, updateVelocity: boolean): void;
/** /**
* Sets the angle of the body instantly. Angular velocity, position, force etc. are unchanged. * Sets the angle of the body instantly. Angular velocity, position, force etc. are unchanged.
* @method setAngle * @method setAngle
* @param {body} body * @param {body} body
* @param {number} angle * @param {number} angle
* @param {boolean} updateVelocity
*/ */
setAngle (body: BodyType, angle: number): void; setAngle (body: BodyType, angle: number, updateVelocity: boolean): void;
/** /**
* Sets the linear velocity of the body instantly. Position, angle, force etc. are unchanged. See also `Body.applyForce`. * Sets the linear velocity of the body instantly. Position, angle, force etc. are unchanged. See also `Body.applyForce`.
@ -2539,6 +2624,14 @@ declare namespace MatterJS {
*/ */
setVelocity (body: BodyType, velocity: Vector): void; setVelocity (body: BodyType, velocity: Vector): void;
/**
* Gets the current linear velocity of the body.
* @method setVelocity
* @param {body} body
* @return {vector} velocity
*/
getVelocity (body: BodyType): Vector;
/** /**
* Sets the angular velocity of the body instantly. Position, angle, force etc. are unchanged. See also `Body.applyForce`. * Sets the angular velocity of the body instantly. Position, angle, force etc. are unchanged. See also `Body.applyForce`.
* @method setAngularVelocity * @method setAngularVelocity
@ -2570,19 +2663,59 @@ declare namespace MatterJS {
* @method translate * @method translate
* @param {body} body * @param {body} body
* @param {vector} translation * @param {vector} translation
* @param {boolean} [updateVelocity]
*/ */
translate (body: BodyType, translation: Vector): void; translate (body: BodyType, translation: Vector, updateVelocity?: boolean): void;
/** /**
* Performs a simulation step for the given `body`, including updating position and angle using Verlet integration. * Performs a simulation step for the given `body`, including updating position and angle using Verlet integration.
* @method update * @method update
* @param {body} body * @param {body} body
* @param {number} deltaTime * @param {number} deltaTime
* @param {number} timeScale
* @param {number} correction
*/ */
update (body: BodyType, deltaTime: number, timeScale: number, correction: number): void; update (body: BodyType, deltaTime: number): void;
/**
* Gets the current linear speed of the body.
* Equivalent to the magnitude of its velocity.
* @method getSpeed
* @param {body} body
* @return {number} speed
*/
getSpeed (body: BodyType): number;
/**
* Sets the current linear speed of the body.
* Direction is maintained. Affects body velocity.
* @method setSpeed
* @param {body} body
* @param {number} speed
*/
setSpeed (body: BodyType, speed: number): void;
/**
* Gets the current rotational velocity of the body.
* @method getAngularVelocity
* @param {body} body
* @return {number} angular velocity
*/
getAngularVelocity (body: BodyType): number;
/**
* Gets the current rotational velocity of the body.
* @method getAngularSpeed
* @param {body} body
* @return {number} angular velocity
*/
getAngularSpeed (body: BodyType): number;
/**
* Sets the angular velocity of the body instantly. Position, angle, force etc. are unchanged. See also `Body.applyForce`.
* @method setAngularSpeed
* @param {body} body
* @param {number} velocity
*/
setAngularSpeed (body: BodyType, velocity: number): void;
} }
/** /**
@ -3003,14 +3136,14 @@ declare namespace MatterJS {
/** /**
* Creates a composite with simple car setup of bodies and constraints. * Creates a composite with simple car setup of bodies and constraints.
* @method car * @method car
* @param {number} xx * @param {number} x
* @param {number} yy * @param {number} y
* @param {number} width * @param {number} width
* @param {number} height * @param {number} height
* @param {number} wheelSize * @param {number} wheelSize
* @return {composite} A new composite car body * @return {composite} A new composite car body
*/ */
static car (xx: number, yy: number, width: number, height: number, wheelSize: number): CompositeType; static car (x: number, y: number, width: number, height: number, wheelSize: number): CompositeType;
/** /**
* Chains all bodies in the given composite together using constraints. * Chains all bodies in the given composite together using constraints.
@ -3040,21 +3173,21 @@ declare namespace MatterJS {
/** /**
* Creates a composite with a Newton's Cradle setup of bodies and constraints. * Creates a composite with a Newton's Cradle setup of bodies and constraints.
* @method newtonsCradle * @method newtonsCradle
* @param {number} xx * @param {number} x
* @param {number} yy * @param {number} y
* @param {number} number * @param {number} number
* @param {number} size * @param {number} size
* @param {number} length * @param {number} length
* @return {composite} A new composite newtonsCradle body * @return {composite} A new composite newtonsCradle body
*/ */
static newtonsCradle (xx: number, yy: number, number: number, size: number, length: number): CompositeType; static newtonsCradle (x: number, y: number, number: number, size: number, length: number): CompositeType;
/** /**
* Create a new composite containing bodies created in the callback in a pyramid arrangement. * Create a new composite containing bodies created in the callback in a pyramid arrangement.
* This function uses the body's bounds to prevent overlaps. * This function uses the body's bounds to prevent overlaps.
* @method pyramid * @method pyramid
* @param {number} xx * @param {number} x
* @param {number} yy * @param {number} y
* @param {number} columns * @param {number} columns
* @param {number} rows * @param {number} rows
* @param {number} columnGap * @param {number} columnGap
@ -3062,13 +3195,13 @@ declare namespace MatterJS {
* @param {function} callback * @param {function} callback
* @return {composite} A new composite containing objects created in the callback * @return {composite} A new composite containing objects created in the callback
*/ */
static pyramid (xx: number, yy: number, columns: number, rows: number, columnGap: number, rowGap: number, callback: Function): CompositeType; static pyramid (x: number, y: number, columns: number, rows: number, columnGap: number, rowGap: number, callback: Function): CompositeType;
/** /**
* Creates a simple soft body like object. * Creates a simple soft body like object.
* @method softBody * @method softBody
* @param {number} xx * @param {number} x
* @param {number} yy * @param {number} y
* @param {number} columns * @param {number} columns
* @param {number} rows * @param {number} rows
* @param {number} columnGap * @param {number} columnGap
@ -3079,14 +3212,14 @@ declare namespace MatterJS {
* @param {} constraintOptions * @param {} constraintOptions
* @return {composite} A new composite softBody * @return {composite} A new composite softBody
*/ */
static softBody (xx: number, yy: number, columns: number, rows: number, columnGap: number, rowGap: number, crossBrace: boolean, particleRadius: number, particleOptions: any, constraintOptions: any): CompositeType; static softBody (x: number, y: number, columns: number, rows: number, columnGap: number, rowGap: number, crossBrace: boolean, particleRadius: number, particleOptions: any, constraintOptions: any): CompositeType;
/** /**
* Create a new composite containing bodies created in the callback in a grid arrangement. * Create a new composite containing bodies created in the callback in a grid arrangement.
* This function uses the body's bounds to prevent overlaps. * This function uses the body's bounds to prevent overlaps.
* @method stack * @method stack
* @param {number} xx * @param {number} x Starting position in X.
* @param {number} yy * @param {number} y Starting position in Y.
* @param {number} columns * @param {number} columns
* @param {number} rows * @param {number} rows
* @param {number} columnGap * @param {number} columnGap
@ -3094,7 +3227,7 @@ declare namespace MatterJS {
* @param {function} callback * @param {function} callback
* @return {composite} A new composite containing objects created in the callback * @return {composite} A new composite containing objects created in the callback
*/ */
static stack (xx: number, yy: number, columns: number, rows: number, columnGap: number, rowGap: number, callback: Function): CompositeType; static stack (x: number, y: number, columns: number, rows: number, columnGap: number, rowGap: number, callback: Function): CompositeType;
} }
@ -3103,14 +3236,14 @@ declare namespace MatterJS {
/** /**
* Creates a composite with simple car setup of bodies and constraints. * Creates a composite with simple car setup of bodies and constraints.
* @method car * @method car
* @param {number} xx * @param {number} x
* @param {number} yy * @param {number} y
* @param {number} width * @param {number} width
* @param {number} height * @param {number} height
* @param {number} wheelSize * @param {number} wheelSize
* @return {composite} A new composite car body * @return {composite} A new composite car body
*/ */
car (xx: number, yy: number, width: number, height: number, wheelSize: number): CompositeType; car (x: number, y: number, width: number, height: number, wheelSize: number): CompositeType;
/** /**
* Chains all bodies in the given composite together using constraints. * Chains all bodies in the given composite together using constraints.
@ -3140,21 +3273,21 @@ declare namespace MatterJS {
/** /**
* Creates a composite with a Newton's Cradle setup of bodies and constraints. * Creates a composite with a Newton's Cradle setup of bodies and constraints.
* @method newtonsCradle * @method newtonsCradle
* @param {number} xx * @param {number} x
* @param {number} yy * @param {number} y
* @param {number} number * @param {number} number
* @param {number} size * @param {number} size
* @param {number} length * @param {number} length
* @return {composite} A new composite newtonsCradle body * @return {composite} A new composite newtonsCradle body
*/ */
newtonsCradle (xx: number, yy: number, number: number, size: number, length: number): CompositeType; newtonsCradle (x: number, y: number, number: number, size: number, length: number): CompositeType;
/** /**
* Create a new composite containing bodies created in the callback in a pyramid arrangement. * Create a new composite containing bodies created in the callback in a pyramid arrangement.
* This function uses the body's bounds to prevent overlaps. * This function uses the body's bounds to prevent overlaps.
* @method pyramid * @method pyramid
* @param {number} xx * @param {number} x
* @param {number} yy * @param {number} y
* @param {number} columns * @param {number} columns
* @param {number} rows * @param {number} rows
* @param {number} columnGap * @param {number} columnGap
@ -3162,13 +3295,13 @@ declare namespace MatterJS {
* @param {function} callback * @param {function} callback
* @return {composite} A new composite containing objects created in the callback * @return {composite} A new composite containing objects created in the callback
*/ */
pyramid (xx: number, yy: number, columns: number, rows: number, columnGap: number, rowGap: number, callback: Function): CompositeType; pyramid (x: number, y: number, columns: number, rows: number, columnGap: number, rowGap: number, callback: Function): CompositeType;
/** /**
* Creates a simple soft body like object. * Creates a simple soft body like object.
* @method softBody * @method softBody
* @param {number} xx * @param {number} x
* @param {number} yy * @param {number} y
* @param {number} columns * @param {number} columns
* @param {number} rows * @param {number} rows
* @param {number} columnGap * @param {number} columnGap
@ -3179,14 +3312,14 @@ declare namespace MatterJS {
* @param {} constraintOptions * @param {} constraintOptions
* @return {composite} A new composite softBody * @return {composite} A new composite softBody
*/ */
softBody (xx: number, yy: number, columns: number, rows: number, columnGap: number, rowGap: number, crossBrace: boolean, particleRadius: number, particleOptions: any, constraintOptions: any): CompositeType; softBody (x: number, y: number, columns: number, rows: number, columnGap: number, rowGap: number, crossBrace: boolean, particleRadius: number, particleOptions: any, constraintOptions: any): CompositeType;
/** /**
* Create a new composite containing bodies created in the callback in a grid arrangement. * Create a new composite containing bodies created in the callback in a grid arrangement.
* This function uses the body's bounds to prevent overlaps. * This function uses the body's bounds to prevent overlaps.
* @method stack * @method stack
* @param {number} xx * @param {number} x
* @param {number} yy * @param {number} y
* @param {number} columns * @param {number} columns
* @param {number} rows * @param {number} rows
* @param {number} columnGap * @param {number} columnGap
@ -3194,7 +3327,7 @@ declare namespace MatterJS {
* @param {function} callback * @param {function} callback
* @return {composite} A new composite containing objects created in the callback * @return {composite} A new composite containing objects created in the callback
*/ */
stack (xx: number, yy: number, columns: number, rows: number, columnGap: number, rowGap: number, callback: Function): CompositeType; stack (x: number, y: number, columns: number, rows: number, columnGap: number, rowGap: number, callback: Function): CompositeType;
} }
@ -3219,6 +3352,15 @@ declare namespace MatterJS {
*/ */
static create (options: IConstraintDefinition): ConstraintType; static create (options: IConstraintDefinition): ConstraintType;
/**
* Returns the current length of the constraint.
* This is the distance between both of the constraint's end points.
* See `constraint.length` for the target rest length.
* @method currentLength
* @param {constraint} ConstraintType
* @return {number} the current length
*/
static currentLength (constraint: ConstraintType): number;
} }
class ConstraintFactory { class ConstraintFactory {
@ -3233,6 +3375,15 @@ declare namespace MatterJS {
*/ */
create (options: IConstraintDefinition): ConstraintType; create (options: IConstraintDefinition): ConstraintType;
/**
* Returns the current length of the constraint.
* This is the distance between both of the constraint's end points.
* See `constraint.length` for the target rest length.
* @method currentLength
* @param {constraint} ConstraintType
* @return {number} the current length
*/
currentLength (constraint: ConstraintType): number;
} }
/** /**
@ -3286,20 +3437,13 @@ declare namespace MatterJS {
/** /**
* Moves the simulation forward in time by `delta` ms. * Moves the simulation forward in time by `delta` ms.
* The `correction` argument is an optional `Number` that specifies the time correction factor to apply to the update.
* This can help improve the accuracy of the simulation in cases where `delta` is changing between updates.
* The value of `correction` is defined as `delta / lastDelta`, i.e. the percentage change of `delta` over the last step.
* Therefore the value is always `1` (no correction) when `delta` constant (or when no correction is desired, which is the default).
* See the paper on <a href="http://lonesock.net/article/verlet.html">Time Corrected Verlet</a> for more information.
*
* Triggers `beforeUpdate` and `afterUpdate` events. * Triggers `beforeUpdate` and `afterUpdate` events.
* Triggers `collisionStart`, `collisionActive` and `collisionEnd` events. * Triggers `collisionStart`, `collisionActive` and `collisionEnd` events.
* @method update * @method update
* @param {engine} engine * @param {engine} engine
* @param {number} [delta=16.666] * @param {number} [delta=16.666]
* @param {number} [correction=1]
*/ */
static update (engine: Engine, delta?: number, correction?: number): Engine; static update (engine: Engine, delta?: number): Engine;
/** /**
* An alias for `Runner.run`, see `Matter.Runner` for more information. * An alias for `Runner.run`, see `Matter.Runner` for more information.
@ -3690,10 +3834,10 @@ declare namespace MatterJS {
* Find a solution for pair positions. * Find a solution for pair positions.
* @method solvePosition * @method solvePosition
* @param {pair[]} pairs * @param {pair[]} pairs
* @param {body[]} bodies * @param {number} delta
* @param {number} timeScale * @param {number} [damping=1]
*/ */
static solvePosition (pairs: IPair[], bodies: BodyType[], timeScale: number): void; static solvePosition (pairs: IPair[], delta: number, damping?: number): void;
/** /**
* Apply position resolution. * Apply position resolution.
@ -3713,9 +3857,9 @@ declare namespace MatterJS {
* Find a solution for pair velocities. * Find a solution for pair velocities.
* @method solveVelocity * @method solveVelocity
* @param {pair[]} pairs * @param {pair[]} pairs
* @param {number} timeScale * @param {number} delta
*/ */
static solveVelocity (pairs: IPair[], timeScale: number): void; static solveVelocity (pairs: IPair[], delta: number): void;
} }
@ -3732,10 +3876,10 @@ declare namespace MatterJS {
* Find a solution for pair positions. * Find a solution for pair positions.
* @method solvePosition * @method solvePosition
* @param {pair[]} pairs * @param {pair[]} pairs
* @param {body[]} bodies * @param {number} delta
* @param {number} timeScale * @param {number} [damping=1]
*/ */
solvePosition (pairs: IPair[], bodies: BodyType[], timeScale: number): void; solvePosition (pairs: IPair[], delta: number, damping?: number): void;
/** /**
* Apply position resolution. * Apply position resolution.
@ -3755,9 +3899,9 @@ declare namespace MatterJS {
* Find a solution for pair velocities. * Find a solution for pair velocities.
* @method solveVelocity * @method solveVelocity
* @param {pair[]} pairs * @param {pair[]} pairs
* @param {number} timeScale * @param {number} delta
*/ */
solveVelocity (pairs: IPair[], timeScale: number): void; solveVelocity (pairs: IPair[], delta: number): void;
} }
@ -3972,14 +4116,56 @@ declare namespace MatterJS {
*/ */
class Sleeping { class Sleeping {
/**
* Set a body as sleeping or awake.
* @method set
* @param {body} body
* @param {boolean} isSleeping
*/
static set (body: BodyType, isSleeping: boolean): void; static set (body: BodyType, isSleeping: boolean): void;
/**
* Puts bodies to sleep or wakes them up depending on their motion.
* @method update
* @param {body[]} bodies
* @param {number} delta
*/
static update (bodies: Array<BodyType>, delta: number): void;
/**
* Given a set of colliding pairs, wakes the sleeping bodies involved.
* @method afterCollisions
* @param {pair[]} pairs
*/
static afterCollisions (pairs: Array<IPair>): void;
} }
class SleepingFactory { class SleepingFactory {
/**
* Set a body as sleeping or awake.
* @method set
* @param {body} body
* @param {boolean} isSleeping
*/
set (body: BodyType, isSleeping: boolean): void; set (body: BodyType, isSleeping: boolean): void;
/**
* Puts bodies to sleep or wakes them up depending on their motion.
* @method update
* @param {body[]} bodies
* @param {number} delta
*/
update (bodies: Array<BodyType>, delta: number): void;
/**
* Given a set of colliding pairs, wakes the sleeping bodies involved.
* @method afterCollisions
* @param {pair[]} pairs
*/
afterCollisions (pairs: Array<IPair>): void;
} }
/** /**