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;
};