summaryrefslogtreecommitdiff
path: root/src/main/Particle.cc
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2011-04-25 12:58:55 +0000
committerJakob Odersky <jodersky@gmail.com>2011-04-25 12:58:55 +0000
commit9b765d14760bddc1caac167e938670031d70a864 (patch)
treec05b21ebe8f771e638d5fc4a943d7212119d9999 /src/main/Particle.cc
parent0398843f48f15028c537a1dc1aefaa9cf5141896 (diff)
downloadvhc-9b765d14760bddc1caac167e938670031d70a864.tar.gz
vhc-9b765d14760bddc1caac167e938670031d70a864.tar.bz2
vhc-9b765d14760bddc1caac167e938670031d70a864.zip
*J'ai revu les 3 premier exercises du projet et modifie quelques reponses (jusqu'a P7.2 compris) et fichiers tests.
*Rajoute la classe MutableVector3D pour representer des vecteurs mutables.
Diffstat (limited to 'src/main/Particle.cc')
-rw-r--r--src/main/Particle.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/main/Particle.cc b/src/main/Particle.cc
index 405b6b5..230f049 100644
--- a/src/main/Particle.cc
+++ b/src/main/Particle.cc
@@ -33,14 +33,16 @@ Vector3D Particle::getPosition() const {return position;}
void Particle::setPosition(const Vector3D& pos) {position = pos;}
+void Particle::translate(const Vector3D& dx) {position += dx;}
+
Vector3D Particle::getForce() const {return force;}
void Particle::setForce(const Vector3D& f) {force = f;}
-void Particle::applyForce(const Vector3D& f) {force = force + f;}
+void Particle::applyForce(const Vector3D& f) {force += f;}
void Particle::applyMagneticForce(const Vector3D& b, double dt) {
- if (b != Vector3D::Null) {
+ if (dt != 0 && b != Vector3D::Null) {
Vector3D f = charge * velocity.cross(b);
applyForce(f.rotate(velocity.cross(f), (dt * f.norm()) / (2 * gamma * mass * velocity.norm())));
}