Alvaro Cassinelli
/
skinGames_forktest
just a test
Fork of scoreLight_Advanced by
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; }