Browse Source

Applying forces: inverting your weight.

Godzil 1 year ago
parent
commit
2777a2f8ad
2 changed files with 11 additions and 3 deletions
  1. 10 2
      source/include/physics/particle.h
  2. 1 1
      source/physics/particle.cpp

+ 10 - 2
source/include/physics/particle.h

@@ -24,10 +24,18 @@ public:
     vec2 sum_of_forces;
 
     double mass;
+    double invMass;
 
 public:
-    particle(double x, double y, double mass): radius(4), position(x, y), mass(mass) {};
-    particle(double x, double y, double mass, double radius): radius(radius), position(x, y), mass(mass) {};
+    particle(double x, double y, double mass, double radius = 4.0): radius(radius), position(x, y),
+                                                              mass(mass)
+    {
+        this->invMass = 0;
+        if (mass != 0.0)
+        {
+            this->invMass = 1 / mass;
+        }
+    };
     ~particle() = default;
 
     void clearForces()

+ 1 - 1
source/physics/particle.cpp

@@ -11,7 +11,7 @@
 
 void particle::integrate(double dt)
 {
-    this->acceleration = this->sum_of_forces / this->mass;
+    this->acceleration = this->sum_of_forces * this->invMass;
 
     this->velocity += this->acceleration * dt;
     this->position += this->velocity * dt;