view spring.h @ 0:c667dfe12d47

OK. Ther real deal.
author Robert Tubb <rt300@eecs.qmul.ac.uk>
date Mon, 19 Nov 2012 13:00:42 +0000
parents
children d346ddc50f70
line wrap: on
line source
/*
 *  spring.h
 *  simplespring
 *
 *  Created by Robert Tubb on 02/06/2011.
 *  Copyright 2011 __MyCompanyName__. All rights reserved.
 *
 */



#ifndef _SPRINGH
#define _SPRINGH
#include "2dvector.h"
#include "ofMain.h"

class Lump;

class Spring{
protected:
	double restLength;
	double springConst;
	
	static double maxForce;
	static double minForce;
	
	static int numSprings;

	int myIndex;
    
    double csquared;
	
	TwoVector startPoint;
	TwoVector endPoint;
	
	TwoVector force;
	Lump * startLumpPtr;
	Lump * endLumpPtr;
	
	bool isInScanPath;

	
public:
	static bool forcesOn;
	
	Spring();
	Spring(double aStartx, double aStarty, double aEndx, double aEndy, double aK);
	void updateEndPoints();
	void attachLump(Lump * aLump);
    
    void calculateForce();
    virtual TwoVector getForce(Lump * aLump);

	void draw();
	void setRestLength();
	void setRestLength(double aLength);
    void setSpringConstant(double aK);
    double getLength();

	void addToScanPath();
    void removeFromScanPath();
    Lump * getLumpOnOtherEnd(Lump * alump);
	//void checkStuff();
    
    // interface for scanner
	double getForceMag();
};

class PressureSpring : public Spring{
public:
    PressureSpring();
    TwoVector getForce(Lump * aLump);

};

#endif