public void Initialize(Body bodyA, Body bodyB, Vec2 anchor) { BodyA = bodyA; BodyB = bodyB; _localAnchorA = bodyA.GetLocalPoint(anchor); _localAnchorB = bodyB.GetLocalPoint(anchor); }
/// Initialize the bodies, anchors, lengths, max lengths, and ratio using the world anchors. public void Initialize(Body bodyA, Body bodyB, Vec2 groundAnchorA, Vec2 groundAnchorB, Vec2 anchorA, Vec2 anchorB, float ratio) { BodyA = bodyA; BodyB = bodyB; _groundAnchorA = groundAnchorA; _groundAnchorB = groundAnchorB; _localAnchorA = bodyA.GetLocalPoint(anchorA); _localAnchorB = bodyB.GetLocalPoint(anchorB); Vec2 d1 = anchorA - groundAnchorA; _lengthA = d1.Length(); Vec2 d2 = anchorB - groundAnchorB; _lengthB = d2.Length(); _ratio = ratio; if (!(ratio > float.Epsilon)) { throw new ArgumentException("Ratio is too small"); } float C = _lengthA + ratio * _lengthB; _maxLengthA = C - ratio * b2_minPulleyLength; _maxLengthB = (C - b2_minPulleyLength) / ratio; }
/// Initialize the bodies, anchors, and reference angle using a world /// anchor point. public void Initialize(Body body1, Body body2, Vec2 anchor) { BodyA = body1; BodyB = body2; _localAnchorA = BodyA.GetLocalPoint(anchor); _localAnchorB = BodyB.GetLocalPoint(anchor); _referenceAngle = BodyB.Angle - BodyA.Angle; }
public void Initialize(Body bodyA, Body bodyB, Vec2 anchor) { BodyA = bodyA; BodyB = bodyB; _localAnchorA = bodyA.GetLocalPoint(anchor); _localAnchorB = bodyB.GetLocalPoint(anchor); _referenceAngle = bodyB.Angle - bodyA.Angle; }
/// Initialize the bodies, anchors, and reference angle using a world /// anchor point. public void Initialize(Body body1, Body body2, Vec2 anchor) { BodyA = body1; BodyB = body2; _localAnchorA = BodyA.GetLocalPoint(anchor); _localAnchorB = BodyB.GetLocalPoint(anchor); _referenceAngle = BodyB.Angle - BodyA.Angle; }
/// Initialize the bodies, anchors, and length using the world /// anchors. public void Initialize(Body bodyA, Body bodyB, Vec2 anchorA, Vec2 anchorB) { BodyA = bodyA; BodyB = bodyB; _localAnchorA = bodyA.GetLocalPoint(anchorA); _localAnchorB = bodyB.GetLocalPoint(anchorB); Vec2 d = anchorB - anchorA; _length = d.Length(); }
/// Initialize the bodies, anchors, and length using the world /// anchors. public void Initialize(Body bodyA, Body bodyB, Vec2 anchorA, Vec2 anchorB) { BodyA = bodyA; BodyB = bodyB; _localAnchorA = bodyA.GetLocalPoint(anchorA); _localAnchorB = bodyB.GetLocalPoint(anchorB); Vec2 d = anchorB - anchorA; _length = d.Length(); }
/// Initialize the bodies, anchors, axis, and reference angle using the world /// anchor and world axis. public void Initialize(Body bodyA, Body bodyB, Vec2 anchor, Vec2 axis) { BodyA = bodyA; BodyB = bodyB; _localAnchorA = bodyA.GetLocalPoint(anchor); _localAnchorB = bodyB.GetLocalPoint(anchor); _localAxisA = bodyA.GetLocalVector(axis); }
public void Initialize(Body bodyA, Body bodyB, Vec2 anchor) { BodyA = bodyA; BodyB = bodyB; _localAnchorA = bodyA.GetLocalPoint(anchor); _localAnchorB = bodyB.GetLocalPoint(anchor); _referenceAngle = bodyB.Angle - bodyA.Angle; }
/// Initialize the bodies, anchors, lengths, max lengths, and ratio using the world anchors. public void Initialize(Body bodyA, Body bodyB, Vec2 groundAnchorA, Vec2 groundAnchorB, Vec2 anchorA, Vec2 anchorB, float ratio) { BodyA = bodyA; BodyB = bodyB; _groundAnchorA = groundAnchorA; _groundAnchorB = groundAnchorB; _localAnchorA = bodyA.GetLocalPoint(anchorA); _localAnchorB = bodyB.GetLocalPoint(anchorB); Vec2 d1 = anchorA - groundAnchorA; _lengthA = d1.Length(); Vec2 d2 = anchorB - groundAnchorB; _lengthB = d2.Length(); _ratio = ratio; if (!(ratio > float.Epsilon)) throw new ArgumentException("Ratio is too small"); float C = _lengthA + ratio * _lengthB; _maxLengthA = C - ratio * b2_minPulleyLength; _maxLengthB = (C - b2_minPulleyLength) / ratio; }