API Documentation for:
Show:

File:addBox2D\Dynamics\Joints\b2PrismaticJointDef.js


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

 // CLASS CONSTRUCTOR

    /**
     * Prismatic joint definition. This requires defining a line of
     * motion using an axis and an anchor point. The definition uses
     * local anchor points and a local axis so that the initial
     * configuration can violate the constraint slightly. The joint
     * translation is zero when the local anchor points coincide in
     * world space. Using local anchors and a local axis helps when
     * saving and loading a game.
     *
     * @class b2PrismaticJointDef
     * @constructor
     * @extends {b2JointDef}
     * @module  Joints
     */
    function b2PrismaticJointDef() {

        /**
         * Invokes parent class constructor function reference.
         */
        this.constructor( b2Joint.e_prismaticJoint );

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

     // property DECLARATIONS

        /**
         * The local anchor point relative to bodyA's origin.
         *
         * @public
         * @property  localAnchorA
         * @type      {b2Vec2}
         */
        this.localAnchorA = new b2Vec2;

        /**
         * The local anchor point relative to bodyB's origin.
         *
         * @public
         * @property  localAnchorB
         * @type      {b2Vec2}
         */
        this.localAnchorB = new b2Vec2;

        /**
         * The local translation unit axis in bodyA.
         *
         * @public
         * @property  localAxisA
         * @type      {b2Vec2}
         */
        this.localAxisA = new b2Vec2;

     // property INITIALISATIONS

        this.localAxisA.set( 1.0, 0.0 );

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

        /**
         * The constrained angle between the bodies: bodyB_angle -
         * bodyA_angle.
         *
         * @public
         * @property  referenceAngle
         * @type      {float}
         * @default   0.0
         */
        this.referenceAngle = 0.0;

        /**
         * Enable/disable the joint limit.
         *
         * @public
         * @property  enableLimit
         * @type      {boolean}
         * @default   false
         */
        this.enableLimit = false;

        /**
         * The lower translation limit, usually in meters.
         *
         * @public
         * @property  lowerTranslation
         * @type      {float}
         * @default   0.0
         */
        this.lowerTranslation = 0.0;

        /**
         * The upper translation limit, usually in meters.
         *
         * @public
         * @property  upperTranslation
         * @type      {float}
         * @default   0.0
         */
        this.upperTranslation = 0.0;

        /**
         * Enable/disable the joint motor.
         *
         * @public
         * @property  enableMotor
         * @type      {boolean}
         * @default   false
         */
        this.enableMotor = false;

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

        /**
         * The desired motor speed in radians per second.
         *
         * @public
         * @property  motorSpeed
         * @type      {float}
         * @default   0.0
         */
        this.motorSpeed = 0.0;


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

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

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

 // INSTANCE METHODS

    /**
     * @public
     * @method  initialize
     * @param   {b2Body} bodyA
     * @param   {b2Body} bodyB
     * @param   {b2Vec2} anchor
     * @param   {b2Vec2} axis
     * @return  {void}
     */
    p.initialize = function ( bodyA, bodyB, anchor, axis ) {
        this.bodyA = bodyA;
        this.bodyB = bodyB;
        this.bodyA.getLocalPoint( anchor, this.localAnchorA );
        this.bodyB.getLocalPoint( anchor, this.localAnchorB );
        this.bodyA.getLocalVector( axis, this.localAxisA );
        this.referenceAngle = this.bodyB.getAngle() - this.bodyA.getAngle();
    };