Main Page | Modules | Class Hierarchy | Class List | File List | Class Members | Related Pages

MusicSymbol.h

00001 #include "../painter/Painter.h"
00002 #include "../painter/FontAccess.h"
00003 
00004 #include "Collider.h"
00005 #ifndef MUSICSYMBOL_H
00006 #define MUSICSYMBOL_H
00007 #define APPLEUNICODE 0
00008 
00023 void
00024 testColision(Painter *);
00025 
00026 
00039 class MusicSymbol
00040 {
00041 private:
00042   QString lname;
00043 #ifdef DEBUGCOLLISION
00044 double xcl,ycl;
00045 #endif
00046 
00047 #ifdef DEBUG
00048 static int counter;
00049 int msId;
00050 #endif
00051 
00052 #ifdef DRAWTRAJECTORY
00053 static int colorTrajectory;
00054 QValueList<double> xTrajectoryPoints;
00055 QValueList<double> yTrajectoryPoints;
00056 #endif
00057 
00058 
00059 protected:
00060 MusicSymbol * attachedSymbol;
00061   float x, y;
00062   QString mark;
00067   double naturalLength;
00072   double graphicLength;
00076   double beginModifier;
00077   void * indexNoteMusic;
00078   int lineIndex;
00079   int pageIndex;
00080 public:
00081 MusicSymbol * getAttachedSymbol();
00082 void attachMusicSymbol(MusicSymbol *);
00083 
00084 static long nbcollisiondetectioncount;
00085 MusicSymbol (QString name, float x, float y);
00086 virtual void draw (Painter *) = 0;
00087 virtual QString name ();
00088 virtual QPoint getHotSpot ();
00089 void setMark(QString);
00090 virtual double getX();
00091 double getY();
00092 virtual void setX(double);
00093 void setY(double);
00094 void  setIndexNoteMusic(void *);
00095 void * getIndexNoteMusic();
00096 int getLineIndex();
00097 void setLineIndex(int);
00098 int getPageIndex();
00099 void setPageIndex(int);
00100 bool collide(MusicSymbol *);
00101 virtual Collider * getCollider()=0;
00102 QString getMark();
00103 double length();
00104 virtual QString toString();
00105 
00106 #ifdef DEBUGCOLLISION
00107 double xCollision(); 
00108 double yCollision(); 
00109 #endif
00110 
00111 #ifdef DRAWTRAJECTORY
00112 void  drawTrajectory (Painter *);
00113 #endif
00114 
00115 };
00116 
00121 class SimpleMusicSymbol:public MusicSymbol
00122 {
00123 protected:
00124  int nglyph;
00125  unsigned long enc;
00126 public:
00127  SimpleMusicSymbol (int, QString n, float, float,int=-1);
00128  virtual void draw (Painter *);
00129  virtual Collider * getCollider();
00130  virtual QCoordsRect getBoundingBox ();
00131  virtual QPoint getHotSpot ();
00132 };
00133 
00137 class VoidSymbol:public MusicSymbol{
00138 public:
00139 VoidSymbol();
00140 void draw (Painter *);
00141 Collider * getCollider();
00142 QCoordsRect getBoundingBox ();
00143 };
00147 class Sharp:public SimpleMusicSymbol
00148 {
00149 public:
00150   Sharp (double , double);
00151 };
00155 class Flat:public SimpleMusicSymbol
00156 {
00157 public:
00158   Flat (double, double);
00159 };
00163 class Neutral:public SimpleMusicSymbol
00164 {
00165 public:
00166   Neutral (double, double);
00167 };
00171 class Half:public MusicSymbol
00172 {
00173 public:
00174   Half (float = 0, float = 0);
00175   QCoordsRect getBoundingBox ();
00176   int getNumGlyph ();
00177   void draw (Painter *);
00178   MusicSymbol *clone ();
00179 };
00183 class Whole:public SimpleMusicSymbol
00184 {
00185 public:
00186   Whole (float, float);
00187 };
00188 
00189 /*
00190 \}
00191 */
00192 #endif

Generated on Tue Jun 1 21:13:29 2004 for Alternate Take by doxygen 1.3.6