aboutsummaryrefslogtreecommitdiffstats
path: root/src/particlebody.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/particlebody.cpp')
-rw-r--r--src/particlebody.cpp24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/particlebody.cpp b/src/particlebody.cpp
index 2c463623..f882f279 100644
--- a/src/particlebody.cpp
+++ b/src/particlebody.cpp
@@ -5,14 +5,14 @@
namespace yage
{
-ParticleBody::ParticleBody(const glm::vec2 &position,
+ParticleBody::ParticleBody(const Vector2d &position,
double mass,
- const glm::vec2 &velocity,
+ const Vector2d &velocity,
bool gravity) :
Body(position, mass, velocity, gravity)
{}
-void ParticleBody::applyForce(const glm::vec2 &force)
+void ParticleBody::applyForce(const Vector2d &force)
{
force_+=force;
}
@@ -23,24 +23,24 @@ void ParticleBody::update()
double time_step=1.0/60.0;
// set the last acceleration
- glm::vec2 last_acceleration=acceleration_;
+ Vector2d last_acceleration=acceleration_;
// update the position of the body
- position_.x+=velocity_.x*time_step+(0.5*last_acceleration.x*std::pow(time_step, 2));
- position_.y+=velocity_.y*time_step+(0.5*last_acceleration.y*std::pow(time_step, 2));
+ //position_.x+=velocity_.x*time_step+(0.5*last_acceleration.x*std::pow(time_step, 2));
+ //position_.y+=velocity_.y*time_step+(0.5*last_acceleration.y*std::pow(time_step, 2));
+
+ position_+=velocity_*time_step+(0.5*last_acceleration*std::pow(time_step, 2));
// update the acceleration
if(gravity_)
- acceleration_=glm::vec2(force_.x/mass_, (GRAVITY+force_.y)/mass_);
+ acceleration_=Vector2d(force_.x()/mass_, (GRAVITY+force_.y())/mass_);
else
- acceleration_=glm::vec2(force_.x/mass_, force_.y/mass_);
+ acceleration_=Vector2d(force_.x()/mass_, force_.y()/mass_);
- glm::vec2 avg_acceleration=glm::vec2((acceleration_.x+last_acceleration.x)/2,
- (acceleration_.y+last_acceleration.y)/2);
+ Vector2d avg_acceleration=(acceleration_+last_acceleration)/2.0;
// update the velocity of the body
- velocity_.x+=avg_acceleration.x*time_step;
- velocity_.y+=avg_acceleration.y*time_step;
+ velocity_=avg_acceleration*time_step;
}
} // yage