Alvaro Cassinelli
/
skinGames_II
save loops
classSpring.cpp
- Committer:
- mbedalvaro
- Date:
- 2014-12-02
- Revision:
- 1:3be7b7d050f4
- Parent:
- 0:df6fdd9b99f0
File content as of revision 1:3be7b7d050f4:
#include "classSpring.h" #include "myVectorClass.h" //--------------------------------------------------------------------- spring::spring(){ massA = NULL; massB = NULL; } //--------------------------------------------------------------------- void spring::update(){ if ((massA == NULL) || (massB == NULL)){ return; } vector2Df pta = massA->pos; vector2Df ptb = massB->pos; float theirDistance = (pta - ptb).length(); float springForce = (springiness * (distance - theirDistance)); vector2Df 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; } vector2Df pta = massA->pos; vector2Df ptb = massB->pos; float theirDistance = (pta - ptb).length(); float springForce = (springiness * (distance - theirDistance)); vector2Df 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; }