예제 #1
0
 public void Initialize(Body bodyA, Body bodyB, Vec2 anchor)
 {
     BodyA         = bodyA;
     BodyB         = bodyB;
     _localAnchorA = bodyA.GetLocalPoint(anchor);
     _localAnchorB = bodyB.GetLocalPoint(anchor);
 }
예제 #2
0
        /// 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;
        }
예제 #3
0
 /// 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;
 }
예제 #4
0
 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;
 }
예제 #5
0
파일: WeldJoint.cs 프로젝트: prepare/box2c
 /// 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;
 }
예제 #6
0
        /// 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();
        }
예제 #7
0
 /// 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();
 }
예제 #8
0
 /// 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);
 }
예제 #9
0
 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;
 }
예제 #10
0
        /// 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;
        }