UNPKG

planck

Version:

2D JavaScript/TypeScript physics engine for cross-platform HTML5 game development

463 lines (235 loc) 7.16 kB
# Class: MouseJoint A mouse joint is used to make a point on a body track a specified world point. This a soft constraint with a maximum force. This allows the constraint to stretch and without applying huge forces. You need to call setTarget(target) every time that mouse is moved, to track the new location of the mouse. NOTE: this joint is not documented in the manual because it was developed to be used in the testbed. If you want to learn how to use the mouse joint, look at the testbed. ## Extends - [`Joint`](/api/classes/Joint) ## Constructors ### new MouseJoint() > **new MouseJoint**(`def`): [`MouseJoint`](/api/classes/MouseJoint) #### Parameters • **def**: [`MouseJointDef`](/api/interfaces/MouseJointDef) #### Returns [`MouseJoint`](/api/classes/MouseJoint) #### Overrides [`Joint`](/api/classes/Joint).[`constructor`](/api/classes/Joint#constructors) ### new MouseJoint() > **new MouseJoint**(`def`, `bodyA`, `bodyB`, `target`?): [`MouseJoint`](/api/classes/MouseJoint) #### Parameters • **def**: [`MouseJointOpt`](/api/interfaces/MouseJointOpt) • **bodyA**: [`Body`](/api/classes/Body) • **bodyB**: [`Body`](/api/classes/Body) • **target?**: [`Vec2Value`](/api/interfaces/Vec2Value) #### Returns [`MouseJoint`](/api/classes/MouseJoint) #### Overrides [`Joint`](/api/classes/Joint).[`constructor`](/api/classes/Joint#constructors) ## Properties ### style > **style**: [`Style`](/api/interfaces/Style) = `{}` Styling for dev-tools. #### Inherited from [`Joint`](/api/classes/Joint).[`style`](/api/classes/Joint#style) *** ### TYPE > `static` **TYPE**: `"mouse-joint"` ## Methods ### getAnchorA() > **getAnchorA**(): [`Vec2`](/api/classes/Vec2) Get the anchor point on bodyA in world coordinates. #### Returns [`Vec2`](/api/classes/Vec2) #### Overrides [`Joint`](/api/classes/Joint).[`getAnchorA`](/api/classes/Joint#getanchora) *** ### getAnchorB() > **getAnchorB**(): [`Vec2`](/api/classes/Vec2) Get the anchor point on bodyB in world coordinates. #### Returns [`Vec2`](/api/classes/Vec2) #### Overrides [`Joint`](/api/classes/Joint).[`getAnchorB`](/api/classes/Joint#getanchorb) *** ### getBodyA() > **getBodyA**(): [`Body`](/api/classes/Body) Get the first body attached to this joint. #### Returns [`Body`](/api/classes/Body) #### Inherited from [`Joint`](/api/classes/Joint).[`getBodyA`](/api/classes/Joint#getbodya) *** ### getBodyB() > **getBodyB**(): [`Body`](/api/classes/Body) Get the second body attached to this joint. #### Returns [`Body`](/api/classes/Body) #### Inherited from [`Joint`](/api/classes/Joint).[`getBodyB`](/api/classes/Joint#getbodyb) *** ### getCollideConnected() > **getCollideConnected**(): `boolean` Get collide connected. Note: modifying the collide connect flag won't work correctly because the flag is only checked when fixture AABBs begin to overlap. #### Returns `boolean` #### Inherited from [`Joint`](/api/classes/Joint).[`getCollideConnected`](/api/classes/Joint#getcollideconnected) *** ### getDampingRatio() > **getDampingRatio**(): `number` Get the damping ratio (dimensionless). #### Returns `number` *** ### getFrequency() > **getFrequency**(): `number` Get the frequency in Hertz. #### Returns `number` *** ### getMaxForce() > **getMaxForce**(): `number` Get the maximum force in Newtons. #### Returns `number` *** ### getNext() > **getNext**(): [`Joint`](/api/classes/Joint) Get the next joint the world joint list. #### Returns [`Joint`](/api/classes/Joint) #### Inherited from [`Joint`](/api/classes/Joint).[`getNext`](/api/classes/Joint#getnext) *** ### getReactionForce() > **getReactionForce**(`inv_dt`): [`Vec2`](/api/classes/Vec2) Get the reaction force on bodyB at the joint anchor in Newtons. #### Parameters • **inv\_dt**: `number` #### Returns [`Vec2`](/api/classes/Vec2) #### Overrides [`Joint`](/api/classes/Joint).[`getReactionForce`](/api/classes/Joint#getreactionforce) *** ### getReactionTorque() > **getReactionTorque**(`inv_dt`): `number` Get the reaction torque on bodyB in N*m. #### Parameters • **inv\_dt**: `number` #### Returns `number` #### Overrides [`Joint`](/api/classes/Joint).[`getReactionTorque`](/api/classes/Joint#getreactiontorque) *** ### getTarget() > **getTarget**(): [`Vec2`](/api/classes/Vec2) #### Returns [`Vec2`](/api/classes/Vec2) *** ### getType() > **getType**(): `string` Get the type of the concrete joint. #### Returns `string` #### Inherited from [`Joint`](/api/classes/Joint).[`getType`](/api/classes/Joint#gettype) *** ### getUserData() > **getUserData**(): `unknown` #### Returns `unknown` #### Inherited from [`Joint`](/api/classes/Joint).[`getUserData`](/api/classes/Joint#getuserdata) *** ### initVelocityConstraints() > **initVelocityConstraints**(`step`): `void` #### Parameters • **step**: [`TimeStep`](/api/classes/TimeStep) #### Returns `void` #### Overrides [`Joint`](/api/classes/Joint).[`initVelocityConstraints`](/api/classes/Joint#initvelocityconstraints) *** ### isActive() > **isActive**(): `boolean` Short-cut function to determine if either body is inactive. #### Returns `boolean` #### Inherited from [`Joint`](/api/classes/Joint).[`isActive`](/api/classes/Joint#isactive) *** ### setDampingRatio() > **setDampingRatio**(`ratio`): `void` Set the damping ratio (dimensionless). #### Parameters • **ratio**: `number` #### Returns `void` *** ### setFrequency() > **setFrequency**(`hz`): `void` Set the frequency in Hertz. #### Parameters • **hz**: `number` #### Returns `void` *** ### setMaxForce() > **setMaxForce**(`force`): `void` Set the maximum force in Newtons. #### Parameters • **force**: `number` #### Returns `void` *** ### setTarget() > **setTarget**(`target`): `void` Use this to update the target point. #### Parameters • **target**: [`Vec2Value`](/api/interfaces/Vec2Value) #### Returns `void` *** ### setUserData() > **setUserData**(`data`): `void` #### Parameters • **data**: `unknown` #### Returns `void` #### Inherited from [`Joint`](/api/classes/Joint).[`setUserData`](/api/classes/Joint#setuserdata) *** ### shiftOrigin() > **shiftOrigin**(`newOrigin`): `void` Shift the origin for any points stored in world coordinates. #### Parameters • **newOrigin**: [`Vec2Value`](/api/interfaces/Vec2Value) #### Returns `void` #### Overrides [`Joint`](/api/classes/Joint).[`shiftOrigin`](/api/classes/Joint#shiftorigin) *** ### solvePositionConstraints() > **solvePositionConstraints**(`step`): `boolean` This returns true if the position errors are within tolerance. #### Parameters • **step**: [`TimeStep`](/api/classes/TimeStep) #### Returns `boolean` #### Overrides [`Joint`](/api/classes/Joint).[`solvePositionConstraints`](/api/classes/Joint#solvepositionconstraints) *** ### solveVelocityConstraints() > **solveVelocityConstraints**(`step`): `void` #### Parameters • **step**: [`TimeStep`](/api/classes/TimeStep) #### Returns `void` #### Overrides [`Joint`](/api/classes/Joint).[`solveVelocityConstraints`](/api/classes/Joint#solvevelocityconstraints)