Browse Source

Fix scaling errors with CircleShape's radius

--HG--
branch : box2d-update
Bill Meltsner 14 years ago
parent
commit
5cd2ce05fd

+ 3 - 2
src/modules/physics/box2d/CircleShape.cpp

@@ -23,6 +23,7 @@
 // Module
 #include "Body.h"
 #include "World.h"
+#include "Physics.h"
 
 #include <common/Memoizer.h>
 
@@ -46,12 +47,12 @@ namespace box2d
     
     float CircleShape::getRadius() const
     {
-        return shape->m_radius;
+        return Physics::scaleUp(shape->m_radius);
     }
 	
     void CircleShape::setRadius(float r)
     {
-        shape->m_radius = r;
+        shape->m_radius = Physics::scaleDown(r);
     }
 
 } // box2d

+ 2 - 2
src/modules/physics/box2d/Physics.cpp

@@ -63,7 +63,7 @@ namespace box2d
 	{
 		b2CircleShape *s = new b2CircleShape();
 		s->m_p = Physics::scaleDown(b2Vec2(x, y));
-		s->m_radius = radius;
+		s->m_radius = Physics::scaleDown(radius);
 		return new CircleShape(s);
 	}
 
@@ -225,7 +225,7 @@ namespace box2d
 		b2DistanceOutput o;
 		b2SimplexCache c;
 		b2Distance(&o, &c, &i);
-		lua_pushnumber(L, o.distance);
+		lua_pushnumber(L, Physics::scaleUp(o.distance));
 		lua_pushnumber(L, Physics::scaleUp(o.pointA.x));
 		lua_pushnumber(L, Physics::scaleUp(o.pointA.y));
 		lua_pushnumber(L, Physics::scaleUp(o.pointB.x));