Example #1
0
        internal PrismaticJoint(PrismaticJointDef def)
            : base(def)
        {
            LocalAnchorA = def.LocalAnchorA;
            LocalAnchorB = def.LocalAnchorB;
            LocalXAxisA  = def.LocalAxisA;
            LocalXAxisA.Normalize();
            LocalYAxisA    = MathUtils.Cross(1.0f, LocalXAxisA);
            ReferenceAngle = def.ReferenceAngle;

            _impulse.SetZero();
            _axialMass    = 0.0f;
            _motorImpulse = 0.0f;
            _lowerImpulse = 0.0f;
            _upperImpulse = 0.0f;

            _lowerTranslation = def.LowerTranslation;
            _upperTranslation = def.UpperTranslation;

            Debug.Assert(_lowerTranslation <= _upperTranslation);

            _maxMotorForce = def.MaxMotorForce;
            _motorSpeed    = def.MotorSpeed;
            _enableLimit   = def.EnableLimit;
            _enableMotor   = def.EnableMotor;

            _translation = 0.0f;
            _axis.SetZero();
            _perp.SetZero();
        }