just a test

Dependencies:   mbed

Fork of scoreLight_Advanced by Alvaro Cassinelli

Revision:
0:345b3bc7a0ea
Child:
12:0de9cd2bced5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/classSpring.cpp	Wed Mar 28 14:40:01 2012 +0000
@@ -0,0 +1,45 @@
+#include "classSpring.h"
+#include "myVectorClass.h"
+
+//---------------------------------------------------------------------
+spring::spring(){
+    massA = NULL;
+    massB = NULL;
+}
+
+//---------------------------------------------------------------------
+void spring::update(){
+    if ((massA == NULL) || (massB == NULL)){
+        return;
+    }
+    
+    vector2D pta = massA->pos;
+    vector2D ptb = massB->pos;
+    
+    float theirDistance = (pta - ptb).length();
+    float springForce = (springiness * (distance - theirDistance));
+    vector2D frcToAdd = (pta-ptb).normalize() * springForce;
+    
+    massA->addForce(frcToAdd);
+    massB->addForce(-frcToAdd);
+    //massA->totalForce.x+=frcToAdd.x;massA->totalForce.y+=frcToAdd.y;
+    //massB->totalForce.x-=frcToAdd.x;massB->totalForce.y-=frcToAdd.y;
+}
+
+void spring::assymetricUpdate(){ // only second mass suffers a force
+    if ((massA == NULL) || (massB == NULL)){
+        return;
+    }
+    
+    vector2D pta = massA->pos;
+    vector2D ptb = massB->pos;
+    
+    float theirDistance = (pta - ptb).length();
+    float springForce = (springiness * (distance - theirDistance));
+    vector2D frcToAdd = (pta-ptb).normalize() * springForce;
+    
+    //massA->addForce(frcToAdd);
+    massB->addForce(-frcToAdd);
+    //massA->totalForce.x+=frcToAdd.x;massA->totalForce.y+=frcToAdd.y;
+    //massB->totalForce.x-=frcToAdd.x;massB->totalForce.y-=frcToAdd.y;
+}