Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of scoreLight_Advanced by
classSpring.cpp
- Committer:
- mbedalvaro
- Date:
- 2012-04-12
- Revision:
- 12:0de9cd2bced5
- Parent:
- 0:345b3bc7a0ea
- Child:
- 30:d8af03f01cd4
File content as of revision 12:0de9cd2bced5:
#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; }