00001
00002
00003
00004
00005
00006
00007
00008 #ifndef Effect_Header
00009 #define Effect_Header
00010
00011 #include <DrawObj.H>
00012 #include <IS3D.H>
00013 #include "Word.H"
00014
00015 using namespace std;
00016 using namespace xercesc;
00017
00018 namespace cavewriting {
00019
00031 class Effect : public IS3D::AnimObj {
00032
00033 public:
00034
00040 Effect(Array<Word*>& words, double startTime, double duration = 100.0, bool startPaused = true);
00041 Effect(Word* word, double startTime, double duration = 100.0, bool startPaused = true);
00042
00043
00044 virtual ~Effect();
00045
00047 virtual void animate();
00048
00051
00052 Array<Word*>& getWords() {return _words;}
00053
00057 void addWord(Word* word) { _words.append(word); }
00058
00061 static Effect* fromXML(xercesc::DOMElement* effectNode, bool startPaused = true);
00062
00064 virtual void start();
00065 protected:
00066 Array<Word*> _words;
00067 Word* _word;
00068
00069 double _startTime;
00070 double _duration;
00071 bool _paused;
00072
00073 private:
00074
00075 };
00076
00077 }
00078
00079 #endif