File:addBox2D\Dynamics\Joints\b2RopeJointDef.js
//################################################################################################//
//################################################################################################//
// //
// ██████ ██ ██ ██ █████ ████ //
// ██ ██ ██ ██ ██ ██ ██ //
// ██ ██ █████ █████ █████ ██ █████ ██ █████ █████ ██ ██ █████ ██ //
// ██████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ █████ //
// ██ ██ ██ ██ ██ ██ █████ ██ ██ ██ ██ ██ ██ ██ ██ ██ █████ ██ //
// ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ //
// ██ ██ █████ █████ █████ █████ █████ ██ ██ ██ ████ █████ █████ ██ //
// ██ //
// ██ //
// //
//################################################################################################//
//################################################################################################//
// CLASS CONSTRUCTOR
/**
* Rope joint definition. This requires two body anchor points and
* a maximum lengths.
*
* Note: by default the connected objects will not collide.
* see collideConnected in b2JointDef.
*
* @class b2RopeJointDef
* @constructor
* @extends {b2JointDef}
* @module Joints
*/
function b2RopeJointDef() {
/**
* Invokes parent class constructor function reference.
*/
this.constructor( b2Joint.e_ropeJoint );
////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// ██████ ██ ██ //
// ██ ██ ██ //
// ██ ██ ████ █████ █████ █████ ████ █████ ██ █████ █████ //
// ██████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ //
// ██ ██ ██ ██ ██ ██ █████ ██ ██ ██ █████ █████ //
// ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ //
// ██ ██ █████ █████ █████ ██ ████ ██ █████ █████ //
// ██ //
// ██ //
// //
////////////////////////////////////////////////////////////////////////////////////////////////////
// property DECLARATIONS
/**
* The local anchor point relative to bodyA's origin.
*
* @public
* @property localAnchorA
* @type {b2Vec2}
* @default (-1, 0)
*/
this.localAnchorA = new b2Vec2( -1, 0 );
/**
* The local anchor point relative to bodyB's origin.
*
* @public
* @property localAnchorB
* @type {b2Vec2}
* @default (1, 0)
*/
this.localAnchorB = new b2Vec2( 1, 0 );
// property INITIALISATIONS
/**
*
* @public
* @property bodyA
* @type {b2Body|null}
* @default null
*/
this.bodyA = null;
/**
*
* @public
* @property bodyB
* @type {b2Body|null}
* @default null
*/
this.bodyB = null;
/**
*
* @public
* @property type
* @type {int}
* @default {b2RopeJoint} b2RopeJoint
*/
// @this.constructor( b2Joint.e_ropeJoint ) above.
// /**
// *
// * @public
// * @property frequencyHz
// * @type {float}
// * @default 0.0
// */
// this.frequencyHz = 0.0;
//
// /**
// *
// * @public
// * @property dampingRatio
// * @type {float}
// * @default 0.0
// */
// this.dampingRatio = 0.0;
/**
* The maximum length of the rope.
*
* Warning: this must be larger than b2Settings.b2_linearSlop or the
* joint will have no effect.
*
* @public
* @property maxLength
* @type {number}
* @default 0.0
*/
this.maxLength = 0.0;
////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// ██ ██ ██ ██ //
// ██ ██ ██ //
// ██ █████ █████ █████ ████ ██ █████ █████ █████ █████ █████ //
// ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ //
// ██ ██ ██ ██ ██ █████ ██ ██ ██ █████ ██ ██ ██ █████ //
// ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ //
// ██ ██ ██ ██ ██ █████ ██ ██ ████ █████ ██ ██ █████ █████ //
// //
////////////////////////////////////////////////////////////////////////////////////////////////////
} b2RopeJointDef.prototype = p = new b2JointDef; Box2D.b2RopeJointDef = b2RopeJointDef;
////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// ██ ██ ██ ██ ██ //
// ███ ███ ██ ██ ██ //
// ███████ █████ █████ █████ █████ █████ █████ //
// ██ █ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ //
// ██ ██ █████ ██ ██ ██ ██ ██ ██ ██ █████ //
// ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ //
// ██ ██ █████ ████ ██ ██ █████ █████ █████ //
// //
////////////////////////////////////////////////////////////////////////////////////////////////////
// INSTANCE METHODS
/**
* @public
* @method initialize
* @param {b2Body} bodyA
* @param {b2Body} bodyB
* @param {b2Vec2} anchorA
* @param {b2Vec2} anchorB
* @return {void}
*/
p.initialize = function ( bodyA, bodyB, anchorA, anchorB ) {
this.bodyA = bodyA;
this.bodyB = bodyB;
this.bodyA.getLocalPoint( anchorA, this.localAnchorA );
this.bodyB.getLocalPoint( anchorB, this.localAnchorB );
var dX = anchorB.x - anchorA.x;
var dY = anchorB.y - anchorA.y;
this.length = Math.sqrt( dX * dX + dY * dY );
};