1 /**
2 * Copyright (c) 2006-2012 LOVE Development Team
3 *
4 * This software is provided 'as-is', without any express or implied
5 * warranty.  In no event will the authors be held liable for any damages
6 * arising from the use of this software.
7 *
8 * Permission is granted to anyone to use this software for any purpose,
9 * including commercial applications, and to alter it and redistribute it
10 * freely, subject to the following restrictions:
11 *
12 * 1. The origin of this software must not be misrepresented; you must not
13 *    claim that you wrote the original software. If you use this software
14 *    in a product, an acknowledgment in the product documentation would be
15 *    appreciated but is not required.
16 * 2. Altered source versions must be plainly marked as such, and must not be
17 *    misrepresented as being the original software.
18 * 3. This notice may not be removed or altered from any source distribution.
19 **/
20 
21 #include "RopeJoint.h"
22 
23 // Module
24 #include "Body.h"
25 #include "World.h"
26 #include "Physics.h"
27 
28 namespace love
29 {
30 namespace physics
31 {
32 namespace box2d
33 {
RopeJoint(Body * body1,Body * body2,float x1,float y1,float x2,float y2,float maxLength,bool collideConnected)34 	RopeJoint::RopeJoint(Body * body1, Body * body2, float x1, float y1, float x2, float y2, float maxLength, bool collideConnected)
35 		: Joint(body1, body2), joint(NULL)
36 	{
37 		b2RopeJointDef def;
38 		def.bodyA = body1->body;
39 		def.bodyB = body2->body;
40 		body1->getLocalPoint(Physics::scaleDown(x1), Physics::scaleDown(y1), def.localAnchorA.x, def.localAnchorA.y);
41 		body2->getLocalPoint(Physics::scaleDown(x2), Physics::scaleDown(y2), def.localAnchorB.x, def.localAnchorB.y);
42 		def.maxLength = Physics::scaleDown(maxLength);
43 		def.collideConnected = collideConnected;
44 		joint = (b2RopeJoint*)createJoint(&def);
45 	}
46 
~RopeJoint()47 	RopeJoint::~RopeJoint()
48 	{
49 	}
50 
getMaxLength() const51 	float RopeJoint::getMaxLength() const
52 	{
53 		return Physics::scaleUp(joint->GetMaxLength());
54 	}
55 
56 
57 } // box2d
58 } // physics
59 } // love
60