nape.constraint.PulleyJoint

type
class
extends
Constraint
PulleyJoint limiting the weighted sum of distances between 2 pairs of 4 local anchor points of Bodies.

The equation for this constraint could be written like:
jointMin <= distance(body2.localPointToWorld(anchor2), body1.localPointToWorld(anchor1))
  + ratio * distance(body4.localPointToWorld(anchor4), body3.localPointToWorld(anchor3)) <= jointMax
This joint is not designed to work when either of these pairs achieves a distance of 0, it will still work but may not be entirely ideal. *

* This constraint can be used in a full 4-body set up, or a 3-body set up or a 2-body set up permitting any arrangement as long as body1 != body2 and body3 != body4

Constructor

function new(body1:Null<nape.phys.Body>, body2:Null<nape.phys.Body>, body3:Null<nape.phys.Body>, body4:Null<nape.phys.Body>, anchor1:nape.geom.Vec2, anchor2:nape.geom.Vec2, anchor3:nape.geom.Vec2, anchor4:nape.geom.Vec2, jointMin:Float, jointMax:Float, ratio:Float = null)
+ Construct a new PulleyJoint.

Instance Properties hide inherited show inherited

var active : Bool = true

+ Whether this constraint is active or not.

var anchor1 : nape.geom.Vec2

+ Anchor point on first Body.

var anchor2 : nape.geom.Vec2

+ Anchor point on second Body.

var anchor3 : nape.geom.Vec2

+ Anchor point on third Body.

var anchor4 : nape.geom.Vec2

+ Anchor point on fourth Body.

var body1 : Null<nape.phys.Body>

+ First Body in constraint.

var body2 : Null<nape.phys.Body>

+ Second Body in constraint.

var body3 : Null<nape.phys.Body>

+ Third Body in constraint.

var body4 : Null<nape.phys.Body>

+ Fourth Body in constraint.

var breakUnderError : Bool = false

+ Whether constraint will break once maxError is reached.

var breakUnderForce : Bool = false

+ Whether constraint will break once maxForce is reached.

readonly var cbTypes : nape.callbacks.CbTypeList = [CbType.ANY_CONSTRAINT]

+ Set of CbTypes for this constraints for callbacks.

var compound : Null<nape.phys.Compound> = null

+ Compound this Constraints belong to.

var damping : Float = 1

+ Damping ratio of elastic properties of constraint.

var debugDraw : Bool = true

+ Set to disable debug drawing/

var frequency : Float = 10

+ Frequency of elastic properties of constraint.

var ignore : Bool = false

+ Whether interactions between related Bodys will be ignored.

readonly var isSleeping : Bool

+ Whether this constraint is sleeping or not.

var jointMax : Float

+ Upper bound for constraint.

var jointMin : Float

+ Lower bound for constraint.

var maxError : Float = infinity

+ The maximum amount of error this constraint is allowed to use.

var maxForce : Float = infinity

+ The maximum amount of force this constraint is allowed to use.

var ratio : Float = 1

Ratio property of constraint.

var removeOnBreak : Bool = true

+ Whether constraint will be removed when it breaks.

var space : Null<nape.space.Space> = null

+ Space this constraint is inside of.

var stiff : Bool = true

+ Whether constraint is stiff, or elastic.

readonly var userData : Dynamic<Dynamic> = {}

+ Dynamic object for user to store additional data.

Instance Methods hide inherited show inherited

function bodyImpulse(body:nape.phys.Body):nape.geom.Vec3

+ Compute impulse that was applied to the given Body.

copy():Constraint

+ Produce copy of constraint.

function impulse():nape.geom.MatMN

+ Return the constraint-space impulse applied in previous step.

inline function isSlack():Bool

+ Determine if constraint is slack.

function visitBodies(lambda:nape.phys.Body -> Void):Void

+ Apply given function to all Bodys linked to the constraint.