API Documentation for:
Show:

File:addBox2D\Dynamics\Joints\b2MotorJointDef.js

//################################################################################################//
//################################################################################################//
//                                                                                                //
//        ██   ██        ██                 ██       ██        ██   █████         ████            //
//        ███ ███        ██                 ██                 ██   ██  ██        ██              //
//        ███████ █████ █████ █████ ████    ██ █████ ██ █████ █████ ██  ██ █████  ██              //
//        ██ █ ██ ██ ██  ██   ██ ██ ██      ██ ██ ██ ██ ██ ██  ██   ██  ██ ██ ██ █████            //
//        ██   ██ ██ ██  ██   ██ ██ ██      ██ ██ ██ ██ ██ ██  ██   ██  ██ █████  ██              //
//        ██   ██ ██ ██  ██   ██ ██ ██      ██ ██ ██ ██ ██ ██  ██   ██  ██ ██     ██              //
//        ██   ██ █████  ████ █████ ██   █████ █████ ██ ██ ██  ████ █████  █████  ██              //
//                                                                                                //
//################################################################################################//
//################################################################################################//

 // CLASS CONSTRUCTOR

    /**
     * Motor joint definition.
     *
     * @class b2MotorJointDef
     * @constructor
     * @extends b2JointDef
     * @module  Joints
     */
    function b2MotorJointDef() {

        /**
         *Invoke parent class constructor function reference.
         */
        this.constructor( b2Joint.e_motorJoint );

////////////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                                //
//                  ██████                              ██   ██                                   //
//                  ██  ██                              ██                                        //
//                  ██  ██ ████ █████ █████ █████ ████ █████ ██ █████ █████                       //
//                  ██████ ██   ██ ██ ██ ██ ██ ██ ██    ██   ██ ██ ██ ██                          //
//                  ██     ██   ██ ██ ██ ██ █████ ██    ██   ██ █████ █████                       //
//                  ██     ██   ██ ██ ██ ██ ██    ██    ██   ██ ██       ██                       //
//                  ██     ██   █████ █████ █████ ██    ████ ██ █████ █████                       //
//                                    ██                                                          //
//                                    ██                                                          //
//                                                                                                //
////////////////////////////////////////////////////////////////////////////////////////////////////

     // property DECLARATIONS

        /**
         * Position of bodyB minus the position of bodyA, in bodyA's
         * frame, in meters.
         *
         * @public
         * @property  linearOffset
         * @type      {b2Vec2}
         */
        this.linearOffset = new b2Vec2;

     // property INITIALISATIONS

        /**
         * The bodyB angle minus bodyA angle in radians.
         *
         * @public
         * @property  angularOffset
         * @type      {float}
         * @default     0.0
         */
        this.angularOffset = 0.0;

        /**
         * The maximum motor force in N.
         *
         * @public
         * @property  localAxisA
         * @type      {float}
         * @default     0.0
         */
        this.maxForce = 1.0;

        /**
         * @public
         * @property  type
         * @type      {int}
         * @default   b2Joint.e_motorJoint
         */
        // @this.constructor( b2Joint.e_motorJoint ) above.

        /**
         * The maximum motor torque in N-m.
         *
         * @public
         * @property  maxTorque
         * @type      {float}
         * @default   0.0
         */
        this.maxTorque = 1.0;

        /**
         * Position correction factor in the range [0,1].
         *
         * @public
         * @property  correctionFactor
         * @type      {float}
         * @default   0.0
         */
        this.correctionFactor = 0.3;


////////////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                                //
//                  ██       ██               ██  ██                                              //
//                  ██       ██                   ██                                              //
//                  ██ █████ █████ █████ ████ ██ █████ █████ █████ █████ █████                    //
//                  ██ ██ ██ ██ ██ ██ ██ ██   ██  ██      ██ ██ ██ ██    ██ ██                    //
//                  ██ ██ ██ ██ ██ █████ ██   ██  ██   █████ ██ ██ ██    █████                    //
//                  ██ ██ ██ ██ ██ ██    ██   ██  ██   ██ ██ ██ ██ ██    ██                       //
//                  ██ ██ ██ ██ ██ █████ ██   ██  ████ █████ ██ ██ █████ █████                    //
//                                                                                                //
////////////////////////////////////////////////////////////////////////////////////////////////////

    } b2MotorJointDef.prototype = p = new b2JointDef; Box2D.b2MotorJointDef = b2MotorJointDef;

////////////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                                //
//                       ██   ██        ██   ██             ██                                    //
//                       ███ ███        ██   ██             ██                                    //
//                       ███████ █████ █████ █████ █████ █████ █████                              //
//                       ██ █ ██ ██ ██  ██   ██ ██ ██ ██ ██ ██ ██                                 //
//                       ██   ██ █████  ██   ██ ██ ██ ██ ██ ██ █████                              //
//                       ██   ██ ██     ██   ██ ██ ██ ██ ██ ██    ██                              //
//                       ██   ██ █████  ████ ██ ██ █████ █████ █████                              //
//                                                                                                //
////////////////////////////////////////////////////////////////////////////////////////////////////

 // INSTANCE METHODS

    /**
     * @public
     * @override
     * @method  initVelocityConstraints
     * @param  {b2Body} bodyA
     * @param  {b2Body} bodyB
     * @return {void}
     */
        // Implement b2Joint.initVelocityConstraints
    p.initVelocityConstraints = function ( bodyA, bodyB ) {
        this.bodyA = bodyA;
        this.bodyB = bodyB;
        this.bodyA.getLocalPoint( this.bodyB.getPosition(), this.linearOffset );
        /** @type {number} */ var angleA = this.bodyA.getAngle();
        /** @type {number} */ var angleB = this.bodyB.getAngle();
        this.angularOffset = angleB - angleA;
    };