effectManager created
authorPatrik Gornicz <Gornicz.P@gmail.com>
Fri, 1 Aug 2008 23:33:55 +0000 (19:33 -0400)
committerPatrik Gornicz <Gornicz.P@gmail.com>
Fri, 1 Aug 2008 23:33:55 +0000 (19:33 -0400)
src/Entities/PhysicsEntity.cpp
src/Entities/PhysicsEntity.h
src/Makefile
src/effectManager.cpp [new file with mode: 0644]
src/effectManager.h [new file with mode: 0644]

index 727b89f..fba6a89 100644 (file)
@@ -2,18 +2,15 @@
 #include "../debug.h"
 
 #include "../Vector2.h"
-#include "../Effects/Effect.h"
-#include "../Effects/Gravity.h"
+#include "../effectManager.h"
 
 /// ***** Public Class Methods *****
 PhysicsEntity::PhysicsEntity(const Vector2& pos)
     : Entity(pos), force(0,0), mass(1), CoR(1)
 {
-    g = new Gravity();
 }
 PhysicsEntity::~PhysicsEntity()
 {
-    delete g;
 }
 
 void PhysicsEntity::update(float time_step)
@@ -30,9 +27,9 @@ Vector2 PhysicsEntity::positionAt(float time_step) const
     Vector2 newVelocity = velocity;
     Vector2 newForce = force;
 
-    newPosition += g->positionDelta(this, time_step);
-    newVelocity += g->velocityDelta(this, time_step);
-    newForce += g->forceDelta(this, time_step);
+    newPosition += effect::positionDelta(this, time_step);
+    newVelocity += effect::velocityDelta(this, time_step);
+    newForce += effect::forceDelta(this, time_step);
 
     return newForce/mass / 2 * time_step * time_step + newVelocity * time_step + newPosition;
 }
@@ -42,8 +39,8 @@ Vector2 PhysicsEntity::velocityAt(float time_step) const
     Vector2 newForce = force;
     Vector2 newVelocity = velocity;
 
-    newForce += g->forceDelta(this, time_step);
-    newVelocity += g->velocityDelta(this, time_step);
+    newForce += effect::forceDelta(this, time_step);
+    newVelocity += effect::velocityDelta(this, time_step);
 
     return newForce/mass / 2 * time_step + newVelocity;
 }
index 4df29b3..85c0558 100644 (file)
@@ -2,7 +2,6 @@
 #define PHYSICS_H
 
 #include "Entity.h"
-#include "../Effects/Effect.h"
 #include "../Vector2.h"
 
 /// ***** Header Class *****
@@ -29,8 +28,6 @@ class PhysicsEntity: public Entity
 
     // Coefficient of Restitution
     float CoR;
-
-    Effect* g;
 };
 
 #endif // PHYSICS_H
index 6d5b94e..b399061 100644 (file)
@@ -14,6 +14,7 @@ TARGET := ../run_physics
 
 SRCS := # simply to keep every line below the same
 SRCS += entityManager.cpp
+SRCS += effectManager.cpp
 SRCS += entityCreator.cpp
 SRCS += game.cpp
 SRCS += main.cpp
diff --git a/src/effectManager.cpp b/src/effectManager.cpp
new file mode 100644 (file)
index 0000000..ab13b25
--- /dev/null
@@ -0,0 +1,18 @@
+#include "effectManager.h"
+
+#include "Effects/Gravity.h"
+
+Gravity* g = new Gravity();
+
+Vector2 effect::positionDelta(const PhysicsEntity* e, float time_step)
+{
+    return g->positionDelta(e, time_step);
+}
+Vector2 effect::velocityDelta(const PhysicsEntity* e, float time_step)
+{
+    return g->velocityDelta(e, time_step);
+}
+Vector2 effect::forceDelta(const PhysicsEntity* e, float time_step)
+{
+    return g->forceDelta(e, time_step);
+}
diff --git a/src/effectManager.h b/src/effectManager.h
new file mode 100644 (file)
index 0000000..e8ba499
--- /dev/null
@@ -0,0 +1,14 @@
+#ifndef EFFECTMANAGER_H
+#define EFFECTMANAGER_H
+
+#include "Vector2.h"
+#include "Entities/PhysicsEntity.h"
+
+/// ***** Header Methods *****
+namespace effect
+{
+    Vector2 positionDelta(const PhysicsEntity*, float);
+    Vector2 velocityDelta(const PhysicsEntity*, float);
+    Vector2 forceDelta(const PhysicsEntity*, float);
+}
+#endif // EFFECTMANAGER_H