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"; }
00044 virtual Evaluator *MakeEvaluator() { return NULL; }
00046
00047 void SetText(const string &s, float Width=10, float Height=10, float Zoom=0);
00048 float GetTextWidth() { return m_TextWidth; }
00049 float GetTextHeight() { return m_TextHeight; }
00050
00051 protected:
00052
00053 float m_CharWidth;
00054 float m_CharHeight;
00055 int m_CharStride;
00056 float m_TextWidth;
00057 float m_TextHeight;
00058 int m_WrapChars;
00059
00060 friend istream &operator>>(istream &s, TextPrimitive &o);
00061 friend ostream &operator<<(ostream &s, TextPrimitive &o);
00062 };
00063
00064
00065 istream &operator>>(istream &s, TextPrimitive &o);
00066 ostream &operator<<(ostream &s, TextPrimitive &o);
00067
00068 };
00069
00070 #endif