From 7195dae657073b0f12205fb40b292b319a28593b Mon Sep 17 00:00:00 2001 From: dsc Date: Wed, 4 May 2011 23:46:43 -0700 Subject: [PATCH] Rolls back update to Box2D SVN trunk. --- libs/box2d/box2d-ios.xcodeproj/project.pbxproj | 616 ++++++++-------- libs/box2d/box2d-iphone.xcodeproj/project.pbxproj | 32 - libs/box2d/iPhone/Classes/Box2DView.mm | 6 +- libs/box2d/iPhone/Classes/GLES-Render.h | 2 +- .../iPhone/Classes/TestEntriesViewController.mm | 2 +- libs/box2d/iPhone/Classes/iPhoneTest.h | 42 +- libs/box2d/iPhone/Classes/iPhoneTest.mm | 200 +++--- libs/box2d/iPhone/Classes/iPhoneTestEntries.mm | 203 +++--- libs/box2d/src/Box2D/Box2D.h | 11 +- .../src/Box2D/Collision/Shapes/b2CircleShape.cpp | 17 +- .../src/Box2D/Collision/Shapes/b2CircleShape.h | 10 +- .../src/Box2D/Collision/Shapes/b2EdgeShape.cpp | 139 ---- .../box2d/src/Box2D/Collision/Shapes/b2EdgeShape.h | 70 -- .../src/Box2D/Collision/Shapes/b2LoopShape.cpp | 130 ---- .../box2d/src/Box2D/Collision/Shapes/b2LoopShape.h | 96 --- .../src/Box2D/Collision/Shapes/b2PolygonShape.cpp | 214 ++++-- .../src/Box2D/Collision/Shapes/b2PolygonShape.h | 56 ++- libs/box2d/src/Box2D/Collision/Shapes/b2Shape.h | 24 +- libs/box2d/src/Box2D/Collision/b2BroadPhase.cpp | 8 +- libs/box2d/src/Box2D/Collision/b2BroadPhase.h | 33 +- libs/box2d/src/Box2D/Collision/b2CollideCircle.cpp | 2 +- libs/box2d/src/Box2D/Collision/b2CollideEdge.cpp | 673 ----------------- .../box2d/src/Box2D/Collision/b2CollidePolygon.cpp | 37 +- libs/box2d/src/Box2D/Collision/b2Collision.cpp | 27 +- libs/box2d/src/Box2D/Collision/b2Collision.h | 72 +-- libs/box2d/src/Box2D/Collision/b2Distance.cpp | 36 +- libs/box2d/src/Box2D/Collision/b2Distance.h | 6 +- libs/box2d/src/Box2D/Collision/b2DynamicTree.cpp | 782 +++----------------- libs/box2d/src/Box2D/Collision/b2DynamicTree.h | 281 ++------ libs/box2d/src/Box2D/Collision/b2TimeOfImpact.cpp | 14 +- libs/box2d/src/Box2D/Collision/b2TimeOfImpact.h | 3 +- libs/box2d/src/Box2D/Common/b2BlockAllocator.cpp | 18 +- libs/box2d/src/Box2D/Common/b2BlockAllocator.h | 13 +- libs/box2d/src/Box2D/Common/b2Draw.cpp | 44 -- libs/box2d/src/Box2D/Common/b2Draw.h | 81 -- libs/box2d/src/Box2D/Common/b2GrowableStack.h | 85 --- libs/box2d/src/Box2D/Common/b2Math.cpp | 2 +- libs/box2d/src/Box2D/Common/b2Math.h | 59 +- libs/box2d/src/Box2D/Common/b2Settings.cpp | 4 +- libs/box2d/src/Box2D/Common/b2Settings.h | 22 +- libs/box2d/src/Box2D/Common/b2StackAllocator.cpp | 2 +- libs/box2d/src/Box2D/Common/b2StackAllocator.h | 2 +- libs/box2d/src/Box2D/Common/b2Timer.cpp | 76 -- libs/box2d/src/Box2D/Common/b2Timer.h | 40 - .../Box2D/Dynamics/Contacts/b2CircleContact.cpp | 7 +- .../src/Box2D/Dynamics/Contacts/b2CircleContact.h | 5 +- .../src/Box2D/Dynamics/Contacts/b2Contact.cpp | 26 +- libs/box2d/src/Box2D/Dynamics/Contacts/b2Contact.h | 105 +--- .../Box2D/Dynamics/Contacts/b2ContactSolver.cpp | 191 +---- .../src/Box2D/Dynamics/Contacts/b2ContactSolver.h | 24 +- .../Dynamics/Contacts/b2EdgeAndCircleContact.cpp | 50 -- .../Dynamics/Contacts/b2EdgeAndCircleContact.h | 39 - .../Dynamics/Contacts/b2EdgeAndPolygonContact.cpp | 50 -- .../Dynamics/Contacts/b2EdgeAndPolygonContact.h | 39 - .../Dynamics/Contacts/b2LoopAndCircleContact.cpp | 54 -- .../Dynamics/Contacts/b2LoopAndCircleContact.h | 39 - .../Dynamics/Contacts/b2LoopAndPolygonContact.cpp | 54 -- .../Dynamics/Contacts/b2LoopAndPolygonContact.h | 39 - .../Contacts/b2PolygonAndCircleContact.cpp | 10 +- .../Dynamics/Contacts/b2PolygonAndCircleContact.h | 4 +- .../Box2D/Dynamics/Contacts/b2PolygonContact.cpp | 7 +- .../src/Box2D/Dynamics/Contacts/b2PolygonContact.h | 5 +- .../src/Box2D/Dynamics/Contacts/b2TOISolver.cpp | 231 ++++++ .../src/Box2D/Dynamics/Contacts/b2TOISolver.h | 51 ++ .../src/Box2D/Dynamics/Joints/b2DistanceJoint.cpp | 3 +- .../src/Box2D/Dynamics/Joints/b2DistanceJoint.h | 7 +- .../src/Box2D/Dynamics/Joints/b2FrictionJoint.cpp | 2 +- .../src/Box2D/Dynamics/Joints/b2FrictionJoint.h | 2 +- .../src/Box2D/Dynamics/Joints/b2GearJoint.cpp | 2 +- libs/box2d/src/Box2D/Dynamics/Joints/b2GearJoint.h | 2 +- libs/box2d/src/Box2D/Dynamics/Joints/b2Joint.cpp | 26 +- libs/box2d/src/Box2D/Dynamics/Joints/b2Joint.h | 22 +- .../src/Box2D/Dynamics/Joints/b2LineJoint.cpp | 591 +++++++++++++++ libs/box2d/src/Box2D/Dynamics/Joints/b2LineJoint.h | 170 +++++ .../src/Box2D/Dynamics/Joints/b2MouseJoint.cpp | 2 +- .../box2d/src/Box2D/Dynamics/Joints/b2MouseJoint.h | 2 +- .../src/Box2D/Dynamics/Joints/b2PrismaticJoint.cpp | 42 +- .../src/Box2D/Dynamics/Joints/b2PrismaticJoint.h | 6 +- .../src/Box2D/Dynamics/Joints/b2PulleyJoint.cpp | 260 +++++-- .../src/Box2D/Dynamics/Joints/b2PulleyJoint.h | 30 +- .../src/Box2D/Dynamics/Joints/b2RevoluteJoint.cpp | 43 +- .../src/Box2D/Dynamics/Joints/b2RevoluteJoint.h | 18 +- .../src/Box2D/Dynamics/Joints/b2RopeJoint.cpp | 197 ----- libs/box2d/src/Box2D/Dynamics/Joints/b2RopeJoint.h | 99 --- .../src/Box2D/Dynamics/Joints/b2WeldJoint.cpp | 2 +- libs/box2d/src/Box2D/Dynamics/Joints/b2WeldJoint.h | 2 +- .../src/Box2D/Dynamics/Joints/b2WheelJoint.cpp | 396 ---------- .../box2d/src/Box2D/Dynamics/Joints/b2WheelJoint.h | 186 ----- libs/box2d/src/Box2D/Dynamics/b2Body.cpp | 23 +- libs/box2d/src/Box2D/Dynamics/b2Body.h | 40 +- libs/box2d/src/Box2D/Dynamics/b2ContactManager.cpp | 29 +- libs/box2d/src/Box2D/Dynamics/b2ContactManager.h | 2 +- libs/box2d/src/Box2D/Dynamics/b2Fixture.cpp | 121 +--- libs/box2d/src/Box2D/Dynamics/b2Fixture.h | 48 +- libs/box2d/src/Box2D/Dynamics/b2Island.cpp | 146 +---- libs/box2d/src/Box2D/Dynamics/b2Island.h | 6 +- libs/box2d/src/Box2D/Dynamics/b2TimeStep.h | 22 +- libs/box2d/src/Box2D/Dynamics/b2World.cpp | 606 ++++++---------- libs/box2d/src/Box2D/Dynamics/b2World.h | 90 +-- libs/box2d/src/Box2D/Dynamics/b2WorldCallbacks.cpp | 27 +- libs/box2d/src/Box2D/Dynamics/b2WorldCallbacks.h | 65 ++- libs/box2d/src/Box2D/Rope/b2Rope.cpp | 259 ------- libs/box2d/src/Box2D/Rope/b2Rope.h | 115 --- libs/box2d/src/Tests/ApplyForce.h | 12 +- libs/box2d/src/Tests/BodyTypes.h | 6 +- libs/box2d/src/Tests/Breakable.h | 6 +- libs/box2d/src/Tests/Bridge.h | 8 +- libs/box2d/src/Tests/BulletTest.h | 136 ---- libs/box2d/src/Tests/Cantilever.h | 10 +- libs/box2d/src/Tests/Car.h | 286 ------- libs/box2d/src/Tests/Chain.h | 6 +- libs/box2d/src/Tests/CharacterCollision.h | 94 +-- libs/box2d/src/Tests/CollisionFiltering.h | 6 +- libs/box2d/src/Tests/CollisionProcessing.h | 6 +- libs/box2d/src/Tests/CompoundShapes.h | 6 +- libs/box2d/src/Tests/Confined.h | 12 +- libs/box2d/src/Tests/ContinuousTest.h | 21 +- libs/box2d/src/Tests/DistanceTest.h | 6 +- libs/box2d/src/Tests/Dominos.h | 6 +- libs/box2d/src/Tests/DynamicTreeTest.h | 10 +- libs/box2d/src/Tests/EdgeShapes.h | 12 +- libs/box2d/src/Tests/EdgeTest.h | 109 --- libs/box2d/src/Tests/Gears.h | 6 +- libs/box2d/src/Tests/OneSidedPlatform.h | 10 +- libs/box2d/src/Tests/Pinball.h | 169 ----- libs/box2d/src/Tests/PolyCollision.h | 4 +- libs/box2d/src/Tests/PolyShapes.h | 16 +- libs/box2d/src/Tests/Prismatic.h | 8 +- libs/box2d/src/Tests/Pulleys.h | 29 +- libs/box2d/src/Tests/Pyramid.h | 30 +- libs/box2d/src/Tests/RayCast.h | 12 +- libs/box2d/src/Tests/Revolute.h | 87 +-- libs/box2d/src/Tests/Rope.h | 101 --- libs/box2d/src/Tests/RopeJoint.h | 145 ---- libs/box2d/src/Tests/SensorTest.h | 6 +- libs/box2d/src/Tests/ShapeEditing.h | 6 +- libs/box2d/src/Tests/SliderCrank.h | 9 +- libs/box2d/src/Tests/SphereStack.h | 8 +- libs/box2d/src/Tests/TheoJansen.h | 10 +- libs/box2d/src/Tests/Tiles.h | 146 ---- libs/box2d/src/Tests/TimeOfImpact.h | 6 +- libs/box2d/src/Tests/VaryingFriction.h | 6 +- libs/box2d/src/Tests/VaryingRestitution.h | 8 +- libs/box2d/src/Tests/VerticalStack.h | 8 +- libs/box2d/src/Tests/Web.h | 10 +- 145 files changed, 3004 insertions(+), 7627 deletions(-) delete mode 100644 libs/box2d/src/Box2D/Collision/Shapes/b2EdgeShape.cpp delete mode 100644 libs/box2d/src/Box2D/Collision/Shapes/b2EdgeShape.h delete mode 100644 libs/box2d/src/Box2D/Collision/Shapes/b2LoopShape.cpp delete mode 100644 libs/box2d/src/Box2D/Collision/Shapes/b2LoopShape.h delete mode 100644 libs/box2d/src/Box2D/Collision/b2CollideEdge.cpp delete mode 100644 libs/box2d/src/Box2D/Common/b2Draw.cpp delete mode 100644 libs/box2d/src/Box2D/Common/b2Draw.h delete mode 100644 libs/box2d/src/Box2D/Common/b2GrowableStack.h delete mode 100644 libs/box2d/src/Box2D/Common/b2Timer.cpp delete mode 100644 libs/box2d/src/Box2D/Common/b2Timer.h delete mode 100644 libs/box2d/src/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp delete mode 100644 libs/box2d/src/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h delete mode 100644 libs/box2d/src/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp delete mode 100644 libs/box2d/src/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h delete mode 100644 libs/box2d/src/Box2D/Dynamics/Contacts/b2LoopAndCircleContact.cpp delete mode 100644 libs/box2d/src/Box2D/Dynamics/Contacts/b2LoopAndCircleContact.h delete mode 100644 libs/box2d/src/Box2D/Dynamics/Contacts/b2LoopAndPolygonContact.cpp delete mode 100644 libs/box2d/src/Box2D/Dynamics/Contacts/b2LoopAndPolygonContact.h create mode 100644 libs/box2d/src/Box2D/Dynamics/Contacts/b2TOISolver.cpp create mode 100644 libs/box2d/src/Box2D/Dynamics/Contacts/b2TOISolver.h create mode 100644 libs/box2d/src/Box2D/Dynamics/Joints/b2LineJoint.cpp create mode 100644 libs/box2d/src/Box2D/Dynamics/Joints/b2LineJoint.h delete mode 100644 libs/box2d/src/Box2D/Dynamics/Joints/b2RopeJoint.cpp delete mode 100644 libs/box2d/src/Box2D/Dynamics/Joints/b2RopeJoint.h delete mode 100644 libs/box2d/src/Box2D/Dynamics/Joints/b2WheelJoint.cpp delete mode 100644 libs/box2d/src/Box2D/Dynamics/Joints/b2WheelJoint.h delete mode 100644 libs/box2d/src/Box2D/Rope/b2Rope.cpp delete mode 100644 libs/box2d/src/Box2D/Rope/b2Rope.h delete mode 100644 libs/box2d/src/Tests/BulletTest.h delete mode 100644 libs/box2d/src/Tests/Car.h delete mode 100644 libs/box2d/src/Tests/EdgeTest.h delete mode 100644 libs/box2d/src/Tests/Pinball.h delete mode 100644 libs/box2d/src/Tests/Rope.h delete mode 100644 libs/box2d/src/Tests/RopeJoint.h delete mode 100644 libs/box2d/src/Tests/Tiles.h diff --git a/libs/box2d/box2d-ios.xcodeproj/project.pbxproj b/libs/box2d/box2d-ios.xcodeproj/project.pbxproj index edca52a..7a456a4 100644 --- a/libs/box2d/box2d-ios.xcodeproj/project.pbxproj +++ b/libs/box2d/box2d-ios.xcodeproj/project.pbxproj @@ -7,156 +7,156 @@ objects = { /* Begin PBXBuildFile section */ - 491330C81372616300DFB46D /* Box2D.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913307B1372616300DFB46D /* Box2D.h */; }; - 491330C91372616300DFB46D /* b2BroadPhase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913307D1372616300DFB46D /* b2BroadPhase.cpp */; }; - 491330CA1372616300DFB46D /* b2BroadPhase.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913307E1372616300DFB46D /* b2BroadPhase.h */; }; - 491330CB1372616300DFB46D /* b2CollideCircle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913307F1372616300DFB46D /* b2CollideCircle.cpp */; }; - 491330CC1372616300DFB46D /* b2CollidePolygon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330801372616300DFB46D /* b2CollidePolygon.cpp */; }; - 491330CD1372616300DFB46D /* b2Collision.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330811372616300DFB46D /* b2Collision.cpp */; }; - 491330CE1372616300DFB46D /* b2Collision.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330821372616300DFB46D /* b2Collision.h */; }; - 491330CF1372616300DFB46D /* b2Distance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330831372616300DFB46D /* b2Distance.cpp */; }; - 491330D01372616300DFB46D /* b2Distance.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330841372616300DFB46D /* b2Distance.h */; }; - 491330D11372616300DFB46D /* b2DynamicTree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330851372616300DFB46D /* b2DynamicTree.cpp */; }; - 491330D21372616300DFB46D /* b2DynamicTree.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330861372616300DFB46D /* b2DynamicTree.h */; }; - 491330D31372616300DFB46D /* b2TimeOfImpact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330871372616300DFB46D /* b2TimeOfImpact.cpp */; }; - 491330D41372616300DFB46D /* b2TimeOfImpact.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330881372616300DFB46D /* b2TimeOfImpact.h */; }; - 491330D51372616300DFB46D /* b2CircleShape.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913308A1372616300DFB46D /* b2CircleShape.cpp */; }; - 491330D61372616300DFB46D /* b2CircleShape.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913308B1372616300DFB46D /* b2CircleShape.h */; }; - 491330D71372616300DFB46D /* b2PolygonShape.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913308C1372616300DFB46D /* b2PolygonShape.cpp */; }; - 491330D81372616300DFB46D /* b2PolygonShape.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913308D1372616300DFB46D /* b2PolygonShape.h */; }; - 491330D91372616300DFB46D /* b2Shape.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913308E1372616300DFB46D /* b2Shape.h */; }; - 491330DA1372616300DFB46D /* b2BlockAllocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330901372616300DFB46D /* b2BlockAllocator.cpp */; }; - 491330DB1372616300DFB46D /* b2BlockAllocator.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330911372616300DFB46D /* b2BlockAllocator.h */; }; - 491330DC1372616300DFB46D /* b2Math.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330921372616300DFB46D /* b2Math.cpp */; }; - 491330DD1372616300DFB46D /* b2Math.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330931372616300DFB46D /* b2Math.h */; }; - 491330DE1372616300DFB46D /* b2Settings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330941372616300DFB46D /* b2Settings.cpp */; }; - 491330DF1372616300DFB46D /* b2Settings.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330951372616300DFB46D /* b2Settings.h */; }; - 491330E01372616300DFB46D /* b2StackAllocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330961372616300DFB46D /* b2StackAllocator.cpp */; }; - 491330E11372616300DFB46D /* b2StackAllocator.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330971372616300DFB46D /* b2StackAllocator.h */; }; - 491330E21372616300DFB46D /* b2Body.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330991372616300DFB46D /* b2Body.cpp */; }; - 491330E31372616300DFB46D /* b2Body.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913309A1372616300DFB46D /* b2Body.h */; }; - 491330E41372616300DFB46D /* b2ContactManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913309B1372616300DFB46D /* b2ContactManager.cpp */; }; - 491330E51372616300DFB46D /* b2ContactManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913309C1372616300DFB46D /* b2ContactManager.h */; }; - 491330E61372616300DFB46D /* b2Fixture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913309D1372616300DFB46D /* b2Fixture.cpp */; }; - 491330E71372616300DFB46D /* b2Fixture.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913309E1372616300DFB46D /* b2Fixture.h */; }; - 491330E81372616300DFB46D /* b2Island.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913309F1372616300DFB46D /* b2Island.cpp */; }; - 491330E91372616300DFB46D /* b2Island.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330A01372616300DFB46D /* b2Island.h */; }; - 491330EA1372616300DFB46D /* b2TimeStep.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330A11372616300DFB46D /* b2TimeStep.h */; }; - 491330EB1372616300DFB46D /* b2World.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330A21372616300DFB46D /* b2World.cpp */; }; - 491330EC1372616300DFB46D /* b2World.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330A31372616300DFB46D /* b2World.h */; }; - 491330ED1372616300DFB46D /* b2WorldCallbacks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330A41372616300DFB46D /* b2WorldCallbacks.cpp */; }; - 491330EE1372616300DFB46D /* b2WorldCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330A51372616300DFB46D /* b2WorldCallbacks.h */; }; - 491330EF1372616300DFB46D /* b2CircleContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330A71372616300DFB46D /* b2CircleContact.cpp */; }; - 491330F01372616300DFB46D /* b2CircleContact.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330A81372616300DFB46D /* b2CircleContact.h */; }; - 491330F11372616300DFB46D /* b2Contact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330A91372616300DFB46D /* b2Contact.cpp */; }; - 491330F21372616300DFB46D /* b2Contact.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330AA1372616300DFB46D /* b2Contact.h */; }; - 491330F31372616300DFB46D /* b2ContactSolver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330AB1372616300DFB46D /* b2ContactSolver.cpp */; }; - 491330F41372616300DFB46D /* b2ContactSolver.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330AC1372616300DFB46D /* b2ContactSolver.h */; }; - 491330F51372616300DFB46D /* b2PolygonAndCircleContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330AD1372616300DFB46D /* b2PolygonAndCircleContact.cpp */; }; - 491330F61372616300DFB46D /* b2PolygonAndCircleContact.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330AE1372616300DFB46D /* b2PolygonAndCircleContact.h */; }; - 491330F71372616300DFB46D /* b2PolygonContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330AF1372616300DFB46D /* b2PolygonContact.cpp */; }; - 491330F81372616300DFB46D /* b2PolygonContact.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330B01372616300DFB46D /* b2PolygonContact.h */; }; - 491330F91372616300DFB46D /* b2TOISolver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330B11372616300DFB46D /* b2TOISolver.cpp */; }; - 491330FA1372616300DFB46D /* b2TOISolver.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330B21372616300DFB46D /* b2TOISolver.h */; }; - 491330FB1372616300DFB46D /* b2DistanceJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330B41372616300DFB46D /* b2DistanceJoint.cpp */; }; - 491330FC1372616300DFB46D /* b2DistanceJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330B51372616300DFB46D /* b2DistanceJoint.h */; }; - 491330FD1372616300DFB46D /* b2FrictionJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330B61372616300DFB46D /* b2FrictionJoint.cpp */; }; - 491330FE1372616300DFB46D /* b2FrictionJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330B71372616300DFB46D /* b2FrictionJoint.h */; }; - 491330FF1372616300DFB46D /* b2GearJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330B81372616300DFB46D /* b2GearJoint.cpp */; }; - 491331001372616300DFB46D /* b2GearJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330B91372616300DFB46D /* b2GearJoint.h */; }; - 491331011372616300DFB46D /* b2Joint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330BA1372616300DFB46D /* b2Joint.cpp */; }; - 491331021372616300DFB46D /* b2Joint.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330BB1372616300DFB46D /* b2Joint.h */; }; - 491331031372616300DFB46D /* b2LineJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330BC1372616300DFB46D /* b2LineJoint.cpp */; }; - 491331041372616300DFB46D /* b2LineJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330BD1372616300DFB46D /* b2LineJoint.h */; }; - 491331051372616300DFB46D /* b2MouseJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330BE1372616300DFB46D /* b2MouseJoint.cpp */; }; - 491331061372616300DFB46D /* b2MouseJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330BF1372616300DFB46D /* b2MouseJoint.h */; }; - 491331071372616300DFB46D /* b2PrismaticJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330C01372616300DFB46D /* b2PrismaticJoint.cpp */; }; - 491331081372616300DFB46D /* b2PrismaticJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330C11372616300DFB46D /* b2PrismaticJoint.h */; }; - 491331091372616300DFB46D /* b2PulleyJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330C21372616300DFB46D /* b2PulleyJoint.cpp */; }; - 4913310A1372616300DFB46D /* b2PulleyJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330C31372616300DFB46D /* b2PulleyJoint.h */; }; - 4913310B1372616300DFB46D /* b2RevoluteJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330C41372616300DFB46D /* b2RevoluteJoint.cpp */; }; - 4913310C1372616300DFB46D /* b2RevoluteJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330C51372616300DFB46D /* b2RevoluteJoint.h */; }; - 4913310D1372616300DFB46D /* b2WeldJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491330C61372616300DFB46D /* b2WeldJoint.cpp */; }; - 4913310E1372616300DFB46D /* b2WeldJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 491330C71372616300DFB46D /* b2WeldJoint.h */; }; 49133123137262F200DFB46D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49133122137262F200DFB46D /* Foundation.framework */; }; 491331281372630700DFB46D /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 491331271372630700DFB46D /* UIKit.framework */; }; + 4913344213727CB100DFB46D /* Box2D.h in Headers */ = {isa = PBXBuildFile; fileRef = 491333F513727CB100DFB46D /* Box2D.h */; }; + 4913344313727CB100DFB46D /* b2BroadPhase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491333F713727CB100DFB46D /* b2BroadPhase.cpp */; }; + 4913344413727CB100DFB46D /* b2BroadPhase.h in Headers */ = {isa = PBXBuildFile; fileRef = 491333F813727CB100DFB46D /* b2BroadPhase.h */; }; + 4913344513727CB100DFB46D /* b2CollideCircle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491333F913727CB100DFB46D /* b2CollideCircle.cpp */; }; + 4913344613727CB100DFB46D /* b2CollidePolygon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491333FA13727CB100DFB46D /* b2CollidePolygon.cpp */; }; + 4913344713727CB100DFB46D /* b2Collision.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491333FB13727CB100DFB46D /* b2Collision.cpp */; }; + 4913344813727CB100DFB46D /* b2Collision.h in Headers */ = {isa = PBXBuildFile; fileRef = 491333FC13727CB100DFB46D /* b2Collision.h */; }; + 4913344913727CB100DFB46D /* b2Distance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491333FD13727CB100DFB46D /* b2Distance.cpp */; }; + 4913344A13727CB100DFB46D /* b2Distance.h in Headers */ = {isa = PBXBuildFile; fileRef = 491333FE13727CB100DFB46D /* b2Distance.h */; }; + 4913344B13727CB100DFB46D /* b2DynamicTree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 491333FF13727CB100DFB46D /* b2DynamicTree.cpp */; }; + 4913344C13727CB100DFB46D /* b2DynamicTree.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913340013727CB100DFB46D /* b2DynamicTree.h */; }; + 4913344D13727CB100DFB46D /* b2TimeOfImpact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913340113727CB100DFB46D /* b2TimeOfImpact.cpp */; }; + 4913344E13727CB100DFB46D /* b2TimeOfImpact.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913340213727CB100DFB46D /* b2TimeOfImpact.h */; }; + 4913344F13727CB100DFB46D /* b2CircleShape.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913340413727CB100DFB46D /* b2CircleShape.cpp */; }; + 4913345013727CB100DFB46D /* b2CircleShape.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913340513727CB100DFB46D /* b2CircleShape.h */; }; + 4913345113727CB100DFB46D /* b2PolygonShape.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913340613727CB100DFB46D /* b2PolygonShape.cpp */; }; + 4913345213727CB100DFB46D /* b2PolygonShape.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913340713727CB100DFB46D /* b2PolygonShape.h */; }; + 4913345313727CB100DFB46D /* b2Shape.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913340813727CB100DFB46D /* b2Shape.h */; }; + 4913345413727CB100DFB46D /* b2BlockAllocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913340A13727CB100DFB46D /* b2BlockAllocator.cpp */; }; + 4913345513727CB100DFB46D /* b2BlockAllocator.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913340B13727CB100DFB46D /* b2BlockAllocator.h */; }; + 4913345613727CB100DFB46D /* b2Math.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913340C13727CB100DFB46D /* b2Math.cpp */; }; + 4913345713727CB100DFB46D /* b2Math.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913340D13727CB100DFB46D /* b2Math.h */; }; + 4913345813727CB100DFB46D /* b2Settings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913340E13727CB100DFB46D /* b2Settings.cpp */; }; + 4913345913727CB100DFB46D /* b2Settings.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913340F13727CB100DFB46D /* b2Settings.h */; }; + 4913345A13727CB100DFB46D /* b2StackAllocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913341013727CB100DFB46D /* b2StackAllocator.cpp */; }; + 4913345B13727CB100DFB46D /* b2StackAllocator.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913341113727CB100DFB46D /* b2StackAllocator.h */; }; + 4913345C13727CB100DFB46D /* b2Body.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913341313727CB100DFB46D /* b2Body.cpp */; }; + 4913345D13727CB100DFB46D /* b2Body.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913341413727CB100DFB46D /* b2Body.h */; }; + 4913345E13727CB100DFB46D /* b2ContactManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913341513727CB100DFB46D /* b2ContactManager.cpp */; }; + 4913345F13727CB100DFB46D /* b2ContactManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913341613727CB100DFB46D /* b2ContactManager.h */; }; + 4913346013727CB100DFB46D /* b2Fixture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913341713727CB100DFB46D /* b2Fixture.cpp */; }; + 4913346113727CB100DFB46D /* b2Fixture.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913341813727CB100DFB46D /* b2Fixture.h */; }; + 4913346213727CB100DFB46D /* b2Island.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913341913727CB100DFB46D /* b2Island.cpp */; }; + 4913346313727CB100DFB46D /* b2Island.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913341A13727CB100DFB46D /* b2Island.h */; }; + 4913346413727CB100DFB46D /* b2TimeStep.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913341B13727CB100DFB46D /* b2TimeStep.h */; }; + 4913346513727CB100DFB46D /* b2World.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913341C13727CB100DFB46D /* b2World.cpp */; }; + 4913346613727CB100DFB46D /* b2World.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913341D13727CB100DFB46D /* b2World.h */; }; + 4913346713727CB100DFB46D /* b2WorldCallbacks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913341E13727CB100DFB46D /* b2WorldCallbacks.cpp */; }; + 4913346813727CB100DFB46D /* b2WorldCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913341F13727CB100DFB46D /* b2WorldCallbacks.h */; }; + 4913346913727CB100DFB46D /* b2CircleContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913342113727CB100DFB46D /* b2CircleContact.cpp */; }; + 4913346A13727CB100DFB46D /* b2CircleContact.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913342213727CB100DFB46D /* b2CircleContact.h */; }; + 4913346B13727CB100DFB46D /* b2Contact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913342313727CB100DFB46D /* b2Contact.cpp */; }; + 4913346C13727CB100DFB46D /* b2Contact.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913342413727CB100DFB46D /* b2Contact.h */; }; + 4913346D13727CB100DFB46D /* b2ContactSolver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913342513727CB100DFB46D /* b2ContactSolver.cpp */; }; + 4913346E13727CB100DFB46D /* b2ContactSolver.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913342613727CB100DFB46D /* b2ContactSolver.h */; }; + 4913346F13727CB100DFB46D /* b2PolygonAndCircleContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913342713727CB100DFB46D /* b2PolygonAndCircleContact.cpp */; }; + 4913347013727CB100DFB46D /* b2PolygonAndCircleContact.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913342813727CB100DFB46D /* b2PolygonAndCircleContact.h */; }; + 4913347113727CB100DFB46D /* b2PolygonContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913342913727CB100DFB46D /* b2PolygonContact.cpp */; }; + 4913347213727CB100DFB46D /* b2PolygonContact.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913342A13727CB100DFB46D /* b2PolygonContact.h */; }; + 4913347313727CB100DFB46D /* b2TOISolver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913342B13727CB100DFB46D /* b2TOISolver.cpp */; }; + 4913347413727CB100DFB46D /* b2TOISolver.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913342C13727CB100DFB46D /* b2TOISolver.h */; }; + 4913347513727CB100DFB46D /* b2DistanceJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913342E13727CB100DFB46D /* b2DistanceJoint.cpp */; }; + 4913347613727CB100DFB46D /* b2DistanceJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913342F13727CB100DFB46D /* b2DistanceJoint.h */; }; + 4913347713727CB100DFB46D /* b2FrictionJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913343013727CB100DFB46D /* b2FrictionJoint.cpp */; }; + 4913347813727CB100DFB46D /* b2FrictionJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913343113727CB100DFB46D /* b2FrictionJoint.h */; }; + 4913347913727CB100DFB46D /* b2GearJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913343213727CB100DFB46D /* b2GearJoint.cpp */; }; + 4913347A13727CB100DFB46D /* b2GearJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913343313727CB100DFB46D /* b2GearJoint.h */; }; + 4913347B13727CB100DFB46D /* b2Joint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913343413727CB100DFB46D /* b2Joint.cpp */; }; + 4913347C13727CB100DFB46D /* b2Joint.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913343513727CB100DFB46D /* b2Joint.h */; }; + 4913347D13727CB100DFB46D /* b2LineJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913343613727CB100DFB46D /* b2LineJoint.cpp */; }; + 4913347E13727CB100DFB46D /* b2LineJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913343713727CB100DFB46D /* b2LineJoint.h */; }; + 4913347F13727CB100DFB46D /* b2MouseJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913343813727CB100DFB46D /* b2MouseJoint.cpp */; }; + 4913348013727CB100DFB46D /* b2MouseJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913343913727CB100DFB46D /* b2MouseJoint.h */; }; + 4913348113727CB100DFB46D /* b2PrismaticJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913343A13727CB100DFB46D /* b2PrismaticJoint.cpp */; }; + 4913348213727CB100DFB46D /* b2PrismaticJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913343B13727CB100DFB46D /* b2PrismaticJoint.h */; }; + 4913348313727CB100DFB46D /* b2PulleyJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913343C13727CB100DFB46D /* b2PulleyJoint.cpp */; }; + 4913348413727CB100DFB46D /* b2PulleyJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913343D13727CB100DFB46D /* b2PulleyJoint.h */; }; + 4913348513727CB100DFB46D /* b2RevoluteJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913343E13727CB100DFB46D /* b2RevoluteJoint.cpp */; }; + 4913348613727CB100DFB46D /* b2RevoluteJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913343F13727CB100DFB46D /* b2RevoluteJoint.h */; }; + 4913348713727CB100DFB46D /* b2WeldJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4913344013727CB100DFB46D /* b2WeldJoint.cpp */; }; + 4913348813727CB100DFB46D /* b2WeldJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913344113727CB100DFB46D /* b2WeldJoint.h */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ 4913305F1372610400DFB46D /* libBox2D.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libBox2D.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 4913307B1372616300DFB46D /* Box2D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Box2D.h; sourceTree = ""; }; - 4913307D1372616300DFB46D /* b2BroadPhase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2BroadPhase.cpp; sourceTree = ""; }; - 4913307E1372616300DFB46D /* b2BroadPhase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2BroadPhase.h; sourceTree = ""; }; - 4913307F1372616300DFB46D /* b2CollideCircle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2CollideCircle.cpp; sourceTree = ""; }; - 491330801372616300DFB46D /* b2CollidePolygon.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2CollidePolygon.cpp; sourceTree = ""; }; - 491330811372616300DFB46D /* b2Collision.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Collision.cpp; sourceTree = ""; }; - 491330821372616300DFB46D /* b2Collision.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Collision.h; sourceTree = ""; }; - 491330831372616300DFB46D /* b2Distance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Distance.cpp; sourceTree = ""; }; - 491330841372616300DFB46D /* b2Distance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Distance.h; sourceTree = ""; }; - 491330851372616300DFB46D /* b2DynamicTree.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2DynamicTree.cpp; sourceTree = ""; }; - 491330861372616300DFB46D /* b2DynamicTree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2DynamicTree.h; sourceTree = ""; }; - 491330871372616300DFB46D /* b2TimeOfImpact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2TimeOfImpact.cpp; sourceTree = ""; }; - 491330881372616300DFB46D /* b2TimeOfImpact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2TimeOfImpact.h; sourceTree = ""; }; - 4913308A1372616300DFB46D /* b2CircleShape.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2CircleShape.cpp; sourceTree = ""; }; - 4913308B1372616300DFB46D /* b2CircleShape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2CircleShape.h; sourceTree = ""; }; - 4913308C1372616300DFB46D /* b2PolygonShape.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PolygonShape.cpp; sourceTree = ""; }; - 4913308D1372616300DFB46D /* b2PolygonShape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PolygonShape.h; sourceTree = ""; }; - 4913308E1372616300DFB46D /* b2Shape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Shape.h; sourceTree = ""; }; - 491330901372616300DFB46D /* b2BlockAllocator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2BlockAllocator.cpp; sourceTree = ""; }; - 491330911372616300DFB46D /* b2BlockAllocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2BlockAllocator.h; sourceTree = ""; }; - 491330921372616300DFB46D /* b2Math.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Math.cpp; sourceTree = ""; }; - 491330931372616300DFB46D /* b2Math.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Math.h; sourceTree = ""; }; - 491330941372616300DFB46D /* b2Settings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Settings.cpp; sourceTree = ""; }; - 491330951372616300DFB46D /* b2Settings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Settings.h; sourceTree = ""; }; - 491330961372616300DFB46D /* b2StackAllocator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2StackAllocator.cpp; sourceTree = ""; }; - 491330971372616300DFB46D /* b2StackAllocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2StackAllocator.h; sourceTree = ""; }; - 491330991372616300DFB46D /* b2Body.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Body.cpp; sourceTree = ""; }; - 4913309A1372616300DFB46D /* b2Body.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Body.h; sourceTree = ""; }; - 4913309B1372616300DFB46D /* b2ContactManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2ContactManager.cpp; sourceTree = ""; }; - 4913309C1372616300DFB46D /* b2ContactManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2ContactManager.h; sourceTree = ""; }; - 4913309D1372616300DFB46D /* b2Fixture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Fixture.cpp; sourceTree = ""; }; - 4913309E1372616300DFB46D /* b2Fixture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Fixture.h; sourceTree = ""; }; - 4913309F1372616300DFB46D /* b2Island.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Island.cpp; sourceTree = ""; }; - 491330A01372616300DFB46D /* b2Island.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Island.h; sourceTree = ""; }; - 491330A11372616300DFB46D /* b2TimeStep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2TimeStep.h; sourceTree = ""; }; - 491330A21372616300DFB46D /* b2World.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2World.cpp; sourceTree = ""; }; - 491330A31372616300DFB46D /* b2World.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2World.h; sourceTree = ""; }; - 491330A41372616300DFB46D /* b2WorldCallbacks.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2WorldCallbacks.cpp; sourceTree = ""; }; - 491330A51372616300DFB46D /* b2WorldCallbacks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2WorldCallbacks.h; sourceTree = ""; }; - 491330A71372616300DFB46D /* b2CircleContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2CircleContact.cpp; sourceTree = ""; }; - 491330A81372616300DFB46D /* b2CircleContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2CircleContact.h; sourceTree = ""; }; - 491330A91372616300DFB46D /* b2Contact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Contact.cpp; sourceTree = ""; }; - 491330AA1372616300DFB46D /* b2Contact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Contact.h; sourceTree = ""; }; - 491330AB1372616300DFB46D /* b2ContactSolver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2ContactSolver.cpp; sourceTree = ""; }; - 491330AC1372616300DFB46D /* b2ContactSolver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2ContactSolver.h; sourceTree = ""; }; - 491330AD1372616300DFB46D /* b2PolygonAndCircleContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PolygonAndCircleContact.cpp; sourceTree = ""; }; - 491330AE1372616300DFB46D /* b2PolygonAndCircleContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PolygonAndCircleContact.h; sourceTree = ""; }; - 491330AF1372616300DFB46D /* b2PolygonContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PolygonContact.cpp; sourceTree = ""; }; - 491330B01372616300DFB46D /* b2PolygonContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PolygonContact.h; sourceTree = ""; }; - 491330B11372616300DFB46D /* b2TOISolver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2TOISolver.cpp; sourceTree = ""; }; - 491330B21372616300DFB46D /* b2TOISolver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2TOISolver.h; sourceTree = ""; }; - 491330B41372616300DFB46D /* b2DistanceJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2DistanceJoint.cpp; sourceTree = ""; }; - 491330B51372616300DFB46D /* b2DistanceJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2DistanceJoint.h; sourceTree = ""; }; - 491330B61372616300DFB46D /* b2FrictionJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2FrictionJoint.cpp; sourceTree = ""; }; - 491330B71372616300DFB46D /* b2FrictionJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2FrictionJoint.h; sourceTree = ""; }; - 491330B81372616300DFB46D /* b2GearJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2GearJoint.cpp; sourceTree = ""; }; - 491330B91372616300DFB46D /* b2GearJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2GearJoint.h; sourceTree = ""; }; - 491330BA1372616300DFB46D /* b2Joint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Joint.cpp; sourceTree = ""; }; - 491330BB1372616300DFB46D /* b2Joint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Joint.h; sourceTree = ""; }; - 491330BC1372616300DFB46D /* b2LineJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2LineJoint.cpp; sourceTree = ""; }; - 491330BD1372616300DFB46D /* b2LineJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2LineJoint.h; sourceTree = ""; }; - 491330BE1372616300DFB46D /* b2MouseJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2MouseJoint.cpp; sourceTree = ""; }; - 491330BF1372616300DFB46D /* b2MouseJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2MouseJoint.h; sourceTree = ""; }; - 491330C01372616300DFB46D /* b2PrismaticJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PrismaticJoint.cpp; sourceTree = ""; }; - 491330C11372616300DFB46D /* b2PrismaticJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PrismaticJoint.h; sourceTree = ""; }; - 491330C21372616300DFB46D /* b2PulleyJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PulleyJoint.cpp; sourceTree = ""; }; - 491330C31372616300DFB46D /* b2PulleyJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PulleyJoint.h; sourceTree = ""; }; - 491330C41372616300DFB46D /* b2RevoluteJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2RevoluteJoint.cpp; sourceTree = ""; }; - 491330C51372616300DFB46D /* b2RevoluteJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2RevoluteJoint.h; sourceTree = ""; }; - 491330C61372616300DFB46D /* b2WeldJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2WeldJoint.cpp; sourceTree = ""; }; - 491330C71372616300DFB46D /* b2WeldJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2WeldJoint.h; sourceTree = ""; }; 49133122137262F200DFB46D /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 491331271372630700DFB46D /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 491333F513727CB100DFB46D /* Box2D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Box2D.h; sourceTree = ""; }; + 491333F713727CB100DFB46D /* b2BroadPhase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2BroadPhase.cpp; sourceTree = ""; }; + 491333F813727CB100DFB46D /* b2BroadPhase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2BroadPhase.h; sourceTree = ""; }; + 491333F913727CB100DFB46D /* b2CollideCircle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2CollideCircle.cpp; sourceTree = ""; }; + 491333FA13727CB100DFB46D /* b2CollidePolygon.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2CollidePolygon.cpp; sourceTree = ""; }; + 491333FB13727CB100DFB46D /* b2Collision.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Collision.cpp; sourceTree = ""; }; + 491333FC13727CB100DFB46D /* b2Collision.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Collision.h; sourceTree = ""; }; + 491333FD13727CB100DFB46D /* b2Distance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Distance.cpp; sourceTree = ""; }; + 491333FE13727CB100DFB46D /* b2Distance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Distance.h; sourceTree = ""; }; + 491333FF13727CB100DFB46D /* b2DynamicTree.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2DynamicTree.cpp; sourceTree = ""; }; + 4913340013727CB100DFB46D /* b2DynamicTree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2DynamicTree.h; sourceTree = ""; }; + 4913340113727CB100DFB46D /* b2TimeOfImpact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2TimeOfImpact.cpp; sourceTree = ""; }; + 4913340213727CB100DFB46D /* b2TimeOfImpact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2TimeOfImpact.h; sourceTree = ""; }; + 4913340413727CB100DFB46D /* b2CircleShape.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2CircleShape.cpp; sourceTree = ""; }; + 4913340513727CB100DFB46D /* b2CircleShape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2CircleShape.h; sourceTree = ""; }; + 4913340613727CB100DFB46D /* b2PolygonShape.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PolygonShape.cpp; sourceTree = ""; }; + 4913340713727CB100DFB46D /* b2PolygonShape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PolygonShape.h; sourceTree = ""; }; + 4913340813727CB100DFB46D /* b2Shape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Shape.h; sourceTree = ""; }; + 4913340A13727CB100DFB46D /* b2BlockAllocator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2BlockAllocator.cpp; sourceTree = ""; }; + 4913340B13727CB100DFB46D /* b2BlockAllocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2BlockAllocator.h; sourceTree = ""; }; + 4913340C13727CB100DFB46D /* b2Math.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Math.cpp; sourceTree = ""; }; + 4913340D13727CB100DFB46D /* b2Math.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Math.h; sourceTree = ""; }; + 4913340E13727CB100DFB46D /* b2Settings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Settings.cpp; sourceTree = ""; }; + 4913340F13727CB100DFB46D /* b2Settings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Settings.h; sourceTree = ""; }; + 4913341013727CB100DFB46D /* b2StackAllocator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2StackAllocator.cpp; sourceTree = ""; }; + 4913341113727CB100DFB46D /* b2StackAllocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2StackAllocator.h; sourceTree = ""; }; + 4913341313727CB100DFB46D /* b2Body.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Body.cpp; sourceTree = ""; }; + 4913341413727CB100DFB46D /* b2Body.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Body.h; sourceTree = ""; }; + 4913341513727CB100DFB46D /* b2ContactManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2ContactManager.cpp; sourceTree = ""; }; + 4913341613727CB100DFB46D /* b2ContactManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2ContactManager.h; sourceTree = ""; }; + 4913341713727CB100DFB46D /* b2Fixture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Fixture.cpp; sourceTree = ""; }; + 4913341813727CB100DFB46D /* b2Fixture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Fixture.h; sourceTree = ""; }; + 4913341913727CB100DFB46D /* b2Island.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Island.cpp; sourceTree = ""; }; + 4913341A13727CB100DFB46D /* b2Island.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Island.h; sourceTree = ""; }; + 4913341B13727CB100DFB46D /* b2TimeStep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2TimeStep.h; sourceTree = ""; }; + 4913341C13727CB100DFB46D /* b2World.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2World.cpp; sourceTree = ""; }; + 4913341D13727CB100DFB46D /* b2World.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2World.h; sourceTree = ""; }; + 4913341E13727CB100DFB46D /* b2WorldCallbacks.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2WorldCallbacks.cpp; sourceTree = ""; }; + 4913341F13727CB100DFB46D /* b2WorldCallbacks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2WorldCallbacks.h; sourceTree = ""; }; + 4913342113727CB100DFB46D /* b2CircleContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2CircleContact.cpp; sourceTree = ""; }; + 4913342213727CB100DFB46D /* b2CircleContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2CircleContact.h; sourceTree = ""; }; + 4913342313727CB100DFB46D /* b2Contact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Contact.cpp; sourceTree = ""; }; + 4913342413727CB100DFB46D /* b2Contact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Contact.h; sourceTree = ""; }; + 4913342513727CB100DFB46D /* b2ContactSolver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2ContactSolver.cpp; sourceTree = ""; }; + 4913342613727CB100DFB46D /* b2ContactSolver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2ContactSolver.h; sourceTree = ""; }; + 4913342713727CB100DFB46D /* b2PolygonAndCircleContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PolygonAndCircleContact.cpp; sourceTree = ""; }; + 4913342813727CB100DFB46D /* b2PolygonAndCircleContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PolygonAndCircleContact.h; sourceTree = ""; }; + 4913342913727CB100DFB46D /* b2PolygonContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PolygonContact.cpp; sourceTree = ""; }; + 4913342A13727CB100DFB46D /* b2PolygonContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PolygonContact.h; sourceTree = ""; }; + 4913342B13727CB100DFB46D /* b2TOISolver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2TOISolver.cpp; sourceTree = ""; }; + 4913342C13727CB100DFB46D /* b2TOISolver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2TOISolver.h; sourceTree = ""; }; + 4913342E13727CB100DFB46D /* b2DistanceJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2DistanceJoint.cpp; sourceTree = ""; }; + 4913342F13727CB100DFB46D /* b2DistanceJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2DistanceJoint.h; sourceTree = ""; }; + 4913343013727CB100DFB46D /* b2FrictionJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2FrictionJoint.cpp; sourceTree = ""; }; + 4913343113727CB100DFB46D /* b2FrictionJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2FrictionJoint.h; sourceTree = ""; }; + 4913343213727CB100DFB46D /* b2GearJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2GearJoint.cpp; sourceTree = ""; }; + 4913343313727CB100DFB46D /* b2GearJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2GearJoint.h; sourceTree = ""; }; + 4913343413727CB100DFB46D /* b2Joint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Joint.cpp; sourceTree = ""; }; + 4913343513727CB100DFB46D /* b2Joint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Joint.h; sourceTree = ""; }; + 4913343613727CB100DFB46D /* b2LineJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2LineJoint.cpp; sourceTree = ""; }; + 4913343713727CB100DFB46D /* b2LineJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2LineJoint.h; sourceTree = ""; }; + 4913343813727CB100DFB46D /* b2MouseJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2MouseJoint.cpp; sourceTree = ""; }; + 4913343913727CB100DFB46D /* b2MouseJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2MouseJoint.h; sourceTree = ""; }; + 4913343A13727CB100DFB46D /* b2PrismaticJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PrismaticJoint.cpp; sourceTree = ""; }; + 4913343B13727CB100DFB46D /* b2PrismaticJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PrismaticJoint.h; sourceTree = ""; }; + 4913343C13727CB100DFB46D /* b2PulleyJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PulleyJoint.cpp; sourceTree = ""; }; + 4913343D13727CB100DFB46D /* b2PulleyJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PulleyJoint.h; sourceTree = ""; }; + 4913343E13727CB100DFB46D /* b2RevoluteJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2RevoluteJoint.cpp; sourceTree = ""; }; + 4913343F13727CB100DFB46D /* b2RevoluteJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2RevoluteJoint.h; sourceTree = ""; }; + 4913344013727CB100DFB46D /* b2WeldJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2WeldJoint.cpp; sourceTree = ""; }; + 4913344113727CB100DFB46D /* b2WeldJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2WeldJoint.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -175,7 +175,7 @@ 491330541372610400DFB46D = { isa = PBXGroup; children = ( - 4913307A1372616300DFB46D /* Box2D */, + 491333F413727CB100DFB46D /* Box2D */, 491331291372630F00DFB46D /* Frameworks */, 491330601372610400DFB46D /* Products */, ); @@ -189,142 +189,142 @@ name = Products; sourceTree = ""; }; - 4913307A1372616300DFB46D /* Box2D */ = { + 491331291372630F00DFB46D /* Frameworks */ = { + isa = PBXGroup; + children = ( + 491331271372630700DFB46D /* UIKit.framework */, + 49133122137262F200DFB46D /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 491333F413727CB100DFB46D /* Box2D */ = { isa = PBXGroup; children = ( - 4913307B1372616300DFB46D /* Box2D.h */, - 4913307C1372616300DFB46D /* Collision */, - 4913308F1372616300DFB46D /* Common */, - 491330981372616300DFB46D /* Dynamics */, + 491333F513727CB100DFB46D /* Box2D.h */, + 491333F613727CB100DFB46D /* Collision */, + 4913340913727CB100DFB46D /* Common */, + 4913341213727CB100DFB46D /* Dynamics */, ); name = Box2D; - path = src/Box2D; + path = "../../../../tanks-ios/libs/box2d/src/Box2D"; sourceTree = ""; }; - 4913307C1372616300DFB46D /* Collision */ = { + 491333F613727CB100DFB46D /* Collision */ = { isa = PBXGroup; children = ( - 4913307D1372616300DFB46D /* b2BroadPhase.cpp */, - 4913307E1372616300DFB46D /* b2BroadPhase.h */, - 4913307F1372616300DFB46D /* b2CollideCircle.cpp */, - 491330801372616300DFB46D /* b2CollidePolygon.cpp */, - 491330811372616300DFB46D /* b2Collision.cpp */, - 491330821372616300DFB46D /* b2Collision.h */, - 491330831372616300DFB46D /* b2Distance.cpp */, - 491330841372616300DFB46D /* b2Distance.h */, - 491330851372616300DFB46D /* b2DynamicTree.cpp */, - 491330861372616300DFB46D /* b2DynamicTree.h */, - 491330871372616300DFB46D /* b2TimeOfImpact.cpp */, - 491330881372616300DFB46D /* b2TimeOfImpact.h */, - 491330891372616300DFB46D /* Shapes */, + 491333F713727CB100DFB46D /* b2BroadPhase.cpp */, + 491333F813727CB100DFB46D /* b2BroadPhase.h */, + 491333F913727CB100DFB46D /* b2CollideCircle.cpp */, + 491333FA13727CB100DFB46D /* b2CollidePolygon.cpp */, + 491333FB13727CB100DFB46D /* b2Collision.cpp */, + 491333FC13727CB100DFB46D /* b2Collision.h */, + 491333FD13727CB100DFB46D /* b2Distance.cpp */, + 491333FE13727CB100DFB46D /* b2Distance.h */, + 491333FF13727CB100DFB46D /* b2DynamicTree.cpp */, + 4913340013727CB100DFB46D /* b2DynamicTree.h */, + 4913340113727CB100DFB46D /* b2TimeOfImpact.cpp */, + 4913340213727CB100DFB46D /* b2TimeOfImpact.h */, + 4913340313727CB100DFB46D /* Shapes */, ); path = Collision; sourceTree = ""; }; - 491330891372616300DFB46D /* Shapes */ = { + 4913340313727CB100DFB46D /* Shapes */ = { isa = PBXGroup; children = ( - 4913308A1372616300DFB46D /* b2CircleShape.cpp */, - 4913308B1372616300DFB46D /* b2CircleShape.h */, - 4913308C1372616300DFB46D /* b2PolygonShape.cpp */, - 4913308D1372616300DFB46D /* b2PolygonShape.h */, - 4913308E1372616300DFB46D /* b2Shape.h */, + 4913340413727CB100DFB46D /* b2CircleShape.cpp */, + 4913340513727CB100DFB46D /* b2CircleShape.h */, + 4913340613727CB100DFB46D /* b2PolygonShape.cpp */, + 4913340713727CB100DFB46D /* b2PolygonShape.h */, + 4913340813727CB100DFB46D /* b2Shape.h */, ); path = Shapes; sourceTree = ""; }; - 4913308F1372616300DFB46D /* Common */ = { + 4913340913727CB100DFB46D /* Common */ = { isa = PBXGroup; children = ( - 491330901372616300DFB46D /* b2BlockAllocator.cpp */, - 491330911372616300DFB46D /* b2BlockAllocator.h */, - 491330921372616300DFB46D /* b2Math.cpp */, - 491330931372616300DFB46D /* b2Math.h */, - 491330941372616300DFB46D /* b2Settings.cpp */, - 491330951372616300DFB46D /* b2Settings.h */, - 491330961372616300DFB46D /* b2StackAllocator.cpp */, - 491330971372616300DFB46D /* b2StackAllocator.h */, + 4913340A13727CB100DFB46D /* b2BlockAllocator.cpp */, + 4913340B13727CB100DFB46D /* b2BlockAllocator.h */, + 4913340C13727CB100DFB46D /* b2Math.cpp */, + 4913340D13727CB100DFB46D /* b2Math.h */, + 4913340E13727CB100DFB46D /* b2Settings.cpp */, + 4913340F13727CB100DFB46D /* b2Settings.h */, + 4913341013727CB100DFB46D /* b2StackAllocator.cpp */, + 4913341113727CB100DFB46D /* b2StackAllocator.h */, ); path = Common; sourceTree = ""; }; - 491330981372616300DFB46D /* Dynamics */ = { + 4913341213727CB100DFB46D /* Dynamics */ = { isa = PBXGroup; children = ( - 491330991372616300DFB46D /* b2Body.cpp */, - 4913309A1372616300DFB46D /* b2Body.h */, - 4913309B1372616300DFB46D /* b2ContactManager.cpp */, - 4913309C1372616300DFB46D /* b2ContactManager.h */, - 4913309D1372616300DFB46D /* b2Fixture.cpp */, - 4913309E1372616300DFB46D /* b2Fixture.h */, - 4913309F1372616300DFB46D /* b2Island.cpp */, - 491330A01372616300DFB46D /* b2Island.h */, - 491330A11372616300DFB46D /* b2TimeStep.h */, - 491330A21372616300DFB46D /* b2World.cpp */, - 491330A31372616300DFB46D /* b2World.h */, - 491330A41372616300DFB46D /* b2WorldCallbacks.cpp */, - 491330A51372616300DFB46D /* b2WorldCallbacks.h */, - 491330A61372616300DFB46D /* Contacts */, - 491330B31372616300DFB46D /* Joints */, + 4913341313727CB100DFB46D /* b2Body.cpp */, + 4913341413727CB100DFB46D /* b2Body.h */, + 4913341513727CB100DFB46D /* b2ContactManager.cpp */, + 4913341613727CB100DFB46D /* b2ContactManager.h */, + 4913341713727CB100DFB46D /* b2Fixture.cpp */, + 4913341813727CB100DFB46D /* b2Fixture.h */, + 4913341913727CB100DFB46D /* b2Island.cpp */, + 4913341A13727CB100DFB46D /* b2Island.h */, + 4913341B13727CB100DFB46D /* b2TimeStep.h */, + 4913341C13727CB100DFB46D /* b2World.cpp */, + 4913341D13727CB100DFB46D /* b2World.h */, + 4913341E13727CB100DFB46D /* b2WorldCallbacks.cpp */, + 4913341F13727CB100DFB46D /* b2WorldCallbacks.h */, + 4913342013727CB100DFB46D /* Contacts */, + 4913342D13727CB100DFB46D /* Joints */, ); path = Dynamics; sourceTree = ""; }; - 491330A61372616300DFB46D /* Contacts */ = { + 4913342013727CB100DFB46D /* Contacts */ = { isa = PBXGroup; children = ( - 491330A71372616300DFB46D /* b2CircleContact.cpp */, - 491330A81372616300DFB46D /* b2CircleContact.h */, - 491330A91372616300DFB46D /* b2Contact.cpp */, - 491330AA1372616300DFB46D /* b2Contact.h */, - 491330AB1372616300DFB46D /* b2ContactSolver.cpp */, - 491330AC1372616300DFB46D /* b2ContactSolver.h */, - 491330AD1372616300DFB46D /* b2PolygonAndCircleContact.cpp */, - 491330AE1372616300DFB46D /* b2PolygonAndCircleContact.h */, - 491330AF1372616300DFB46D /* b2PolygonContact.cpp */, - 491330B01372616300DFB46D /* b2PolygonContact.h */, - 491330B11372616300DFB46D /* b2TOISolver.cpp */, - 491330B21372616300DFB46D /* b2TOISolver.h */, + 4913342113727CB100DFB46D /* b2CircleContact.cpp */, + 4913342213727CB100DFB46D /* b2CircleContact.h */, + 4913342313727CB100DFB46D /* b2Contact.cpp */, + 4913342413727CB100DFB46D /* b2Contact.h */, + 4913342513727CB100DFB46D /* b2ContactSolver.cpp */, + 4913342613727CB100DFB46D /* b2ContactSolver.h */, + 4913342713727CB100DFB46D /* b2PolygonAndCircleContact.cpp */, + 4913342813727CB100DFB46D /* b2PolygonAndCircleContact.h */, + 4913342913727CB100DFB46D /* b2PolygonContact.cpp */, + 4913342A13727CB100DFB46D /* b2PolygonContact.h */, + 4913342B13727CB100DFB46D /* b2TOISolver.cpp */, + 4913342C13727CB100DFB46D /* b2TOISolver.h */, ); path = Contacts; sourceTree = ""; }; - 491330B31372616300DFB46D /* Joints */ = { + 4913342D13727CB100DFB46D /* Joints */ = { isa = PBXGroup; children = ( - 491330B41372616300DFB46D /* b2DistanceJoint.cpp */, - 491330B51372616300DFB46D /* b2DistanceJoint.h */, - 491330B61372616300DFB46D /* b2FrictionJoint.cpp */, - 491330B71372616300DFB46D /* b2FrictionJoint.h */, - 491330B81372616300DFB46D /* b2GearJoint.cpp */, - 491330B91372616300DFB46D /* b2GearJoint.h */, - 491330BA1372616300DFB46D /* b2Joint.cpp */, - 491330BB1372616300DFB46D /* b2Joint.h */, - 491330BC1372616300DFB46D /* b2LineJoint.cpp */, - 491330BD1372616300DFB46D /* b2LineJoint.h */, - 491330BE1372616300DFB46D /* b2MouseJoint.cpp */, - 491330BF1372616300DFB46D /* b2MouseJoint.h */, - 491330C01372616300DFB46D /* b2PrismaticJoint.cpp */, - 491330C11372616300DFB46D /* b2PrismaticJoint.h */, - 491330C21372616300DFB46D /* b2PulleyJoint.cpp */, - 491330C31372616300DFB46D /* b2PulleyJoint.h */, - 491330C41372616300DFB46D /* b2RevoluteJoint.cpp */, - 491330C51372616300DFB46D /* b2RevoluteJoint.h */, - 491330C61372616300DFB46D /* b2WeldJoint.cpp */, - 491330C71372616300DFB46D /* b2WeldJoint.h */, + 4913342E13727CB100DFB46D /* b2DistanceJoint.cpp */, + 4913342F13727CB100DFB46D /* b2DistanceJoint.h */, + 4913343013727CB100DFB46D /* b2FrictionJoint.cpp */, + 4913343113727CB100DFB46D /* b2FrictionJoint.h */, + 4913343213727CB100DFB46D /* b2GearJoint.cpp */, + 4913343313727CB100DFB46D /* b2GearJoint.h */, + 4913343413727CB100DFB46D /* b2Joint.cpp */, + 4913343513727CB100DFB46D /* b2Joint.h */, + 4913343613727CB100DFB46D /* b2LineJoint.cpp */, + 4913343713727CB100DFB46D /* b2LineJoint.h */, + 4913343813727CB100DFB46D /* b2MouseJoint.cpp */, + 4913343913727CB100DFB46D /* b2MouseJoint.h */, + 4913343A13727CB100DFB46D /* b2PrismaticJoint.cpp */, + 4913343B13727CB100DFB46D /* b2PrismaticJoint.h */, + 4913343C13727CB100DFB46D /* b2PulleyJoint.cpp */, + 4913343D13727CB100DFB46D /* b2PulleyJoint.h */, + 4913343E13727CB100DFB46D /* b2RevoluteJoint.cpp */, + 4913343F13727CB100DFB46D /* b2RevoluteJoint.h */, + 4913344013727CB100DFB46D /* b2WeldJoint.cpp */, + 4913344113727CB100DFB46D /* b2WeldJoint.h */, ); path = Joints; sourceTree = ""; }; - 491331291372630F00DFB46D /* Frameworks */ = { - isa = PBXGroup; - children = ( - 491331271372630700DFB46D /* UIKit.framework */, - 49133122137262F200DFB46D /* Foundation.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -332,42 +332,42 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 491330C81372616300DFB46D /* Box2D.h in Headers */, - 491330CA1372616300DFB46D /* b2BroadPhase.h in Headers */, - 491330CE1372616300DFB46D /* b2Collision.h in Headers */, - 491330D01372616300DFB46D /* b2Distance.h in Headers */, - 491330D21372616300DFB46D /* b2DynamicTree.h in Headers */, - 491330D41372616300DFB46D /* b2TimeOfImpact.h in Headers */, - 491330D61372616300DFB46D /* b2CircleShape.h in Headers */, - 491330D81372616300DFB46D /* b2PolygonShape.h in Headers */, - 491330D91372616300DFB46D /* b2Shape.h in Headers */, - 491330DB1372616300DFB46D /* b2BlockAllocator.h in Headers */, - 491330DD1372616300DFB46D /* b2Math.h in Headers */, - 491330DF1372616300DFB46D /* b2Settings.h in Headers */, - 491330E11372616300DFB46D /* b2StackAllocator.h in Headers */, - 491330E31372616300DFB46D /* b2Body.h in Headers */, - 491330E51372616300DFB46D /* b2ContactManager.h in Headers */, - 491330E71372616300DFB46D /* b2Fixture.h in Headers */, - 491330E91372616300DFB46D /* b2Island.h in Headers */, - 491330EA1372616300DFB46D /* b2TimeStep.h in Headers */, - 491330EC1372616300DFB46D /* b2World.h in Headers */, - 491330EE1372616300DFB46D /* b2WorldCallbacks.h in Headers */, - 491330F01372616300DFB46D /* b2CircleContact.h in Headers */, - 491330F21372616300DFB46D /* b2Contact.h in Headers */, - 491330F41372616300DFB46D /* b2ContactSolver.h in Headers */, - 491330F61372616300DFB46D /* b2PolygonAndCircleContact.h in Headers */, - 491330F81372616300DFB46D /* b2PolygonContact.h in Headers */, - 491330FA1372616300DFB46D /* b2TOISolver.h in Headers */, - 491330FC1372616300DFB46D /* b2DistanceJoint.h in Headers */, - 491330FE1372616300DFB46D /* b2FrictionJoint.h in Headers */, - 491331001372616300DFB46D /* b2GearJoint.h in Headers */, - 491331021372616300DFB46D /* b2Joint.h in Headers */, - 491331041372616300DFB46D /* b2LineJoint.h in Headers */, - 491331061372616300DFB46D /* b2MouseJoint.h in Headers */, - 491331081372616300DFB46D /* b2PrismaticJoint.h in Headers */, - 4913310A1372616300DFB46D /* b2PulleyJoint.h in Headers */, - 4913310C1372616300DFB46D /* b2RevoluteJoint.h in Headers */, - 4913310E1372616300DFB46D /* b2WeldJoint.h in Headers */, + 4913344213727CB100DFB46D /* Box2D.h in Headers */, + 4913344413727CB100DFB46D /* b2BroadPhase.h in Headers */, + 4913344813727CB100DFB46D /* b2Collision.h in Headers */, + 4913344A13727CB100DFB46D /* b2Distance.h in Headers */, + 4913344C13727CB100DFB46D /* b2DynamicTree.h in Headers */, + 4913344E13727CB100DFB46D /* b2TimeOfImpact.h in Headers */, + 4913345013727CB100DFB46D /* b2CircleShape.h in Headers */, + 4913345213727CB100DFB46D /* b2PolygonShape.h in Headers */, + 4913345313727CB100DFB46D /* b2Shape.h in Headers */, + 4913345513727CB100DFB46D /* b2BlockAllocator.h in Headers */, + 4913345713727CB100DFB46D /* b2Math.h in Headers */, + 4913345913727CB100DFB46D /* b2Settings.h in Headers */, + 4913345B13727CB100DFB46D /* b2StackAllocator.h in Headers */, + 4913345D13727CB100DFB46D /* b2Body.h in Headers */, + 4913345F13727CB100DFB46D /* b2ContactManager.h in Headers */, + 4913346113727CB100DFB46D /* b2Fixture.h in Headers */, + 4913346313727CB100DFB46D /* b2Island.h in Headers */, + 4913346413727CB100DFB46D /* b2TimeStep.h in Headers */, + 4913346613727CB100DFB46D /* b2World.h in Headers */, + 4913346813727CB100DFB46D /* b2WorldCallbacks.h in Headers */, + 4913346A13727CB100DFB46D /* b2CircleContact.h in Headers */, + 4913346C13727CB100DFB46D /* b2Contact.h in Headers */, + 4913346E13727CB100DFB46D /* b2ContactSolver.h in Headers */, + 4913347013727CB100DFB46D /* b2PolygonAndCircleContact.h in Headers */, + 4913347213727CB100DFB46D /* b2PolygonContact.h in Headers */, + 4913347413727CB100DFB46D /* b2TOISolver.h in Headers */, + 4913347613727CB100DFB46D /* b2DistanceJoint.h in Headers */, + 4913347813727CB100DFB46D /* b2FrictionJoint.h in Headers */, + 4913347A13727CB100DFB46D /* b2GearJoint.h in Headers */, + 4913347C13727CB100DFB46D /* b2Joint.h in Headers */, + 4913347E13727CB100DFB46D /* b2LineJoint.h in Headers */, + 4913348013727CB100DFB46D /* b2MouseJoint.h in Headers */, + 4913348213727CB100DFB46D /* b2PrismaticJoint.h in Headers */, + 4913348413727CB100DFB46D /* b2PulleyJoint.h in Headers */, + 4913348613727CB100DFB46D /* b2RevoluteJoint.h in Headers */, + 4913348813727CB100DFB46D /* b2WeldJoint.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -418,41 +418,41 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 491330C91372616300DFB46D /* b2BroadPhase.cpp in Sources */, - 491330CB1372616300DFB46D /* b2CollideCircle.cpp in Sources */, - 491330CC1372616300DFB46D /* b2CollidePolygon.cpp in Sources */, - 491330CD1372616300DFB46D /* b2Collision.cpp in Sources */, - 491330CF1372616300DFB46D /* b2Distance.cpp in Sources */, - 491330D11372616300DFB46D /* b2DynamicTree.cpp in Sources */, - 491330D31372616300DFB46D /* b2TimeOfImpact.cpp in Sources */, - 491330D51372616300DFB46D /* b2CircleShape.cpp in Sources */, - 491330D71372616300DFB46D /* b2PolygonShape.cpp in Sources */, - 491330DA1372616300DFB46D /* b2BlockAllocator.cpp in Sources */, - 491330DC1372616300DFB46D /* b2Math.cpp in Sources */, - 491330DE1372616300DFB46D /* b2Settings.cpp in Sources */, - 491330E01372616300DFB46D /* b2StackAllocator.cpp in Sources */, - 491330E21372616300DFB46D /* b2Body.cpp in Sources */, - 491330E41372616300DFB46D /* b2ContactManager.cpp in Sources */, - 491330E61372616300DFB46D /* b2Fixture.cpp in Sources */, - 491330E81372616300DFB46D /* b2Island.cpp in Sources */, - 491330EB1372616300DFB46D /* b2World.cpp in Sources */, - 491330ED1372616300DFB46D /* b2WorldCallbacks.cpp in Sources */, - 491330EF1372616300DFB46D /* b2CircleContact.cpp in Sources */, - 491330F11372616300DFB46D /* b2Contact.cpp in Sources */, - 491330F31372616300DFB46D /* b2ContactSolver.cpp in Sources */, - 491330F51372616300DFB46D /* b2PolygonAndCircleContact.cpp in Sources */, - 491330F71372616300DFB46D /* b2PolygonContact.cpp in Sources */, - 491330F91372616300DFB46D /* b2TOISolver.cpp in Sources */, - 491330FB1372616300DFB46D /* b2DistanceJoint.cpp in Sources */, - 491330FD1372616300DFB46D /* b2FrictionJoint.cpp in Sources */, - 491330FF1372616300DFB46D /* b2GearJoint.cpp in Sources */, - 491331011372616300DFB46D /* b2Joint.cpp in Sources */, - 491331031372616300DFB46D /* b2LineJoint.cpp in Sources */, - 491331051372616300DFB46D /* b2MouseJoint.cpp in Sources */, - 491331071372616300DFB46D /* b2PrismaticJoint.cpp in Sources */, - 491331091372616300DFB46D /* b2PulleyJoint.cpp in Sources */, - 4913310B1372616300DFB46D /* b2RevoluteJoint.cpp in Sources */, - 4913310D1372616300DFB46D /* b2WeldJoint.cpp in Sources */, + 4913344313727CB100DFB46D /* b2BroadPhase.cpp in Sources */, + 4913344513727CB100DFB46D /* b2CollideCircle.cpp in Sources */, + 4913344613727CB100DFB46D /* b2CollidePolygon.cpp in Sources */, + 4913344713727CB100DFB46D /* b2Collision.cpp in Sources */, + 4913344913727CB100DFB46D /* b2Distance.cpp in Sources */, + 4913344B13727CB100DFB46D /* b2DynamicTree.cpp in Sources */, + 4913344D13727CB100DFB46D /* b2TimeOfImpact.cpp in Sources */, + 4913344F13727CB100DFB46D /* b2CircleShape.cpp in Sources */, + 4913345113727CB100DFB46D /* b2PolygonShape.cpp in Sources */, + 4913345413727CB100DFB46D /* b2BlockAllocator.cpp in Sources */, + 4913345613727CB100DFB46D /* b2Math.cpp in Sources */, + 4913345813727CB100DFB46D /* b2Settings.cpp in Sources */, + 4913345A13727CB100DFB46D /* b2StackAllocator.cpp in Sources */, + 4913345C13727CB100DFB46D /* b2Body.cpp in Sources */, + 4913345E13727CB100DFB46D /* b2ContactManager.cpp in Sources */, + 4913346013727CB100DFB46D /* b2Fixture.cpp in Sources */, + 4913346213727CB100DFB46D /* b2Island.cpp in Sources */, + 4913346513727CB100DFB46D /* b2World.cpp in Sources */, + 4913346713727CB100DFB46D /* b2WorldCallbacks.cpp in Sources */, + 4913346913727CB100DFB46D /* b2CircleContact.cpp in Sources */, + 4913346B13727CB100DFB46D /* b2Contact.cpp in Sources */, + 4913346D13727CB100DFB46D /* b2ContactSolver.cpp in Sources */, + 4913346F13727CB100DFB46D /* b2PolygonAndCircleContact.cpp in Sources */, + 4913347113727CB100DFB46D /* b2PolygonContact.cpp in Sources */, + 4913347313727CB100DFB46D /* b2TOISolver.cpp in Sources */, + 4913347513727CB100DFB46D /* b2DistanceJoint.cpp in Sources */, + 4913347713727CB100DFB46D /* b2FrictionJoint.cpp in Sources */, + 4913347913727CB100DFB46D /* b2GearJoint.cpp in Sources */, + 4913347B13727CB100DFB46D /* b2Joint.cpp in Sources */, + 4913347D13727CB100DFB46D /* b2LineJoint.cpp in Sources */, + 4913347F13727CB100DFB46D /* b2MouseJoint.cpp in Sources */, + 4913348113727CB100DFB46D /* b2PrismaticJoint.cpp in Sources */, + 4913348313727CB100DFB46D /* b2PulleyJoint.cpp in Sources */, + 4913348513727CB100DFB46D /* b2RevoluteJoint.cpp in Sources */, + 4913348713727CB100DFB46D /* b2WeldJoint.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/libs/box2d/box2d-iphone.xcodeproj/project.pbxproj b/libs/box2d/box2d-iphone.xcodeproj/project.pbxproj index 6e1af9d..65cf69b 100644 --- a/libs/box2d/box2d-iphone.xcodeproj/project.pbxproj +++ b/libs/box2d/box2d-iphone.xcodeproj/project.pbxproj @@ -21,9 +21,7 @@ 4913323913726B1F00DFB46D /* BodyTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913320E13726B1F00DFB46D /* BodyTypes.h */; }; 4913323A13726B1F00DFB46D /* Breakable.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913320F13726B1F00DFB46D /* Breakable.h */; }; 4913323B13726B1F00DFB46D /* Bridge.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913321013726B1F00DFB46D /* Bridge.h */; }; - 4913323C13726B1F00DFB46D /* BulletTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913321113726B1F00DFB46D /* BulletTest.h */; }; 4913323D13726B1F00DFB46D /* Cantilever.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913321213726B1F00DFB46D /* Cantilever.h */; }; - 4913323E13726B1F00DFB46D /* Car.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913321313726B1F00DFB46D /* Car.h */; }; 4913323F13726B1F00DFB46D /* Chain.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913321413726B1F00DFB46D /* Chain.h */; }; 4913324013726B1F00DFB46D /* CharacterCollision.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913321513726B1F00DFB46D /* CharacterCollision.h */; }; 4913324113726B1F00DFB46D /* CollisionFiltering.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913321613726B1F00DFB46D /* CollisionFiltering.h */; }; @@ -35,26 +33,20 @@ 4913324713726B1F00DFB46D /* Dominos.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913321C13726B1F00DFB46D /* Dominos.h */; }; 4913324813726B1F00DFB46D /* DynamicTreeTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913321D13726B1F00DFB46D /* DynamicTreeTest.h */; }; 4913324913726B1F00DFB46D /* EdgeShapes.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913321E13726B1F00DFB46D /* EdgeShapes.h */; }; - 4913324A13726B1F00DFB46D /* EdgeTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913321F13726B1F00DFB46D /* EdgeTest.h */; }; 4913324B13726B1F00DFB46D /* Gears.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913322013726B1F00DFB46D /* Gears.h */; }; 4913324C13726B1F00DFB46D /* LineJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913322113726B1F00DFB46D /* LineJoint.h */; }; 4913324D13726B1F00DFB46D /* OneSidedPlatform.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913322213726B1F00DFB46D /* OneSidedPlatform.h */; }; - 4913324E13726B1F00DFB46D /* Pinball.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913322313726B1F00DFB46D /* Pinball.h */; }; 4913324F13726B1F00DFB46D /* PolyCollision.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913322413726B1F00DFB46D /* PolyCollision.h */; }; 4913325013726B1F00DFB46D /* PolyShapes.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913322513726B1F00DFB46D /* PolyShapes.h */; }; 4913325113726B1F00DFB46D /* Prismatic.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913322613726B1F00DFB46D /* Prismatic.h */; }; 4913325213726B1F00DFB46D /* Pulleys.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913322713726B1F00DFB46D /* Pulleys.h */; }; 4913325313726B1F00DFB46D /* Pyramid.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913322813726B1F00DFB46D /* Pyramid.h */; }; 4913325413726B1F00DFB46D /* RayCast.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913322913726B1F00DFB46D /* RayCast.h */; }; - 4913325513726B1F00DFB46D /* Revolute.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913322A13726B1F00DFB46D /* Revolute.h */; }; - 4913325613726B1F00DFB46D /* Rope.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913322B13726B1F00DFB46D /* Rope.h */; }; - 4913325713726B1F00DFB46D /* RopeJoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913322C13726B1F00DFB46D /* RopeJoint.h */; }; 4913325813726B1F00DFB46D /* SensorTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913322D13726B1F00DFB46D /* SensorTest.h */; }; 4913325913726B1F00DFB46D /* ShapeEditing.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913322E13726B1F00DFB46D /* ShapeEditing.h */; }; 4913325A13726B1F00DFB46D /* SliderCrank.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913322F13726B1F00DFB46D /* SliderCrank.h */; }; 4913325B13726B1F00DFB46D /* SphereStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913323013726B1F00DFB46D /* SphereStack.h */; }; 4913325C13726B1F00DFB46D /* TheoJansen.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913323113726B1F00DFB46D /* TheoJansen.h */; }; - 4913325D13726B1F00DFB46D /* Tiles.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913323213726B1F00DFB46D /* Tiles.h */; }; 4913325E13726B1F00DFB46D /* TimeOfImpact.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913323313726B1F00DFB46D /* TimeOfImpact.h */; }; 4913325F13726B1F00DFB46D /* VaryingFriction.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913323413726B1F00DFB46D /* VaryingFriction.h */; }; 4913326013726B1F00DFB46D /* VaryingRestitution.h in Headers */ = {isa = PBXBuildFile; fileRef = 4913323513726B1F00DFB46D /* VaryingRestitution.h */; }; @@ -109,9 +101,7 @@ 4913320E13726B1F00DFB46D /* BodyTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BodyTypes.h; sourceTree = ""; }; 4913320F13726B1F00DFB46D /* Breakable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Breakable.h; sourceTree = ""; }; 4913321013726B1F00DFB46D /* Bridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Bridge.h; sourceTree = ""; }; - 4913321113726B1F00DFB46D /* BulletTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BulletTest.h; sourceTree = ""; }; 4913321213726B1F00DFB46D /* Cantilever.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Cantilever.h; sourceTree = ""; }; - 4913321313726B1F00DFB46D /* Car.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Car.h; sourceTree = ""; }; 4913321413726B1F00DFB46D /* Chain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Chain.h; sourceTree = ""; }; 4913321513726B1F00DFB46D /* CharacterCollision.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CharacterCollision.h; sourceTree = ""; }; 4913321613726B1F00DFB46D /* CollisionFiltering.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollisionFiltering.h; sourceTree = ""; }; @@ -123,26 +113,20 @@ 4913321C13726B1F00DFB46D /* Dominos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Dominos.h; sourceTree = ""; }; 4913321D13726B1F00DFB46D /* DynamicTreeTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DynamicTreeTest.h; sourceTree = ""; }; 4913321E13726B1F00DFB46D /* EdgeShapes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EdgeShapes.h; sourceTree = ""; }; - 4913321F13726B1F00DFB46D /* EdgeTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EdgeTest.h; sourceTree = ""; }; 4913322013726B1F00DFB46D /* Gears.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Gears.h; sourceTree = ""; }; 4913322113726B1F00DFB46D /* LineJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LineJoint.h; sourceTree = ""; }; 4913322213726B1F00DFB46D /* OneSidedPlatform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OneSidedPlatform.h; sourceTree = ""; }; - 4913322313726B1F00DFB46D /* Pinball.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Pinball.h; sourceTree = ""; }; 4913322413726B1F00DFB46D /* PolyCollision.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PolyCollision.h; sourceTree = ""; }; 4913322513726B1F00DFB46D /* PolyShapes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PolyShapes.h; sourceTree = ""; }; 4913322613726B1F00DFB46D /* Prismatic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Prismatic.h; sourceTree = ""; }; 4913322713726B1F00DFB46D /* Pulleys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Pulleys.h; sourceTree = ""; }; 4913322813726B1F00DFB46D /* Pyramid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Pyramid.h; sourceTree = ""; }; 4913322913726B1F00DFB46D /* RayCast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RayCast.h; sourceTree = ""; }; - 4913322A13726B1F00DFB46D /* Revolute.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Revolute.h; sourceTree = ""; }; - 4913322B13726B1F00DFB46D /* Rope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Rope.h; sourceTree = ""; }; - 4913322C13726B1F00DFB46D /* RopeJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RopeJoint.h; sourceTree = ""; }; 4913322D13726B1F00DFB46D /* SensorTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SensorTest.h; sourceTree = ""; }; 4913322E13726B1F00DFB46D /* ShapeEditing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapeEditing.h; sourceTree = ""; }; 4913322F13726B1F00DFB46D /* SliderCrank.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SliderCrank.h; sourceTree = ""; }; 4913323013726B1F00DFB46D /* SphereStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SphereStack.h; sourceTree = ""; }; 4913323113726B1F00DFB46D /* TheoJansen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TheoJansen.h; sourceTree = ""; }; - 4913323213726B1F00DFB46D /* Tiles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tiles.h; sourceTree = ""; }; 4913323313726B1F00DFB46D /* TimeOfImpact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TimeOfImpact.h; sourceTree = ""; }; 4913323413726B1F00DFB46D /* VaryingFriction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VaryingFriction.h; sourceTree = ""; }; 4913323513726B1F00DFB46D /* VaryingRestitution.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VaryingRestitution.h; sourceTree = ""; }; @@ -259,9 +243,7 @@ 4913320E13726B1F00DFB46D /* BodyTypes.h */, 4913320F13726B1F00DFB46D /* Breakable.h */, 4913321013726B1F00DFB46D /* Bridge.h */, - 4913321113726B1F00DFB46D /* BulletTest.h */, 4913321213726B1F00DFB46D /* Cantilever.h */, - 4913321313726B1F00DFB46D /* Car.h */, 4913321413726B1F00DFB46D /* Chain.h */, 4913321513726B1F00DFB46D /* CharacterCollision.h */, 4913321613726B1F00DFB46D /* CollisionFiltering.h */, @@ -273,26 +255,20 @@ 4913321C13726B1F00DFB46D /* Dominos.h */, 4913321D13726B1F00DFB46D /* DynamicTreeTest.h */, 4913321E13726B1F00DFB46D /* EdgeShapes.h */, - 4913321F13726B1F00DFB46D /* EdgeTest.h */, 4913322013726B1F00DFB46D /* Gears.h */, 4913322113726B1F00DFB46D /* LineJoint.h */, 4913322213726B1F00DFB46D /* OneSidedPlatform.h */, - 4913322313726B1F00DFB46D /* Pinball.h */, 4913322413726B1F00DFB46D /* PolyCollision.h */, 4913322513726B1F00DFB46D /* PolyShapes.h */, 4913322613726B1F00DFB46D /* Prismatic.h */, 4913322713726B1F00DFB46D /* Pulleys.h */, 4913322813726B1F00DFB46D /* Pyramid.h */, 4913322913726B1F00DFB46D /* RayCast.h */, - 4913322A13726B1F00DFB46D /* Revolute.h */, - 4913322B13726B1F00DFB46D /* Rope.h */, - 4913322C13726B1F00DFB46D /* RopeJoint.h */, 4913322D13726B1F00DFB46D /* SensorTest.h */, 4913322E13726B1F00DFB46D /* ShapeEditing.h */, 4913322F13726B1F00DFB46D /* SliderCrank.h */, 4913323013726B1F00DFB46D /* SphereStack.h */, 4913323113726B1F00DFB46D /* TheoJansen.h */, - 4913323213726B1F00DFB46D /* Tiles.h */, 4913323313726B1F00DFB46D /* TimeOfImpact.h */, 4913323413726B1F00DFB46D /* VaryingFriction.h */, 4913323513726B1F00DFB46D /* VaryingRestitution.h */, @@ -321,9 +297,7 @@ 4913323913726B1F00DFB46D /* BodyTypes.h in Headers */, 4913323A13726B1F00DFB46D /* Breakable.h in Headers */, 4913323B13726B1F00DFB46D /* Bridge.h in Headers */, - 4913323C13726B1F00DFB46D /* BulletTest.h in Headers */, 4913323D13726B1F00DFB46D /* Cantilever.h in Headers */, - 4913323E13726B1F00DFB46D /* Car.h in Headers */, 4913323F13726B1F00DFB46D /* Chain.h in Headers */, 4913324013726B1F00DFB46D /* CharacterCollision.h in Headers */, 4913324113726B1F00DFB46D /* CollisionFiltering.h in Headers */, @@ -335,26 +309,20 @@ 4913324713726B1F00DFB46D /* Dominos.h in Headers */, 4913324813726B1F00DFB46D /* DynamicTreeTest.h in Headers */, 4913324913726B1F00DFB46D /* EdgeShapes.h in Headers */, - 4913324A13726B1F00DFB46D /* EdgeTest.h in Headers */, 4913324B13726B1F00DFB46D /* Gears.h in Headers */, 4913324C13726B1F00DFB46D /* LineJoint.h in Headers */, 4913324D13726B1F00DFB46D /* OneSidedPlatform.h in Headers */, - 4913324E13726B1F00DFB46D /* Pinball.h in Headers */, 4913324F13726B1F00DFB46D /* PolyCollision.h in Headers */, 4913325013726B1F00DFB46D /* PolyShapes.h in Headers */, 4913325113726B1F00DFB46D /* Prismatic.h in Headers */, 4913325213726B1F00DFB46D /* Pulleys.h in Headers */, 4913325313726B1F00DFB46D /* Pyramid.h in Headers */, 4913325413726B1F00DFB46D /* RayCast.h in Headers */, - 4913325513726B1F00DFB46D /* Revolute.h in Headers */, - 4913325613726B1F00DFB46D /* Rope.h in Headers */, - 4913325713726B1F00DFB46D /* RopeJoint.h in Headers */, 4913325813726B1F00DFB46D /* SensorTest.h in Headers */, 4913325913726B1F00DFB46D /* ShapeEditing.h in Headers */, 4913325A13726B1F00DFB46D /* SliderCrank.h in Headers */, 4913325B13726B1F00DFB46D /* SphereStack.h in Headers */, 4913325C13726B1F00DFB46D /* TheoJansen.h in Headers */, - 4913325D13726B1F00DFB46D /* Tiles.h in Headers */, 4913325E13726B1F00DFB46D /* TimeOfImpact.h in Headers */, 4913325F13726B1F00DFB46D /* VaryingFriction.h in Headers */, 4913326013726B1F00DFB46D /* VaryingRestitution.h in Headers */, diff --git a/libs/box2d/iPhone/Classes/Box2DView.mm b/libs/box2d/iPhone/Classes/Box2DView.mm index edbf9ef..11743b0 100644 --- a/libs/box2d/iPhone/Classes/Box2DView.mm +++ b/libs/box2d/iPhone/Classes/Box2DView.mm @@ -66,8 +66,6 @@ Settings settings; [[UIAccelerometer sharedAccelerometer] setUpdateInterval:(1.0 / kAccelerometerFrequency)]; [[UIAccelerometer sharedAccelerometer] setDelegate:self]; - - //[self setMultipleTouchEnabled:YES]; } @@ -248,9 +246,7 @@ Settings settings; //printf("Screen touched %f,%f -> %f,%f\n",touchLocation.x,touchLocation.y,worldPosition.x,worldPosition.y); lastScreenTouch=touchLocation; lastWorldTouch=worldPosition; - b2Vec2 p = b2Vec2(lastWorldTouch.x,lastWorldTouch.y); - test->MouseDown(p); - //test->ShiftMouseDown(p); + test->MouseDown(b2Vec2(lastWorldTouch.x,lastWorldTouch.y)); if (!test->m_mouseJoint) panning=true; } diff --git a/libs/box2d/iPhone/Classes/GLES-Render.h b/libs/box2d/iPhone/Classes/GLES-Render.h index 8e02a74..2551666 100644 --- a/libs/box2d/iPhone/Classes/GLES-Render.h +++ b/libs/box2d/iPhone/Classes/GLES-Render.h @@ -32,7 +32,7 @@ struct b2AABB; // This class implements debug drawing callbacks that are invoked // inside b2World::Step. -class GLESDebugDraw : public b2Draw +class GLESDebugDraw : public b2DebugDraw { public: void DrawPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color); diff --git a/libs/box2d/iPhone/Classes/TestEntriesViewController.mm b/libs/box2d/iPhone/Classes/TestEntriesViewController.mm index bb8e1ac..49eb94e 100644 --- a/libs/box2d/iPhone/Classes/TestEntriesViewController.mm +++ b/libs/box2d/iPhone/Classes/TestEntriesViewController.mm @@ -57,7 +57,7 @@ TestEntry* e = g_testEntries; e+=indexPath.row; - cell.textLabel.text = [NSString stringWithUTF8String:e->name]; + [cell setText:[NSString stringWithCString:e->name]]; return cell; } diff --git a/libs/box2d/iPhone/Classes/iPhoneTest.h b/libs/box2d/iPhone/Classes/iPhoneTest.h index c7c767a..dc82ed5 100644 --- a/libs/box2d/iPhone/Classes/iPhoneTest.h +++ b/libs/box2d/iPhone/Classes/iPhoneTest.h @@ -58,28 +58,25 @@ inline float32 RandomFloat(float32 lo, float32 hi) struct Settings { Settings() : - viewCenter(0.0f, 20.0f), - hz(60.0f), - velocityIterations(8), - positionIterations(3), - drawShapes(1), - drawJoints(1), - drawAABBs(0), - drawPairs(0), - drawContactPoints(0), - drawContactNormals(0), - drawContactForces(0), - drawFrictionForces(0), - drawCOMs(0), - drawStats(0), - enableWarmStarting(1), - enableContinuous(1), - enableSubStepping(0), - pause(0), - singleStep(0) - {} - - b2Vec2 viewCenter; + hz(60.0f), + velocityIterations(10), + positionIterations(4), + drawStats(0), + drawShapes(1), + drawJoints(1), + drawAABBs(0), + drawPairs(0), + drawContactPoints(0), + drawContactNormals(0), + drawContactForces(0), + drawFrictionForces(0), + drawCOMs(0), + enableWarmStarting(1), + enableContinuous(1), + pause(0), + singleStep(0) + {} + float32 hz; int32 velocityIterations; int32 positionIterations; @@ -95,7 +92,6 @@ struct Settings int32 drawStats; int32 enableWarmStarting; int32 enableContinuous; - int32 enableSubStepping; int32 pause; int32 singleStep; }; diff --git a/libs/box2d/iPhone/Classes/iPhoneTest.mm b/libs/box2d/iPhone/Classes/iPhoneTest.mm index faf08df..16cc5da 100644 --- a/libs/box2d/iPhone/Classes/iPhoneTest.mm +++ b/libs/box2d/iPhone/Classes/iPhoneTest.mm @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Erin Catto http://www.gphysics.com +* Copyright (c) 2006-2007 Erin Catto http://www.gphysics.com * * iPhone port by Simon Oliver - http://www.simonoliver.com - http://www.handcircus.com * @@ -46,16 +46,16 @@ Test::Test() m_textLine = 30; m_mouseJoint = NULL; m_pointCount = 0; - + m_destructionListener.test = this; m_world->SetDestructionListener(&m_destructionListener); m_world->SetContactListener(this); m_world->SetDebugDraw(&m_debugDraw); m_bombSpawning = false; - + m_stepCount = 0; - + b2BodyDef bodyDef; m_groundBody = m_world->CreateBody(&bodyDef); } @@ -79,21 +79,21 @@ void Test::SetGravity( float x, float y) void Test::PreSolve(b2Contact* contact, const b2Manifold* oldManifold) { const b2Manifold* manifold = contact->GetManifold(); - + if (manifold->pointCount == 0) { return; } - + b2Fixture* fixtureA = contact->GetFixtureA(); b2Fixture* fixtureB = contact->GetFixtureB(); - + b2PointState state1[b2_maxManifoldPoints], state2[b2_maxManifoldPoints]; b2GetPointStates(state1, state2, oldManifold, manifold); - + b2WorldManifold worldManifold; contact->GetWorldManifold(&worldManifold); - + for (int32 i = 0; i < manifold->pointCount && m_pointCount < k_maxContactPoints; ++i) { ContactPoint* cp = m_points + m_pointCount; @@ -112,36 +112,37 @@ void Test::DrawTitle(int x, int y, const char *string) } class QueryCallback : public b2QueryCallback -{ -public: - QueryCallback(const b2Vec2& point) - { - m_point = point; - m_fixture = NULL; - } - - bool ReportFixture(b2Fixture* fixture) { - b2Body* body = fixture->GetBody(); - if (body->GetType() == b2_dynamicBody) + public: + QueryCallback(const b2Vec2& point) { - bool inside = fixture->TestPoint(m_point); - if (inside) + m_point = point; + m_fixture = NULL; + } + + bool ReportFixture(b2Fixture* fixture) + { + b2Body* body = fixture->GetBody(); + if (body->GetType() == b2_dynamicBody) { - m_fixture = fixture; - - // We are done, terminate the query. - return false; + bool inside = fixture->TestPoint(m_point); + if (inside) + { + m_fixture = fixture; + + // We are done, terminate the query. + return false; + } } + + // Continue the query. + return true; } + + b2Vec2 m_point; + b2Fixture* m_fixture; + }; - // Continue the query. - return true; - } - - b2Vec2 m_point; - b2Fixture* m_fixture; -}; void Test::MouseDown(const b2Vec2& p) { @@ -151,18 +152,18 @@ void Test::MouseDown(const b2Vec2& p) { return; } - + // Make a small box. b2AABB aabb; b2Vec2 d; d.Set(0.001f, 0.001f); aabb.lowerBound = p - d; aabb.upperBound = p + d; - + // Query the world for overlapping shapes. QueryCallback callback(p); m_world->QueryAABB(&callback, aabb); - + if (callback.m_fixture) { b2Body* body = callback.m_fixture->GetBody(); @@ -186,14 +187,14 @@ void Test::SpawnBomb(const b2Vec2& worldPt) m_bombSpawnPoint = worldPt; m_bombSpawning = true; } - + void Test::CompleteBombSpawn(const b2Vec2& p) { if (m_bombSpawning == false) { return; } - + const float multiplier = 30.0f; b2Vec2 vel = m_bombSpawnPoint - p; vel *= multiplier; @@ -209,7 +210,7 @@ void Test::ShiftMouseDown(const b2Vec2& p) { return; } - + SpawnBomb(p); } @@ -251,7 +252,7 @@ void Test::LaunchBomb(const b2Vec2& position, const b2Vec2& velocity) m_world->DestroyBody(m_bomb); m_bomb = NULL; } - + b2BodyDef bd; bd.type = b2_dynamicBody; bd.position = position; @@ -261,11 +262,11 @@ void Test::LaunchBomb(const b2Vec2& position, const b2Vec2& velocity) b2CircleShape circle; circle.m_radius = 0.3f; - + b2FixtureDef fd; fd.shape = &circle; fd.density = 20.0f; - fd.restitution = 0.0f; + fd.restitution = 0.1f; b2Vec2 minV = position - b2Vec2(0.3f,0.3f); b2Vec2 maxV = position + b2Vec2(0.3f,0.3f); @@ -273,14 +274,14 @@ void Test::LaunchBomb(const b2Vec2& position, const b2Vec2& velocity) b2AABB aabb; aabb.lowerBound = minV; aabb.upperBound = maxV; - + m_bomb->CreateFixture(&fd); } void Test::Step(Settings* settings) { float32 timeStep = settings->hz > 0.0f ? 1.0f / settings->hz : float32(0.0f); - + if (settings->pause) { if (settings->singleStep) @@ -291,94 +292,89 @@ void Test::Step(Settings* settings) { timeStep = 0.0f; } - + m_debugDraw.DrawString(5, m_textLine, "****PAUSED****"); m_textLine += 15; } - + uint32 flags = 0; - flags += settings->drawShapes * b2Draw::e_shapeBit; - flags += settings->drawJoints * b2Draw::e_jointBit; - flags += settings->drawAABBs * b2Draw::e_aabbBit; - flags += settings->drawPairs * b2Draw::e_pairBit; - flags += settings->drawCOMs * b2Draw::e_centerOfMassBit; + flags += settings->drawShapes * b2DebugDraw::e_shapeBit; + flags += settings->drawJoints * b2DebugDraw::e_jointBit; + flags += settings->drawAABBs * b2DebugDraw::e_aabbBit; + flags += settings->drawPairs * b2DebugDraw::e_pairBit; + flags += settings->drawCOMs * b2DebugDraw::e_centerOfMassBit; m_debugDraw.SetFlags(flags); - + m_world->SetWarmStarting(settings->enableWarmStarting > 0); m_world->SetContinuousPhysics(settings->enableContinuous > 0); - m_world->SetSubStepping(settings->enableSubStepping > 0); - + m_pointCount = 0; - + m_world->Step(timeStep, settings->velocityIterations, settings->positionIterations); - + m_world->DrawDebugData(); - + if (timeStep > 0.0f) { ++m_stepCount; } - + if (settings->drawStats) { m_debugDraw.DrawString(5, m_textLine, "bodies/contacts/joints/proxies = %d/%d/%d", - m_world->GetBodyCount(), m_world->GetContactCount(), m_world->GetJointCount(), m_world->GetProxyCount()); + m_world->GetBodyCount(), m_world->GetContactCount(), m_world->GetJointCount(), m_world->GetProxyCount()); m_textLine += 15; + +// m_debugDraw.DrawString(5, m_textLine, "heap bytes = %d", b2_byteCount); +// m_textLine += 15; } - + if (m_mouseJoint) { - b2Vec2 p1 = m_mouseJoint->GetAnchorB(); - b2Vec2 p2 = m_mouseJoint->GetTarget(); - - glPointSize(4.0f); - glColor4f(0.0f, 1.0f, 0.0f, 1.0f); - GLbyte verts1[2 * 3] = { - p1.x, p1.y, 0.0f, - p2.x, p2.y, 0.0f - }; - glVertexPointer(3, GL_BYTE, 0, verts1); - glDrawArrays(GL_POINTS, 0, 2); - glPointSize(1.0f); - - glColor4f(0.8f, 0.8f, 0.8f, 1.0f); - GLbyte verts2[2 * 3] = { - p1.x, p1.y, 0.0f, - p2.x, p2.y, 0.0f - }; - glVertexPointer(3, GL_BYTE, 0, verts2); - glDrawArrays(GL_LINES, 0, 2); +// b2Body* body = m_mouseJoint->GetBodyB(); +// b2Vec2 p1 = body->GetWorldPoint(m_mouseJoint->m_localAnchor); +// b2Vec2 p2 = m_mouseJoint->m_target; +// +// glPointSize(4.0f); +// glColor3f(0.0f, 1.0f, 0.0f); +// glBegin(GL_POINTS); +// glVertex2f(p1.x, p1.y); +// glVertex2f(p2.x, p2.y); +// glEnd(); +// glPointSize(1.0f); +// +// glColor3f(0.8f, 0.8f, 0.8f); +// glBegin(GL_LINES); +// glVertex2f(p1.x, p1.y); +// glVertex2f(p2.x, p2.y); +// glEnd(); } if (m_bombSpawning) { - glPointSize(4.0f); - glColor4f(0.0f, 0.0f, 1.0f, 1.0f); - glColor4f(0.0f, 0.0f, 1.0f, 1.0f); - GLbyte verts1[1 * 3] = { - m_bombSpawnPoint.x, m_bombSpawnPoint.y, 0.0f - }; - glVertexPointer(3, GL_BYTE, 0, verts1); - glDrawArrays(GL_POINTS, 0, 1); - - glColor4f(0.8f, 0.8f, 0.8f, 1.0f); - GLbyte verts2[2 * 3] = { - m_mouseWorld.x, m_mouseWorld.y, 0.0f, - m_bombSpawnPoint.x, m_bombSpawnPoint.y, 0.0f - }; - glVertexPointer(3, GL_BYTE, 0, verts2); - glDrawArrays(GL_LINES, 0, 2); +// glPointSize(4.0f); +// glColor3f(0.0f, 0.0f, 1.0f); +// glBegin(GL_POINTS); +// glColor3f(0.0f, 0.0f, 1.0f); +// glVertex2f(m_bombSpawnPoint.x, m_bombSpawnPoint.y); +// glEnd(); +// +// glColor3f(0.8f, 0.8f, 0.8f); +// glBegin(GL_LINES); +// glVertex2f(m_mouseWorld.x, m_mouseWorld.y); +// glVertex2f(m_bombSpawnPoint.x, m_bombSpawnPoint.y); +// glEnd(); } - + if (settings->drawContactPoints) { //const float32 k_impulseScale = 0.1f; const float32 k_axisScale = 0.3f; - + for (int32 i = 0; i < m_pointCount; ++i) { ContactPoint* point = m_points + i; - + if (point->state == b2_addState) { // Add @@ -389,12 +385,12 @@ void Test::Step(Settings* settings) // Persist m_debugDraw.DrawPoint(point->position, 5.0f, b2Color(0.3f, 0.3f, 0.95f)); } - + if (settings->drawContactNormals == 1) { b2Vec2 p1 = point->position; b2Vec2 p2 = p1 + k_axisScale * point->normal; - m_debugDraw.DrawSegment(p1, p2, b2Color(0.9f, 0.9f, 0.9f)); + m_debugDraw.DrawSegment(p1, p2, b2Color(0.4f, 0.9f, 0.4f)); } else if (settings->drawContactForces == 1) { @@ -402,7 +398,7 @@ void Test::Step(Settings* settings) //b2Vec2 p2 = p1 + k_forceScale * point->normalForce * point->normal; //DrawSegment(p1, p2, b2Color(0.9f, 0.9f, 0.3f)); } - + if (settings->drawFrictionForces == 1) { //b2Vec2 tangent = b2Cross(point->normal, 1.0f); diff --git a/libs/box2d/iPhone/Classes/iPhoneTestEntries.mm b/libs/box2d/iPhone/Classes/iPhoneTestEntries.mm index 18faaa0..02da5f5 100644 --- a/libs/box2d/iPhone/Classes/iPhoneTestEntries.mm +++ b/libs/box2d/iPhone/Classes/iPhoneTestEntries.mm @@ -1,111 +1,92 @@ -/* -* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org -* -* This software is provided 'as-is', without any express or implied -* warranty. In no event will the authors be held liable for any damages -* arising from the use of this software. -* Permission is granted to anyone to use this software for any purpose, -* including commercial applications, and to alter it and redistribute it -* freely, subject to the following restrictions: -* 1. The origin of this software must not be misrepresented; you must not -* claim that you wrote the original software. If you use this software -* in a product, an acknowledgment in the product documentation would be -* appreciated but is not required. -* 2. Altered source versions must be plainly marked as such, and must not be -* misrepresented as being the original software. -* 3. This notice may not be removed or altered from any source distribution. -*/ - -#include "iPhoneTest.h" -#include -using namespace std; - -#include "ApplyForce.h" -#include "BodyTypes.h" -#include "Breakable.h" -#include "Bridge.h" -#include "BulletTest.h" -#include "Cantilever.h" -#include "Car.h" -#include "ContinuousTest.h" -#include "Chain.h" -#include "CharacterCollision.h" -#include "CollisionFiltering.h" -#include "CollisionProcessing.h" -#include "CompoundShapes.h" -#include "Confined.h" -#include "DistanceTest.h" -#include "Dominos.h" -#include "DynamicTreeTest.h" -#include "EdgeShapes.h" -#include "EdgeTest.h" -#include "Gears.h" -#include "OneSidedPlatform.h" -#include "Pinball.h" -#include "PolyCollision.h" -#include "PolyShapes.h" -#include "Prismatic.h" -#include "Pulleys.h" -#include "Pyramid.h" -#include "RayCast.h" -#include "Revolute.h" -#include "Rope.h" -#include "RopeJoint.h" -#include "SensorTest.h" -#include "ShapeEditing.h" -#include "SliderCrank.h" -#include "SphereStack.h" -#include "TheoJansen.h" -#include "Tiles.h" -#include "TimeOfImpact.h" -#include "VaryingFriction.h" -#include "VaryingRestitution.h" -#include "VerticalStack.h" -#include "Web.h" - -TestEntry g_testEntries[] = -{ - {"Pulleys", Pulleys::Create}, - {"SphereStack", SphereStack::Create}, - {"Tiles", Tiles::Create}, - {"Polygon Shapes", PolyShapes::Create}, - {"Rope", Rope::Create}, - {"Web", Web::Create}, - {"Car", Car::Create}, - {"Vertical Stack", VerticalStack::Create}, - {"RopeJoint", RopeJoint::Create}, - {"Character Collision", CharacterCollision::Create}, - {"Edge Test", EdgeTest::Create}, - {"One-Sided Platform", OneSidedPlatform::Create}, - {"Pinball", Pinball::Create}, - {"Bullet Test", BulletTest::Create}, - {"Continuous Test", ContinuousTest::Create}, - {"Time of Impact", TimeOfImpact::Create}, - {"Ray-Cast", RayCast::Create}, - {"Confined", Confined::Create}, - {"Pyramid", Pyramid::Create}, - {"Varying Restitution", VaryingRestitution::Create}, - {"Theo Jansen's Walker", TheoJansen::Create}, - {"Body Types", BodyTypes::Create}, - {"Prismatic", Prismatic::Create}, - {"Edge Shapes", EdgeShapes::Create}, - {"PolyCollision", PolyCollision::Create}, - {"Apply Force", ApplyForce::Create}, - {"Cantilever", Cantilever::Create}, - {"Bridge", Bridge::Create}, - {"Breakable", Breakable::Create}, - {"Chain", Chain::Create}, - {"Collision Filtering", CollisionFiltering::Create}, - {"Collision Processing", CollisionProcessing::Create}, - {"Compound Shapes", CompoundShapes::Create}, - {"Distance Test", DistanceTest::Create}, - {"Dominos", Dominos::Create}, - {"Dynamic Tree", DynamicTreeTest::Create}, - {"Gears", Gears::Create}, - {"Revolute", Revolute::Create}, - {"Sensor Test", SensorTest::Create}, - {"Shape Editing", ShapeEditing::Create}, - {"Slider Crank", SliderCrank::Create}, - {"Varying Friction", VaryingFriction::Create}, - {NULL, NULL} -}; +/* + * Copyright (c) 2006-2007 Erin Catto http://www.gphysics.com + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + */ + +#include "iPhoneTest.h" +//#include "GLES-Render.h" + +#include "ApplyForce.h" +#include "BodyTypes.h" + +#include "Breakable.h" +#include "Bridge.h" +#include "Chain.h" +#include "CollisionFiltering.h" +#include "CollisionProcessing.h" +#include "CompoundShapes.h" +#include "Confined.h" +#include "DistanceTest.h" +#include "Dominos.h" +#include "DynamicTreeTest.h" +#include "Gears.h" +#include "LineJoint.h" +#include "OneSidedPlatform.h" +#include "PolyCollision.h" +#include "PolyShapes.h" +#include "Prismatic.h" +#include "Pulleys.h" +#include "Pyramid.h" +#include "RayCast.h" +#include "Revolute.h" +#include "SensorTest.h" +#include "ShapeEditing.h" +#include "SliderCrank.h" +#include "SphereStack.h" +#include "TheoJansen.h" +#include "TimeOfImpact.h" +#include "VaryingFriction.h" +#include "VaryingRestitution.h" +#include "VerticalStack.h" +#include "Web.h" + +TestEntry g_testEntries[] = +{ +{"Body Types", BodyTypes::Create}, +{"SphereStack", SphereStack::Create}, +{"Vertical Stack", VerticalStack::Create}, +{"Confined", Confined::Create}, +{"Bridge", Bridge::Create}, +{"Breakable", Breakable::Create}, +{"Varying Restitution", VaryingRestitution::Create}, +{"Ray-Cast", RayCast::Create}, +{"Pyramid", Pyramid::Create}, +{"PolyCollision", PolyCollision::Create}, +{"One-Sided Platform", OneSidedPlatform::Create}, +{"Apply Force", ApplyForce::Create}, +{"Chain", Chain::Create}, +{"Collision Filtering", CollisionFiltering::Create}, +{"Collision Processing", CollisionProcessing::Create}, +{"Compound Shapes", CompoundShapes::Create}, +{"Distance Test", DistanceTest::Create}, +{"Dominos", Dominos::Create}, +{"Dynamic Tree", DynamicTreeTest::Create}, +{"Gears", Gears::Create}, +{"Line Joint", LineJoint::Create}, +{"Polygon Shapes", PolyShapes::Create}, +{"Prismatic", Prismatic::Create}, +{"Pulleys", Pulleys::Create}, +{"Revolute", Revolute::Create}, +{"Sensor Test", SensorTest::Create}, +{"Shape Editing", ShapeEditing::Create}, +{"Slider Crank", SliderCrank::Create}, +{"Theo Jansen's Walker", TheoJansen::Create}, +{"Time of Impact", TimeOfImpact::Create}, +{"Varying Friction", VaryingFriction::Create}, +{"Web", Web::Create}, +{NULL, NULL} + +}; diff --git a/libs/box2d/src/Box2D/Box2D.h b/libs/box2d/src/Box2D/Box2D.h index 0414477..dc5701f 100644 --- a/libs/box2d/src/Box2D/Box2D.h +++ b/libs/box2d/src/Box2D/Box2D.h @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* Copyright (c) 2006-2009 Erin Catto http://www.gphysics.com * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages @@ -32,12 +32,8 @@ For discussion please visit http://box2d.org/forum // These include files constitute the main Box2D API #include -#include -#include #include -#include -#include #include #include @@ -56,14 +52,11 @@ For discussion please visit http://box2d.org/forum #include #include #include -#include +#include #include #include #include #include -#include #include -#include - #endif diff --git a/libs/box2d/src/Box2D/Collision/Shapes/b2CircleShape.cpp b/libs/box2d/src/Box2D/Collision/Shapes/b2CircleShape.cpp index 80dac85..a950b0b 100644 --- a/libs/box2d/src/Box2D/Collision/Shapes/b2CircleShape.cpp +++ b/libs/box2d/src/Box2D/Collision/Shapes/b2CircleShape.cpp @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* Copyright (c) 2006-2009 Erin Catto http://www.gphysics.com * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages @@ -18,7 +18,6 @@ #include #include -using namespace std; b2Shape* b2CircleShape::Clone(b2BlockAllocator* allocator) const { @@ -28,11 +27,6 @@ b2Shape* b2CircleShape::Clone(b2BlockAllocator* allocator) const return clone; } -int32 b2CircleShape::GetChildCount() const -{ - return 1; -} - bool b2CircleShape::TestPoint(const b2Transform& transform, const b2Vec2& p) const { b2Vec2 center = transform.position + b2Mul(transform.R, m_p); @@ -44,11 +38,8 @@ bool b2CircleShape::TestPoint(const b2Transform& transform, const b2Vec2& p) con // From Section 3.1.2 // x = s + a * r // norm(x) = radius -bool b2CircleShape::RayCast(b2RayCastOutput* output, const b2RayCastInput& input, - const b2Transform& transform, int32 childIndex) const +bool b2CircleShape::RayCast(b2RayCastOutput* output, const b2RayCastInput& input, const b2Transform& transform) const { - B2_NOT_USED(childIndex); - b2Vec2 position = transform.position + b2Mul(transform.R, m_p); b2Vec2 s = input.p1 - position; float32 b = b2Dot(s, s) - m_radius * m_radius; @@ -81,10 +72,8 @@ bool b2CircleShape::RayCast(b2RayCastOutput* output, const b2RayCastInput& input return false; } -void b2CircleShape::ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const +void b2CircleShape::ComputeAABB(b2AABB* aabb, const b2Transform& transform) const { - B2_NOT_USED(childIndex); - b2Vec2 p = transform.position + b2Mul(transform.R, m_p); aabb->lowerBound.Set(p.x - m_radius, p.y - m_radius); aabb->upperBound.Set(p.x + m_radius, p.y + m_radius); diff --git a/libs/box2d/src/Box2D/Collision/Shapes/b2CircleShape.h b/libs/box2d/src/Box2D/Collision/Shapes/b2CircleShape.h index 6c1fd54..bb31da8 100644 --- a/libs/box2d/src/Box2D/Collision/Shapes/b2CircleShape.h +++ b/libs/box2d/src/Box2D/Collision/Shapes/b2CircleShape.h @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* Copyright (c) 2006-2009 Erin Catto http://www.gphysics.com * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages @@ -30,18 +30,14 @@ public: /// Implement b2Shape. b2Shape* Clone(b2BlockAllocator* allocator) const; - /// @see b2Shape::GetChildCount - int32 GetChildCount() const; - /// Implement b2Shape. bool TestPoint(const b2Transform& transform, const b2Vec2& p) const; /// Implement b2Shape. - bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input, - const b2Transform& transform, int32 childIndex) const; + bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input, const b2Transform& transform) const; /// @see b2Shape::ComputeAABB - void ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const; + void ComputeAABB(b2AABB* aabb, const b2Transform& transform) const; /// @see b2Shape::ComputeMass void ComputeMass(b2MassData* massData, float32 density) const; diff --git a/libs/box2d/src/Box2D/Collision/Shapes/b2EdgeShape.cpp b/libs/box2d/src/Box2D/Collision/Shapes/b2EdgeShape.cpp deleted file mode 100644 index 19ca893..0000000 --- a/libs/box2d/src/Box2D/Collision/Shapes/b2EdgeShape.cpp +++ /dev/null @@ -1,139 +0,0 @@ -/* -* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org -* -* This software is provided 'as-is', without any express or implied -* warranty. In no event will the authors be held liable for any damages -* arising from the use of this software. -* Permission is granted to anyone to use this software for any purpose, -* including commercial applications, and to alter it and redistribute it -* freely, subject to the following restrictions: -* 1. The origin of this software must not be misrepresented; you must not -* claim that you wrote the original software. If you use this software -* in a product, an acknowledgment in the product documentation would be -* appreciated but is not required. -* 2. Altered source versions must be plainly marked as such, and must not be -* misrepresented as being the original software. -* 3. This notice may not be removed or altered from any source distribution. -*/ - -#include -#include -using namespace std; - -void b2EdgeShape::Set(const b2Vec2& v1, const b2Vec2& v2) -{ - m_vertex1 = v1; - m_vertex2 = v2; - m_hasVertex0 = false; - m_hasVertex3 = false; -} - -b2Shape* b2EdgeShape::Clone(b2BlockAllocator* allocator) const -{ - void* mem = allocator->Allocate(sizeof(b2EdgeShape)); - b2EdgeShape* clone = new (mem) b2EdgeShape; - *clone = *this; - return clone; -} - -int32 b2EdgeShape::GetChildCount() const -{ - return 1; -} - -bool b2EdgeShape::TestPoint(const b2Transform& xf, const b2Vec2& p) const -{ - B2_NOT_USED(xf); - B2_NOT_USED(p); - return false; -} - -// p = p1 + t * d -// v = v1 + s * e -// p1 + t * d = v1 + s * e -// s * e - t * d = p1 - v1 -bool b2EdgeShape::RayCast(b2RayCastOutput* output, const b2RayCastInput& input, - const b2Transform& xf, int32 childIndex) const -{ - B2_NOT_USED(childIndex); - - // Put the ray into the edge's frame of reference. - b2Vec2 p1 = b2MulT(xf.R, input.p1 - xf.position); - b2Vec2 p2 = b2MulT(xf.R, input.p2 - xf.position); - b2Vec2 d = p2 - p1; - - b2Vec2 v1 = m_vertex1; - b2Vec2 v2 = m_vertex2; - b2Vec2 e = v2 - v1; - b2Vec2 normal(e.y, -e.x); - normal.Normalize(); - - // q = p1 + t * d - // dot(normal, q - v1) = 0 - // dot(normal, p1 - v1) + t * dot(normal, d) = 0 - float32 numerator = b2Dot(normal, v1 - p1); - float32 denominator = b2Dot(normal, d); - - if (denominator == 0.0f) - { - return false; - } - - float32 t = numerator / denominator; - if (t < 0.0f || 1.0f < t) - { - return false; - } - - b2Vec2 q = p1 + t * d; - - // q = v1 + s * r - // s = dot(q - v1, r) / dot(r, r) - b2Vec2 r = v2 - v1; - float32 rr = b2Dot(r, r); - if (rr == 0.0f) - { - return false; - } - - float32 s = b2Dot(q - v1, r) / rr; - if (s < 0.0f || 1.0f < s) - { - return false; - } - - output->fraction = t; - if (numerator > 0.0f) - { - output->normal = -normal; - } - else - { - output->normal = normal; - } - return true; -} - -void b2EdgeShape::ComputeAABB(b2AABB* aabb, const b2Transform& xf, int32 childIndex) const -{ - B2_NOT_USED(childIndex); - - b2Vec2 v1 = b2Mul(xf, m_vertex1); - b2Vec2 v2 = b2Mul(xf, m_vertex2); - - b2Vec2 lower = b2Min(v1, v2); - b2Vec2 upper = b2Max(v1, v2); - - b2Vec2 r(m_radius, m_radius); - aabb->lowerBound = lower - r; - aabb->upperBound = upper + r; -} - -void b2EdgeShape::ComputeMass(b2MassData* massData, float32 density) const -{ - B2_NOT_USED(density); - - massData->mass = 0.0f; - massData->center = 0.5f * (m_vertex1 + m_vertex2); - massData->I = 0.0f; -} diff --git a/libs/box2d/src/Box2D/Collision/Shapes/b2EdgeShape.h b/libs/box2d/src/Box2D/Collision/Shapes/b2EdgeShape.h deleted file mode 100644 index 780eb2c..0000000 --- a/libs/box2d/src/Box2D/Collision/Shapes/b2EdgeShape.h +++ /dev/null @@ -1,70 +0,0 @@ -/* -* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org -* -* This software is provided 'as-is', without any express or implied -* warranty. In no event will the authors be held liable for any damages -* arising from the use of this software. -* Permission is granted to anyone to use this software for any purpose, -* including commercial applications, and to alter it and redistribute it -* freely, subject to the following restrictions: -* 1. The origin of this software must not be misrepresented; you must not -* claim that you wrote the original software. If you use this software -* in a product, an acknowledgment in the product documentation would be -* appreciated but is not required. -* 2. Altered source versions must be plainly marked as such, and must not be -* misrepresented as being the original software. -* 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef B2_EDGE_SHAPE_H -#define B2_EDGE_SHAPE_H - -#include - -/// A line segment (edge) shape. These can be connected in chains or loops -/// to other edge shapes. The connectivity information is used to ensure -/// correct contact normals. -class b2EdgeShape : public b2Shape -{ -public: - b2EdgeShape(); - - /// Set this as an isolated edge. - void Set(const b2Vec2& v1, const b2Vec2& v2); - - /// Implement b2Shape. - b2Shape* Clone(b2BlockAllocator* allocator) const; - - /// @see b2Shape::GetChildCount - int32 GetChildCount() const; - - /// @see b2Shape::TestPoint - bool TestPoint(const b2Transform& transform, const b2Vec2& p) const; - - /// Implement b2Shape. - bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input, - const b2Transform& transform, int32 childIndex) const; - - /// @see b2Shape::ComputeAABB - void ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const; - - /// @see b2Shape::ComputeMass - void ComputeMass(b2MassData* massData, float32 density) const; - - /// These are the edge vertices - b2Vec2 m_vertex1, m_vertex2; - - /// Optional adjacent vertices. These are used for smooth collision. - b2Vec2 m_vertex0, m_vertex3; - bool m_hasVertex0, m_hasVertex3; -}; - -inline b2EdgeShape::b2EdgeShape() -{ - m_type = e_edge; - m_radius = b2_polygonRadius; - m_hasVertex0 = false; - m_hasVertex3 = false; -} - -#endif diff --git a/libs/box2d/src/Box2D/Collision/Shapes/b2LoopShape.cpp b/libs/box2d/src/Box2D/Collision/Shapes/b2LoopShape.cpp deleted file mode 100644 index 7f7a216..0000000 --- a/libs/box2d/src/Box2D/Collision/Shapes/b2LoopShape.cpp +++ /dev/null @@ -1,130 +0,0 @@ -/* -* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org -* -* This software is provided 'as-is', without any express or implied -* warranty. In no event will the authors be held liable for any damages -* arising from the use of this software. -* Permission is granted to anyone to use this software for any purpose, -* including commercial applications, and to alter it and redistribute it -* freely, subject to the following restrictions: -* 1. The origin of this software must not be misrepresented; you must not -* claim that you wrote the original software. If you use this software -* in a product, an acknowledgment in the product documentation would be -* appreciated but is not required. -* 2. Altered source versions must be plainly marked as such, and must not be -* misrepresented as being the original software. -* 3. This notice may not be removed or altered from any source distribution. -*/ - -#include -#include -#include -#include -using namespace std; - -b2LoopShape::~b2LoopShape() -{ - b2Free(m_vertices); - m_vertices = NULL; - m_count = 0; -} - -void b2LoopShape::Create(const b2Vec2* vertices, int32 count) -{ - b2Assert(m_vertices == NULL && m_count == 0); - b2Assert(count >= 2); - m_count = count; - m_vertices = (b2Vec2*)b2Alloc(count * sizeof(b2Vec2)); - memcpy(m_vertices, vertices, m_count * sizeof(b2Vec2)); -} - -b2Shape* b2LoopShape::Clone(b2BlockAllocator* allocator) const -{ - void* mem = allocator->Allocate(sizeof(b2LoopShape)); - b2LoopShape* clone = new (mem) b2LoopShape; - clone->Create(m_vertices, m_count); - return clone; -} - -int32 b2LoopShape::GetChildCount() const -{ - return m_count; -} - -void b2LoopShape::GetChildEdge(b2EdgeShape* edge, int32 index) const -{ - b2Assert(2 <= m_count); - b2Assert(0 <= index && index < m_count); - edge->m_type = b2Shape::e_edge; - edge->m_radius = m_radius; - edge->m_hasVertex0 = true; - edge->m_hasVertex3 = true; - - int32 i0 = index - 1 >= 0 ? index - 1 : m_count - 1; - int32 i1 = index; - int32 i2 = index + 1 < m_count ? index + 1 : 0; - int32 i3 = index + 2; - while (i3 >= m_count) - { - i3 -= m_count; - } - - edge->m_vertex0 = m_vertices[i0]; - edge->m_vertex1 = m_vertices[i1]; - edge->m_vertex2 = m_vertices[i2]; - edge->m_vertex3 = m_vertices[i3]; -} - -bool b2LoopShape::TestPoint(const b2Transform& xf, const b2Vec2& p) const -{ - B2_NOT_USED(xf); - B2_NOT_USED(p); - return false; -} - -bool b2LoopShape::RayCast(b2RayCastOutput* output, const b2RayCastInput& input, - const b2Transform& xf, int32 childIndex) const -{ - b2Assert(childIndex < m_count); - - b2EdgeShape edgeShape; - - int32 i1 = childIndex; - int32 i2 = childIndex + 1; - if (i2 == m_count) - { - i2 = 0; - } - - edgeShape.m_vertex1 = m_vertices[i1]; - edgeShape.m_vertex2 = m_vertices[i2]; - - return edgeShape.RayCast(output, input, xf, 0); -} - -void b2LoopShape::ComputeAABB(b2AABB* aabb, const b2Transform& xf, int32 childIndex) const -{ - b2Assert(childIndex < m_count); - - int32 i1 = childIndex; - int32 i2 = childIndex + 1; - if (i2 == m_count) - { - i2 = 0; - } - - b2Vec2 v1 = b2Mul(xf, m_vertices[i1]); - b2Vec2 v2 = b2Mul(xf, m_vertices[i2]); - - aabb->lowerBound = b2Min(v1, v2); - aabb->upperBound = b2Max(v1, v2); -} - -void b2LoopShape::ComputeMass(b2MassData* massData, float32 density) const -{ - B2_NOT_USED(density); - - massData->mass = 0.0f; - massData->center.SetZero(); - massData->I = 0.0f; -} diff --git a/libs/box2d/src/Box2D/Collision/Shapes/b2LoopShape.h b/libs/box2d/src/Box2D/Collision/Shapes/b2LoopShape.h deleted file mode 100644 index 0dd7f1c..0000000 --- a/libs/box2d/src/Box2D/Collision/Shapes/b2LoopShape.h +++ /dev/null @@ -1,96 +0,0 @@ -/* -* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org -* -* This software is provided 'as-is', without any express or implied -* warranty. In no event will the authors be held liable for any damages -* arising from the use of this software. -* Permission is granted to anyone to use this software for any purpose, -* including commercial applications, and to alter it and redistribute it -* freely, subject to the following restrictions: -* 1. The origin of this software must not be misrepresented; you must not -* claim that you wrote the original software. If you use this software -* in a product, an acknowledgment in the product documentation would be -* appreciated but is not required. -* 2. Altered source versions must be plainly marked as such, and must not be -* misrepresented as being the original software. -* 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef B2_LOOP_SHAPE_H -#define B2_LOOP_SHAPE_H - -#include - -class b2EdgeShape; - -/// A loop shape is a free form sequence of line segments that form a circular list. -/// The loop may cross upon itself, but this is not recommended for smooth collision. -/// The loop has double sided collision, so you can use inside and outside collision. -/// Therefore, you may use any winding order. -/// Since there may be many vertices, they are allocated using b2Alloc. -class b2LoopShape : public b2Shape -{ -public: - b2LoopShape(); - - /// The destructor frees the vertices using b2Free. - ~b2LoopShape(); - - /// Create the loop shape, copy all vertices. - void Create(const b2Vec2* vertices, int32 count); - - /// Implement b2Shape. Vertices are cloned using b2Alloc. - b2Shape* Clone(b2BlockAllocator* allocator) const; - - /// @see b2Shape::GetChildCount - int32 GetChildCount() const; - - /// Get a child edge. - void GetChildEdge(b2EdgeShape* edge, int32 index) const; - - /// This always return false. - /// @see b2Shape::TestPoint - bool TestPoint(const b2Transform& transform, const b2Vec2& p) const; - - /// Implement b2Shape. - bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input, - const b2Transform& transform, int32 childIndex) const; - - /// @see b2Shape::ComputeAABB - void ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const; - - /// Chains have zero mass. - /// @see b2Shape::ComputeMass - void ComputeMass(b2MassData* massData, float32 density) const; - - /// Get the number of vertices. - int32 GetCount() const { return m_count; } - - /// Get the vertices (read-only). - const b2Vec2& GetVertex(int32 index) const - { - b2Assert(0 <= index && index < m_count); - return m_vertices[index]; - } - - /// Get the vertices (read-only). - const b2Vec2* GetVertices() const { return m_vertices; } - -protected: - - /// The vertices. Owned by this class. - b2Vec2* m_vertices; - - /// The vertex count. - int32 m_count; -}; - -inline b2LoopShape::b2LoopShape() -{ - m_type = e_loop; - m_radius = b2_polygonRadius; - m_vertices = NULL; - m_count = 0; -} - -#endif diff --git a/libs/box2d/src/Box2D/Collision/Shapes/b2PolygonShape.cpp b/libs/box2d/src/Box2D/Collision/Shapes/b2PolygonShape.cpp index a625aff..429e647 100644 --- a/libs/box2d/src/Box2D/Collision/Shapes/b2PolygonShape.cpp +++ b/libs/box2d/src/Box2D/Collision/Shapes/b2PolygonShape.cpp @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* Copyright (c) 2006-2009 Erin Catto http://www.gphysics.com * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages @@ -66,18 +66,30 @@ void b2PolygonShape::SetAsBox(float32 hx, float32 hy, const b2Vec2& center, floa } } -int32 b2PolygonShape::GetChildCount() const +void b2PolygonShape::SetAsEdge(const b2Vec2& v1, const b2Vec2& v2) { - return 1; + m_vertexCount = 2; + m_vertices[0] = v1; + m_vertices[1] = v2; + m_centroid = 0.5f * (v1 + v2); + m_normals[0] = b2Cross(v2 - v1, 1.0f); + m_normals[0].Normalize(); + m_normals[1] = -m_normals[0]; } static b2Vec2 ComputeCentroid(const b2Vec2* vs, int32 count) { - b2Assert(count >= 3); + b2Assert(count >= 2); b2Vec2 c; c.Set(0.0f, 0.0f); float32 area = 0.0f; + if (count == 2) + { + c = 0.5f * (vs[0] + vs[1]); + return c; + } + // pRef is the reference point for forming triangles. // It's location doesn't change the result (except for rounding error). b2Vec2 pRef(0.0f, 0.0f); @@ -119,7 +131,7 @@ static b2Vec2 ComputeCentroid(const b2Vec2* vs, int32 count) void b2PolygonShape::Set(const b2Vec2* vertices, int32 count) { - b2Assert(3 <= count && count <= b2_maxPolygonVertices); + b2Assert(2 <= count && count <= b2_maxPolygonVertices); m_vertexCount = count; // Copy vertices. @@ -186,82 +198,131 @@ bool b2PolygonShape::TestPoint(const b2Transform& xf, const b2Vec2& p) const return true; } -bool b2PolygonShape::RayCast(b2RayCastOutput* output, const b2RayCastInput& input, - const b2Transform& xf, int32 childIndex) const +bool b2PolygonShape::RayCast(b2RayCastOutput* output, const b2RayCastInput& input, const b2Transform& xf) const { - B2_NOT_USED(childIndex); - // Put the ray into the polygon's frame of reference. b2Vec2 p1 = b2MulT(xf.R, input.p1 - xf.position); b2Vec2 p2 = b2MulT(xf.R, input.p2 - xf.position); b2Vec2 d = p2 - p1; - float32 lower = 0.0f, upper = input.maxFraction; - - int32 index = -1; - - for (int32 i = 0; i < m_vertexCount; ++i) + if (m_vertexCount == 2) { - // p = p1 + a * d - // dot(normal, p - v) = 0 - // dot(normal, p1 - v) + a * dot(normal, d) = 0 - float32 numerator = b2Dot(m_normals[i], m_vertices[i] - p1); - float32 denominator = b2Dot(m_normals[i], d); + b2Vec2 v1 = m_vertices[0]; + b2Vec2 v2 = m_vertices[1]; + b2Vec2 normal = m_normals[0]; + + // q = p1 + t * d + // dot(normal, q - v1) = 0 + // dot(normal, p1 - v1) + t * dot(normal, d) = 0 + float32 numerator = b2Dot(normal, v1 - p1); + float32 denominator = b2Dot(normal, d); if (denominator == 0.0f) - { - if (numerator < 0.0f) - { - return false; - } + { + return false; + } + + float32 t = numerator / denominator; + if (t < 0.0f || 1.0f < t) + { + return false; + } + + b2Vec2 q = p1 + t * d; + + // q = v1 + s * r + // s = dot(q - v1, r) / dot(r, r) + b2Vec2 r = v2 - v1; + float32 rr = b2Dot(r, r); + if (rr == 0.0f) + { + return false; + } + + float32 s = b2Dot(q - v1, r) / rr; + if (s < 0.0f || 1.0f < s) + { + return false; + } + + output->fraction = t; + if (numerator > 0.0f) + { + output->normal = -normal; } else { - // Note: we want this predicate without division: - // lower < numerator / denominator, where denominator < 0 - // Since denominator < 0, we have to flip the inequality: - // lower < numerator / denominator <==> denominator * lower > numerator. - if (denominator < 0.0f && numerator < lower * denominator) + output->normal = normal; + } + return true; + } + else + { + float32 lower = 0.0f, upper = input.maxFraction; + + int32 index = -1; + + for (int32 i = 0; i < m_vertexCount; ++i) + { + // p = p1 + a * d + // dot(normal, p - v) = 0 + // dot(normal, p1 - v) + a * dot(normal, d) = 0 + float32 numerator = b2Dot(m_normals[i], m_vertices[i] - p1); + float32 denominator = b2Dot(m_normals[i], d); + + if (denominator == 0.0f) + { + if (numerator < 0.0f) + { + return false; + } + } + else { - // Increase lower. - // The segment enters this half-space. - lower = numerator / denominator; - index = i; + // Note: we want this predicate without division: + // lower < numerator / denominator, where denominator < 0 + // Since denominator < 0, we have to flip the inequality: + // lower < numerator / denominator <==> denominator * lower > numerator. + if (denominator < 0.0f && numerator < lower * denominator) + { + // Increase lower. + // The segment enters this half-space. + lower = numerator / denominator; + index = i; + } + else if (denominator > 0.0f && numerator < upper * denominator) + { + // Decrease upper. + // The segment exits this half-space. + upper = numerator / denominator; + } } - else if (denominator > 0.0f && numerator < upper * denominator) + + // The use of epsilon here causes the assert on lower to trip + // in some cases. Apparently the use of epsilon was to make edge + // shapes work, but now those are handled separately. + //if (upper < lower - b2_epsilon) + if (upper < lower) { - // Decrease upper. - // The segment exits this half-space. - upper = numerator / denominator; + return false; } } - // The use of epsilon here causes the assert on lower to trip - // in some cases. Apparently the use of epsilon was to make edge - // shapes work, but now those are handled separately. - //if (upper < lower - b2_epsilon) - if (upper < lower) + b2Assert(0.0f <= lower && lower <= input.maxFraction); + + if (index >= 0) { - return false; + output->fraction = lower; + output->normal = b2Mul(xf.R, m_normals[index]); + return true; } } - b2Assert(0.0f <= lower && lower <= input.maxFraction); - - if (index >= 0) - { - output->fraction = lower; - output->normal = b2Mul(xf.R, m_normals[index]); - return true; - } - return false; } -void b2PolygonShape::ComputeAABB(b2AABB* aabb, const b2Transform& xf, int32 childIndex) const +void b2PolygonShape::ComputeAABB(b2AABB* aabb, const b2Transform& xf) const { - B2_NOT_USED(childIndex); - b2Vec2 lower = b2Mul(xf, m_vertices[0]); b2Vec2 upper = lower; @@ -303,30 +364,44 @@ void b2PolygonShape::ComputeMass(b2MassData* massData, float32 density) const // // The rest of the derivation is handled by computer algebra. - b2Assert(m_vertexCount >= 3); + b2Assert(m_vertexCount >= 2); + + // A line segment has zero mass. + if (m_vertexCount == 2) + { + massData->center = 0.5f * (m_vertices[0] + m_vertices[1]); + massData->mass = 0.0f; + massData->I = 0.0f; + return; + } b2Vec2 center; center.Set(0.0f, 0.0f); float32 area = 0.0f; float32 I = 0.0f; - // s is the reference point for forming triangles. + // pRef is the reference point for forming triangles. // It's location doesn't change the result (except for rounding error). - b2Vec2 s(0.0f, 0.0f); - + b2Vec2 pRef(0.0f, 0.0f); +#if 0 // This code would put the reference point inside the polygon. for (int32 i = 0; i < m_vertexCount; ++i) { - s += m_vertices[i]; + pRef += m_vertices[i]; } - s *= 1.0f / m_vertexCount; + pRef *= 1.0f / count; +#endif const float32 k_inv3 = 1.0f / 3.0f; for (int32 i = 0; i < m_vertexCount; ++i) { // Triangle vertices. - b2Vec2 e1 = m_vertices[i] - s; - b2Vec2 e2 = i + 1 < m_vertexCount ? m_vertices[i+1] - s : m_vertices[0] - s; + b2Vec2 p1 = pRef; + b2Vec2 p2 = m_vertices[i]; + b2Vec2 p3 = i + 1 < m_vertexCount ? m_vertices[i+1] : m_vertices[0]; + + b2Vec2 e1 = p2 - p1; + b2Vec2 e2 = p3 - p1; float32 D = b2Cross(e1, e2); @@ -334,15 +409,16 @@ void b2PolygonShape::ComputeMass(b2MassData* massData, float32 density) const area += triangleArea; // Area weighted centroid - center += triangleArea * k_inv3 * (e1 + e2); + center += triangleArea * k_inv3 * (p1 + p2 + p3); + float32 px = p1.x, py = p1.y; float32 ex1 = e1.x, ey1 = e1.y; float32 ex2 = e2.x, ey2 = e2.y; - float32 intx2 = ex1*ex1 + ex2*ex1 + ex2*ex2; - float32 inty2 = ey1*ey1 + ey2*ey1 + ey2*ey2; + float32 intx2 = k_inv3 * (0.25f * (ex1*ex1 + ex2*ex1 +