class PrettyTrees : public GrObject {
public:
  PrettyTrees();
  unsigned int theTree; // display list...not actually the tree.
  Color color;
  void initList();
  virtual void draw(DrawingState*);
private:
	//the number of characters in the defining string never changes once 
	//you pick how many iterations you want to take.

	//1552 is enough for 4 iters
	//6263 is enough for 5 iters
	//25160 is enough for 6 iters
	static const int fourItrs = 1552;
	static const int fiveItrs = 6263;
	static const int sixItrs = 25160;
	char* strToDraw;
	void drawLeaf();
	
	bool listInitd;

	void drawString();
	char* lSys(int iters);
	char* lSysHelper(int terminate, int iters, char* str);
};