00001
00006 #include "UniformForce.h"
00007 using namespace GraphicsLib;
00008 using namespace ParticleSystems;
00009 UniformForce::UniformForce(Vector *f, float a) : Force(f,a) {
00010 }
00011
00012 UniformForce::~UniformForce() {
00013 delete force;
00014 }
00015
00016 void UniformForce::applyForce(Vector *direction) {
00017
00018 if(attenuation) {
00019 (*direction).x += (*force).x;
00020 (*direction).y += (*force).y;
00021 (*direction).z += (*force).z;
00022 (*direction).w += (*force).w;
00023 } else {
00024 (*direction).x += (attenuation * (*force).x);
00025 (*direction).y += (attenuation * (*force).y);
00026 (*direction).z += (attenuation * (*force).z);
00027 (*direction).w += (attenuation * (*force).w);
00028 }
00029 }
00030
00031 void UniformForce::applyForce(Vector *direction, float *mass) {
00032
00033 if(attenuation) {
00034 (*direction)+=(*force)/(*mass);
00035 } else {
00036 (*direction).x += (attenuation * (*force).x)/(*mass);
00037 (*direction).y += (attenuation * (*force).y)/(*mass);
00038 (*direction).z += (attenuation * (*force).z)/(*mass);
00039 (*direction).w += (attenuation * (*force).w)/(*mass);
00040 }
00041 }