File:addBox2D\Dynamics\Joints\b2DistanceJointDef.js
//################################################################################################//
//################################################################################################//
// //
// █████ ██ ██ ██ ██ ██ █████ ████ //
// ██ ██ ██ ██ ██ ██ ██ ██ //
// ██ ██ ██ █████ █████ █████ █████ █████ █████ ██ █████ ██ █████ █████ ██ ██ █████ ██ //
// ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ █████ //
// ██ ██ ██ █████ ██ █████ ██ ██ ██ █████ ██ ██ ██ ██ ██ ██ ██ ██ ██ █████ ██ //
// ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ //
// █████ ██ █████ ████ █████ ██ ██ █████ █████ █████ █████ ██ ██ ██ ████ █████ █████ ██ //
// //
//################################################################################################//
//################################################################################################//
// CLASS CONSTRUCTOR
/**
* Distance joint definition. This requires defining an anchor
* point on both bodies and the non-zero length of the distance
* joint. The definition uses local anchor points so that the
* initial configuration can violate the constraint slightly.
* This helps when saving and loading a game.
*
* Warning: Do not use a zero or short length.
*
* @class b2DistanceJointDef
* @constructor
* @extends {b2Joint}
* @module Joints
*/
function b2DistanceJointDef() {
/**
*Invoke parent class constructor function reference.
*/
this.constructor( b2Joint.e_distanceJoint );
////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// ██████ ██ ██ //
// ██ ██ ██ //
// ██ ██ ████ █████ █████ █████ ████ █████ ██ █████ █████ //
// ██████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ //
// ██ ██ ██ ██ ██ ██ █████ ██ ██ ██ █████ █████ //
// ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ //
// ██ ██ █████ █████ █████ ██ ████ ██ █████ █████ //
// ██ //
// ██ //
// //
////////////////////////////////////////////////////////////////////////////////////////////////////
// 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;
// property INITIALISATIONS
/**
* @public
* @property type
* @type {int}
* @default b2Joint.e_distanceJoint
*/
//@this.constructor() above.
/**
* The natural length between the anchor points.
*
* @public
* @property length
* @type {float}
* @default 1.0
*/
this.length = 1.0;
/**
* The mass-spring-damper frequency in Hertz. A value of 0
* disables softness.
*
* @public
* @property frequencyHz
* @type {float}
* @default 0.0
*/
this.frequencyHz = 0.0;
/**
* The damping ratio. 0 = no damping, 1 = critical damping.
*
* @public
* @property dampingRatio
* @type {float}
* @default 0.0
*/
this.dampingRatio = 0.0;
////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// ██ ██ ██ ██ //
// ██ ██ ██ //
// ██ █████ █████ █████ ████ ██ █████ █████ █████ █████ █████ //
// ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ //
// ██ ██ ██ ██ ██ █████ ██ ██ ██ █████ ██ ██ ██ █████ //
// ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ //
// ██ ██ ██ ██ ██ █████ ██ ██ ████ █████ ██ ██ █████ █████ //
// //
////////////////////////////////////////////////////////////////////////////////////////////////////
} b2DistanceJointDef.prototype = p = new b2JointDef; Box2D.b2DistanceJointDef = b2DistanceJointDef;
////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// ██ ██ ██ ██ ██ //
// ███ ███ ██ ██ ██ //
// ███████ █████ █████ █████ █████ █████ █████ //
// ██ █ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ //
// ██ ██ █████ ██ ██ ██ ██ ██ ██ ██ █████ //
// ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ //
// ██ ██ █████ ████ ██ ██ █████ █████ █████ //
// //
////////////////////////////////////////////////////////////////////////////////////////////////////
// INSTANCE METHODS
/**
* @public
* @method initialize
* @param {b2Body} bodyA
* @param {b2Body} bodyB
* @param {b2Vec2} anchor1
* @param {b2Vec2} anchor2
* @return {void}
*/
p.initialize = function ( bodyA, bodyB, anchor1, anchor2 ) {
this.bodyA = bodyA;
this.bodyB = bodyB;
this.bodyA.getLocalPoint( anchor1, this.localAnchorA );
this.bodyB.getLocalPoint( anchor2, this.localAnchorB );
this.length = b2Vec2.distance( anchor1, anchor2 );
this.frequencyHz = 0;
this.dampingRatio = 0;
};