Updates to Box2D source from SVN trunk.
authordsc <david.schoonover@gmail.com>
Thu, 5 May 2011 06:30:05 +0000 (23:30 -0700)
committerdsc <david.schoonover@gmail.com>
Thu, 5 May 2011 06:30:05 +0000 (23:30 -0700)
94 files changed:
libs/box2d/box2d-iphone.xcodeproj/project.pbxproj
libs/box2d/src/Box2D/Box2D.h
libs/box2d/src/Box2D/Collision/Shapes/b2CircleShape.cpp
libs/box2d/src/Box2D/Collision/Shapes/b2CircleShape.h
libs/box2d/src/Box2D/Collision/Shapes/b2EdgeShape.cpp [new file with mode: 0644]
libs/box2d/src/Box2D/Collision/Shapes/b2EdgeShape.h [new file with mode: 0644]
libs/box2d/src/Box2D/Collision/Shapes/b2LoopShape.cpp [new file with mode: 0644]
libs/box2d/src/Box2D/Collision/Shapes/b2LoopShape.h [new file with mode: 0644]
libs/box2d/src/Box2D/Collision/Shapes/b2PolygonShape.cpp
libs/box2d/src/Box2D/Collision/Shapes/b2PolygonShape.h
libs/box2d/src/Box2D/Collision/Shapes/b2Shape.h
libs/box2d/src/Box2D/Collision/b2BroadPhase.cpp
libs/box2d/src/Box2D/Collision/b2BroadPhase.h
libs/box2d/src/Box2D/Collision/b2CollideCircle.cpp
libs/box2d/src/Box2D/Collision/b2CollideEdge.cpp [new file with mode: 0644]
libs/box2d/src/Box2D/Collision/b2CollidePolygon.cpp
libs/box2d/src/Box2D/Collision/b2Collision.cpp
libs/box2d/src/Box2D/Collision/b2Collision.h
libs/box2d/src/Box2D/Collision/b2Distance.cpp
libs/box2d/src/Box2D/Collision/b2Distance.h
libs/box2d/src/Box2D/Collision/b2DynamicTree.cpp
libs/box2d/src/Box2D/Collision/b2DynamicTree.h
libs/box2d/src/Box2D/Collision/b2TimeOfImpact.cpp
libs/box2d/src/Box2D/Collision/b2TimeOfImpact.h
libs/box2d/src/Box2D/Common/b2BlockAllocator.cpp
libs/box2d/src/Box2D/Common/b2BlockAllocator.h
libs/box2d/src/Box2D/Common/b2Draw.cpp [copied from libs/box2d/src/Box2D/Dynamics/Contacts/b2TOISolver.h with 52% similarity]
libs/box2d/src/Box2D/Common/b2Draw.h [new file with mode: 0644]
libs/box2d/src/Box2D/Common/b2GrowableStack.h [new file with mode: 0644]
libs/box2d/src/Box2D/Common/b2Math.cpp
libs/box2d/src/Box2D/Common/b2Math.h
libs/box2d/src/Box2D/Common/b2Settings.cpp
libs/box2d/src/Box2D/Common/b2Settings.h
libs/box2d/src/Box2D/Common/b2StackAllocator.cpp
libs/box2d/src/Box2D/Common/b2StackAllocator.h
libs/box2d/src/Box2D/Common/b2Timer.cpp [new file with mode: 0644]
libs/box2d/src/Box2D/Common/b2Timer.h [copied from libs/box2d/src/Box2D/Dynamics/Contacts/b2TOISolver.h with 53% similarity]
libs/box2d/src/Box2D/Dynamics/Contacts/b2CircleContact.cpp
libs/box2d/src/Box2D/Dynamics/Contacts/b2CircleContact.h
libs/box2d/src/Box2D/Dynamics/Contacts/b2Contact.cpp
libs/box2d/src/Box2D/Dynamics/Contacts/b2Contact.h
libs/box2d/src/Box2D/Dynamics/Contacts/b2ContactSolver.cpp
libs/box2d/src/Box2D/Dynamics/Contacts/b2ContactSolver.h
libs/box2d/src/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp [new file with mode: 0644]
libs/box2d/src/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h [copied from libs/box2d/src/Box2D/Dynamics/Contacts/b2TOISolver.h with 53% similarity]
libs/box2d/src/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp [new file with mode: 0644]
libs/box2d/src/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h [copied from libs/box2d/src/Box2D/Dynamics/Contacts/b2TOISolver.h with 53% similarity]
libs/box2d/src/Box2D/Dynamics/Contacts/b2LoopAndCircleContact.cpp [new file with mode: 0644]
libs/box2d/src/Box2D/Dynamics/Contacts/b2LoopAndCircleContact.h [copied from libs/box2d/src/Box2D/Dynamics/Contacts/b2TOISolver.h with 53% similarity]
libs/box2d/src/Box2D/Dynamics/Contacts/b2LoopAndPolygonContact.cpp [new file with mode: 0644]
libs/box2d/src/Box2D/Dynamics/Contacts/b2LoopAndPolygonContact.h [moved from libs/box2d/src/Box2D/Dynamics/Contacts/b2TOISolver.h with 53% similarity]
libs/box2d/src/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cpp
libs/box2d/src/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h
libs/box2d/src/Box2D/Dynamics/Contacts/b2PolygonContact.cpp
libs/box2d/src/Box2D/Dynamics/Contacts/b2PolygonContact.h
libs/box2d/src/Box2D/Dynamics/Contacts/b2TOISolver.cpp [deleted file]
libs/box2d/src/Box2D/Dynamics/Joints/b2DistanceJoint.cpp
libs/box2d/src/Box2D/Dynamics/Joints/b2DistanceJoint.h
libs/box2d/src/Box2D/Dynamics/Joints/b2FrictionJoint.cpp
libs/box2d/src/Box2D/Dynamics/Joints/b2FrictionJoint.h
libs/box2d/src/Box2D/Dynamics/Joints/b2GearJoint.cpp
libs/box2d/src/Box2D/Dynamics/Joints/b2GearJoint.h
libs/box2d/src/Box2D/Dynamics/Joints/b2Joint.cpp
libs/box2d/src/Box2D/Dynamics/Joints/b2Joint.h
libs/box2d/src/Box2D/Dynamics/Joints/b2LineJoint.cpp [deleted file]
libs/box2d/src/Box2D/Dynamics/Joints/b2MouseJoint.cpp
libs/box2d/src/Box2D/Dynamics/Joints/b2MouseJoint.h
libs/box2d/src/Box2D/Dynamics/Joints/b2PrismaticJoint.cpp
libs/box2d/src/Box2D/Dynamics/Joints/b2PrismaticJoint.h
libs/box2d/src/Box2D/Dynamics/Joints/b2PulleyJoint.cpp
libs/box2d/src/Box2D/Dynamics/Joints/b2PulleyJoint.h
libs/box2d/src/Box2D/Dynamics/Joints/b2RevoluteJoint.cpp
libs/box2d/src/Box2D/Dynamics/Joints/b2RevoluteJoint.h
libs/box2d/src/Box2D/Dynamics/Joints/b2RopeJoint.cpp [new file with mode: 0644]
libs/box2d/src/Box2D/Dynamics/Joints/b2RopeJoint.h [new file with mode: 0644]
libs/box2d/src/Box2D/Dynamics/Joints/b2WeldJoint.cpp
libs/box2d/src/Box2D/Dynamics/Joints/b2WeldJoint.h
libs/box2d/src/Box2D/Dynamics/Joints/b2WheelJoint.cpp [new file with mode: 0644]
libs/box2d/src/Box2D/Dynamics/Joints/b2WheelJoint.h [moved from libs/box2d/src/Box2D/Dynamics/Joints/b2LineJoint.h with 54% similarity]
libs/box2d/src/Box2D/Dynamics/b2Body.cpp
libs/box2d/src/Box2D/Dynamics/b2Body.h
libs/box2d/src/Box2D/Dynamics/b2ContactManager.cpp
libs/box2d/src/Box2D/Dynamics/b2ContactManager.h
libs/box2d/src/Box2D/Dynamics/b2Fixture.cpp
libs/box2d/src/Box2D/Dynamics/b2Fixture.h
libs/box2d/src/Box2D/Dynamics/b2Island.cpp
libs/box2d/src/Box2D/Dynamics/b2Island.h
libs/box2d/src/Box2D/Dynamics/b2TimeStep.h
libs/box2d/src/Box2D/Dynamics/b2World.cpp
libs/box2d/src/Box2D/Dynamics/b2World.h
libs/box2d/src/Box2D/Dynamics/b2WorldCallbacks.cpp
libs/box2d/src/Box2D/Dynamics/b2WorldCallbacks.h
libs/box2d/src/Box2D/Rope/b2Rope.cpp [new file with mode: 0644]
libs/box2d/src/Box2D/Rope/b2Rope.h [new file with mode: 0644]

index 3eda5e3..6e1af9d 100644 (file)
@@ -16,9 +16,7 @@
                491331AD1372653600DFB46D /* iPhoneTestEntries.mm in Sources */ = {isa = PBXBuildFile; fileRef = 491331A21372653600DFB46D /* iPhoneTestEntries.mm */; };
                491331AE1372653600DFB46D /* TestEntriesViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 491331A41372653600DFB46D /* TestEntriesViewController.mm */; };
                491331AF1372653600DFB46D /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 491331A51372653600DFB46D /* Icon.png */; };
-               491331B01372653600DFB46D /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 491331A61372653600DFB46D /* Info.plist */; };
                491331B11372653600DFB46D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 491331A71372653600DFB46D /* main.m */; };
-               491331B21372653600DFB46D /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 491331A81372653600DFB46D /* MainWindow.xib */; };
                4913323813726B1F00DFB46D /* ApplyForce.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913320D13726B1F00DFB46D /* ApplyForce.h */; };
                4913323913726B1F00DFB46D /* BodyTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913320E13726B1F00DFB46D /* BodyTypes.h */; };
                4913323A13726B1F00DFB46D /* Breakable.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913320F13726B1F00DFB46D /* Breakable.h */; };
                        buildActionMask = 2147483647;
                        files = (
                                491331AF1372653600DFB46D /* Icon.png in Resources */,
-                               491331B01372653600DFB46D /* Info.plist in Resources */,
-                               491331B21372653600DFB46D /* MainWindow.xib in Resources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
index dc5701f..0414477 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-* Copyright (c) 2006-2009 Erin Catto http://www.gphysics.com\r
+* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\r
 *\r
 * This software is provided 'as-is', without any express or implied\r
 * warranty.  In no event will the authors be held liable for any damages\r
@@ -32,8 +32,12 @@ For discussion please visit http://box2d.org/forum
 // These include files constitute the main Box2D API\r
 \r
 #include <Box2D/Common/b2Settings.h>\r
+#include <Box2D/Common/b2Draw.h>\r
+#include <Box2D/Common/b2Timer.h>\r
 \r
 #include <Box2D/Collision/Shapes/b2CircleShape.h>\r
+#include <Box2D/Collision/Shapes/b2EdgeShape.h>\r
+#include <Box2D/Collision/Shapes/b2LoopShape.h>\r
 #include <Box2D/Collision/Shapes/b2PolygonShape.h>\r
 \r
 #include <Box2D/Collision/b2BroadPhase.h>\r
@@ -52,11 +56,14 @@ For discussion please visit http://box2d.org/forum
 #include <Box2D/Dynamics/Joints/b2DistanceJoint.h>\r
 #include <Box2D/Dynamics/Joints/b2FrictionJoint.h>\r
 #include <Box2D/Dynamics/Joints/b2GearJoint.h>\r
-#include <Box2D/Dynamics/Joints/b2LineJoint.h>\r
+#include <Box2D/Dynamics/Joints/b2WheelJoint.h>\r
 #include <Box2D/Dynamics/Joints/b2MouseJoint.h>\r
 #include <Box2D/Dynamics/Joints/b2PrismaticJoint.h>\r
 #include <Box2D/Dynamics/Joints/b2PulleyJoint.h>\r
 #include <Box2D/Dynamics/Joints/b2RevoluteJoint.h>\r
+#include <Box2D/Dynamics/Joints/b2RopeJoint.h>\r
 #include <Box2D/Dynamics/Joints/b2WeldJoint.h>\r
 \r
+#include <Box2D/Rope/b2Rope.h>\r
+\r
 #endif\r
index a950b0b..80dac85 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-* Copyright (c) 2006-2009 Erin Catto http://www.gphysics.com\r
+* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\r
 *\r
 * This software is provided 'as-is', without any express or implied\r
 * warranty.  In no event will the authors be held liable for any damages\r
@@ -18,6 +18,7 @@
 \r
 #include <Box2D/Collision/Shapes/b2CircleShape.h>\r
 #include <new>\r
+using namespace std;\r
 \r
 b2Shape* b2CircleShape::Clone(b2BlockAllocator* allocator) const\r
 {\r
@@ -27,6 +28,11 @@ b2Shape* b2CircleShape::Clone(b2BlockAllocator* allocator) const
        return clone;\r
 }\r
 \r
+int32 b2CircleShape::GetChildCount() const\r
+{\r
+       return 1;\r
+}\r
+\r
 bool b2CircleShape::TestPoint(const b2Transform& transform, const b2Vec2& p) const\r
 {\r
        b2Vec2 center = transform.position + b2Mul(transform.R, m_p);\r
@@ -38,8 +44,11 @@ bool b2CircleShape::TestPoint(const b2Transform& transform, const b2Vec2& p) con
 // From Section 3.1.2\r
 // x = s + a * r\r
 // norm(x) = radius\r
-bool b2CircleShape::RayCast(b2RayCastOutput* output, const b2RayCastInput& input, const b2Transform& transform) const\r
+bool b2CircleShape::RayCast(b2RayCastOutput* output, const b2RayCastInput& input,\r
+                                                       const b2Transform& transform, int32 childIndex) const\r
 {\r
+       B2_NOT_USED(childIndex);\r
+\r
        b2Vec2 position = transform.position + b2Mul(transform.R, m_p);\r
        b2Vec2 s = input.p1 - position;\r
        float32 b = b2Dot(s, s) - m_radius * m_radius;\r
@@ -72,8 +81,10 @@ bool b2CircleShape::RayCast(b2RayCastOutput* output, const b2RayCastInput& input
        return false;\r
 }\r
 \r
-void b2CircleShape::ComputeAABB(b2AABB* aabb, const b2Transform& transform) const\r
+void b2CircleShape::ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const\r
 {\r
+       B2_NOT_USED(childIndex);\r
+\r
        b2Vec2 p = transform.position + b2Mul(transform.R, m_p);\r
        aabb->lowerBound.Set(p.x - m_radius, p.y - m_radius);\r
        aabb->upperBound.Set(p.x + m_radius, p.y + m_radius);\r
index bb31da8..6c1fd54 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-* Copyright (c) 2006-2009 Erin Catto http://www.gphysics.com\r
+* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\r
 *\r
 * This software is provided 'as-is', without any express or implied\r
 * warranty.  In no event will the authors be held liable for any damages\r
@@ -30,14 +30,18 @@ public:
        /// Implement b2Shape.\r
        b2Shape* Clone(b2BlockAllocator* allocator) const;\r
 \r
+       /// @see b2Shape::GetChildCount\r
+       int32 GetChildCount() const;\r
+\r
        /// Implement b2Shape.\r
        bool TestPoint(const b2Transform& transform, const b2Vec2& p) const;\r
 \r
        /// Implement b2Shape.\r
-       bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input, const b2Transform& transform) const;\r
+       bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input,\r
+                               const b2Transform& transform, int32 childIndex) const;\r
 \r
        /// @see b2Shape::ComputeAABB\r
-       void ComputeAABB(b2AABB* aabb, const b2Transform& transform) const;\r
+       void ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const;\r
 \r
        /// @see b2Shape::ComputeMass\r
        void ComputeMass(b2MassData* massData, float32 density) const;\r
diff --git a/libs/box2d/src/Box2D/Collision/Shapes/b2EdgeShape.cpp b/libs/box2d/src/Box2D/Collision/Shapes/b2EdgeShape.cpp
new file mode 100644 (file)
index 0000000..19ca893
--- /dev/null
@@ -0,0 +1,139 @@
+/*\r
+* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org\r
+*\r
+* This software is provided 'as-is', without any express or implied\r
+* warranty.  In no event will the authors be held liable for any damages\r
+* arising from the use of this software.\r
+* Permission is granted to anyone to use this software for any purpose,\r
+* including commercial applications, and to alter it and redistribute it\r
+* freely, subject to the following restrictions:\r
+* 1. The origin of this software must not be misrepresented; you must not\r
+* claim that you wrote the original software. If you use this software\r
+* in a product, an acknowledgment in the product documentation would be\r
+* appreciated but is not required.\r
+* 2. Altered source versions must be plainly marked as such, and must not be\r
+* misrepresented as being the original software.\r
+* 3. This notice may not be removed or altered from any source distribution.\r
+*/\r
+\r
+#include <Box2D/Collision/Shapes/b2EdgeShape.h>\r
+#include <new>\r
+using namespace std;\r
+\r
+void b2EdgeShape::Set(const b2Vec2& v1, const b2Vec2& v2)\r
+{\r
+       m_vertex1 = v1;\r
+       m_vertex2 = v2;\r
+       m_hasVertex0 = false;\r
+       m_hasVertex3 = false;\r
+}\r
+\r
+b2Shape* b2EdgeShape::Clone(b2BlockAllocator* allocator) const\r
+{\r
+       void* mem = allocator->Allocate(sizeof(b2EdgeShape));\r
+       b2EdgeShape* clone = new (mem) b2EdgeShape;\r
+       *clone = *this;\r
+       return clone;\r
+}\r
+\r
+int32 b2EdgeShape::GetChildCount() const\r
+{\r
+       return 1;\r
+}\r
+\r
+bool b2EdgeShape::TestPoint(const b2Transform& xf, const b2Vec2& p) const\r
+{\r
+       B2_NOT_USED(xf);\r
+       B2_NOT_USED(p);\r
+       return false;\r
+}\r
+\r
+// p = p1 + t * d\r
+// v = v1 + s * e\r
+// p1 + t * d = v1 + s * e\r
+// s * e - t * d = p1 - v1\