00001 /************************************************************** 00002 * Name: Sascha Becker (sab) 00003 * File: TotalCollapse.H 00004 * Asgn: cavewriting 00005 * Date: Sun Mar 6 17:13:03 EST 2005 00006 **************************************************************/ 00007 00008 #ifndef TotalCollapse_Header 00009 #define TotalCollapse_Header 00010 00011 #include <G3DAll.h> 00012 #include <string> 00013 #include <XercesXMLUtil.H> 00014 #include "Section.H" 00015 #include "Story.H" 00016 #include "Scene.H" 00017 00018 using namespace std; 00019 00020 namespace cavewriting { 00024 class TotalCollapse : public Scene { 00025 00026 public: 00027 00028 TotalCollapse(Story* story, xercesc::DOMNode* node, int id); 00029 virtual ~TotalCollapse(); 00030 00031 virtual void start(); 00032 virtual void animate(); 00033 00034 void addWordToCollapse(Word* word); 00035 void addWordsToCollapse(Array<Word*> &words); 00036 void forgetAllWords(); 00037 00038 void oneMoreWordPeeled() { _numWordsPeeled++; } 00039 void oneMoreWordPlaced() { _numWordsPeeled--; } 00040 void setNumTotalWords(int num) { _numWordsTotal = num; } 00041 00042 bool readyToCollapse(); 00043 00044 protected: 00045 Array<Vector3> _startPositions; 00046 Array<Word*> _words; 00047 bool _inFade; 00048 00049 int _numWordsPeeled; 00050 int _numWordsTotal; 00051 00052 private: 00053 00054 }; 00055 00056 } // end namespace 00057 #endif