00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "PolyPrimitive.h"
00018
00019 #ifndef N_TEXTPRIM
00020 #define N_TEXTPRIM
00021
00022 namespace Fluxus
00023 {
00024
00030 class TextPrimitive : public PolyPrimitive
00031 {
00032 public:
00034 TextPrimitive(float charw, float charh, int charstride, int wrapchars=0);
00035 TextPrimitive(const TextPrimitive &other);
00036 virtual ~TextPrimitive() {}
00037
00041 virtual TextPrimitive* Clone() const;
00042 virtual void Render();
00043 virtual string GetTypeName() { return "TextPrimitive"; }
00045
00046 void SetText(const string &s, float Width=10, float Height=10, float Zoom=0);
00047 float GetTextWidth() { return m_TextWidth; }
00048 float GetTextHeight() { return m_TextHeight; }
00049
00050 protected:
00051
00052 float m_CharWidth;
00053 float m_CharHeight;
00054 int m_CharStride;
00055 float m_TextWidth;
00056 float m_TextHeight;
00057 int m_WrapChars;
00058
00059 friend istream &operator>>(istream &s, TextPrimitive &o);
00060 friend ostream &operator<<(ostream &s, TextPrimitive &o);
00061 };
00062
00063
00064 istream &operator>>(istream &s, TextPrimitive &o);
00065 ostream &operator<<(ostream &s, TextPrimitive &o);
00066
00067 };
00068
00069 #endif