just a test

Dependencies:   mbed

Fork of scoreLight_Advanced by Alvaro Cassinelli

classSpring.cpp

Committer:
mbedalvaro
Date:
2012-03-28
Revision:
0:345b3bc7a0ea
Child:
12:0de9cd2bced5

File content as of revision 0:345b3bc7a0ea:

#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;
}