diff options
| author | arngo <[email protected]> | 2022-11-09 19:25:39 -0500 |
|---|---|---|
| committer | arngo <[email protected]> | 2022-11-09 19:25:39 -0500 |
| commit | 1a828584a93918e5e2ed5e7d218d00dc50922ae0 (patch) | |
| tree | 39211689618f5812c52d507a63f1867d514d29ee /src/physics.cpp | |
| parent | a9649b97ddfb0b39f8b3c27b14a7d855b1e824fa (diff) | |
| download | orbital_game-1a828584a93918e5e2ed5e7d218d00dc50922ae0.tar.gz orbital_game-1a828584a93918e5e2ed5e7d218d00dc50922ae0.zip | |
add classes for kinematic and dynamic body
each class has a static unordered_set that stores references to each
object created
Diffstat (limited to 'src/physics.cpp')
| -rw-r--r-- | src/physics.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/physics.cpp b/src/physics.cpp index b8d4e29..fa9bc38 100644 --- a/src/physics.cpp +++ b/src/physics.cpp @@ -10,9 +10,28 @@ namespace Physics { //force = s_mass * grav //force = s_mass * (grav_const * (r_mass / distance^2)) + std::unordered_set<DynamicBody*>DynamicBody::dynamicBodies; + std::unordered_set<KinematicBody*>KinematicBody::kinematicBodies; + Body::Body(Vector2 position, Vector2 velocity, float mass):position(position), velocity(velocity), mass(mass) { } + DynamicBody::DynamicBody(Vector2 position, Vector2 velocity, float mass):Body(position, velocity, mass) { + dynamicBodies.insert(this); + } + + DynamicBody::~DynamicBody() { + dynamicBodies.erase(this); + } + + KinematicBody::KinematicBody(Vector2 position, Vector2 velocity, float mass):Body(position, velocity, mass) { + kinematicBodies.insert(this); + } + + KinematicBody::~KinematicBody() { + kinematicBodies.erase(this); + } + Body ship = Body((Vector2){200,400}, (Vector2){0,0.5}, 1); Body rock = Body((Vector2){400,400}, (Vector2){0,0}, 50); |
