00001 /************************************************************** 00002 * Name: Sascha Becker (sab) 00003 * File: Spot.H 00004 * Asgn: cavewriting 00005 * Date: Sat Mar 19 12:22:03 EST 2005 00006 **************************************************************/ 00007 00008 #ifndef Spot_Header 00009 #define Spot_Header 00010 00011 #include "Word.H" 00012 #include <IS3D.H> 00013 #include <assert.h> 00014 00015 namespace cavewriting { 00016 class Spot { 00017 00018 public: 00019 00020 Spot(Word* word = NULL, CoordinateFrame frame = CoordinateFrame(), double width = 0); 00021 Spot(const Spot& spot); 00022 virtual ~Spot(); 00023 00024 void makeEmpty(); 00025 00028 void placeWord(Word* word); 00029 Word* getWord() { return _word; } 00030 00032 void setFrame(CoordinateFrame& frame); 00033 void setCoordinateFrame(CoordinateFrame& frame) { setFrame(frame); } 00034 CoordinateFrame getCoordinateFrame() { return _frame; } 00035 00036 bool isEmpty(); 00037 00039 void updateWidth(); 00040 double getWidth() {return _width;} 00041 bool willFit(double widthNeeded); 00042 00043 protected: 00044 Word* _word; 00045 CoordinateFrame _frame; 00046 double _width; 00047 00048 private: 00049 00050 }; 00051 00052 } 00053 00054 #endif