// Richard A. DeVenezia, Jan. 2000
// www.devenezia.com

#include <fstream.h>
#include <math.h>

#define pi 3.1415926

struct point
{
	double x,y,z;
};

class mobiusPoints
{
public:
	mobiusPoints( int H, int W, int L, int N, int K, int R );
   ~mobiusPoints();

	void Generate(LPCSTR offFn, BOOL section, BOOL right, BOOL bottom, BOOL left, BOOL top);

	struct point P[maxN][5]; // second dimension are 5 points of a slice
							 // future would replace slice with cross-sectional function
	/*
		a slice
		4-----1
		|\ | /|
		|--0--|
 		|/ | \|
		3-----2

		segment[i] is bounded by slice[i] and slice[i+1]
		when ends are joined, slice [last] = slice[0]
	*/

private:
	int NS;	// number of segments requested
	int k;	// number of half twists

	ofstream OFF;
};
