/* cursorStack.h * J Scott Cameron */ // CursorStack keeps track of all the cursors and allows them to be saved // to allow for branching in the LSystem #include "cursor.h" #include using namespace std; class CursorStack { public: CursorStack(); vector vect; /* vector that holds the Cursors in the stack */ LPDIRECT3DDEVICE8 device; /* D3D device being drawn to*/ float angle; /* angle to be used in rotations */ void push(); /* push a Cursor down on the stack */ void pop(); /* pop a Cursor off the stack */ vector::reverse_iterator getTop(); /* pointer to the cursor on the top of the stack */ void updateCursor(); /*update the cursor */ void setDevice(LPDIRECT3DDEVICE8); /* set the device field */ void reset(); /* empties the stack and sets the top stack to * the identity matrix */ void interpretString(string); /*draws the given graphical * L-System */ void forwardDraw(); /* move the top cursor forward a unit and * draw along that path */ void forwardNoDraw(); /* move the top cursor forward a unit*/ void rotXplus(); /* rotate positively in the X-axis */ void rotXminus(); /* rotate negatively in the X-axis */ void rotYplus(); /* rotate positively in the Y-axis */ void rotYminus();/* rotate negatively in the Y-axis */ void rotZplus(); /* rotate positively in the Z-axis */ void rotZminus();/* rotate negatively in the Z-axis */ };