// Richard A. DeVenezia, Jan. 2000 // www.devenezia.com #include #include #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; };