00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef __SGL_TEXTUREDTEXTSET_HPP
00026 #define __SGL_TEXTUREDTEXTSET_HPP
00027
00028 #include <sgl.h>
00029
00030 #include <sglDrawable.hpp>
00031 #include <sglStatelet.hpp>
00032 #include <sglVector.hpp>
00033 #include <string>
00034
00035 class sglTextureFont;
00036
00037
00038
00043 class SGL_DLL_API sglTexturedTextSet : public sglDrawable
00044 {
00045 public:
00049 sglTexturedTextSet(sglTextureFont *font);
00050
00052 virtual ~sglTexturedTextSet();
00053
00057 void setString(const string &str);
00058
00062 const string& getString() const {return m_text;}
00063
00067 void setFont(sglTextureFont *font);
00068
00072 sglTextureFont* getFont() const { return m_font; }
00073
00077 void setColor(const sglVec4f &color);
00078
00085 void setColor(float r, float g, float b, float a);
00086
00090 void getColor(sglVec4f &color) const;
00091
00095 void setPosition(const sglVec3f &pos);
00096
00102 void setPosition(float x, float y, float z);
00103
00107 const sglVec3f &getPosition() const { return m_position; }
00108
00112 void setCharHeight(float height);
00113
00117 float getHeight() const;
00118
00122 float getWidth() const;
00123
00127 void setVertical(bool on);
00128
00132 bool getVertical() const { return m_vertical; }
00133
00134
00135
00136 virtual void addStats(sglStats &stats) const;
00137
00138 virtual void drawGeometry(const vector<sglTexCoords> &tex_coords) const;
00139
00141 virtual sglBound::IntersectResultEnum intersectPrim(sglIntersectf &segset);
00143 virtual sglBound::IntersectResultEnum intersectPrim(sglIntersectd &segset);
00144
00148 virtual void printInfo(ostream &ostrm, const char *indent_string) const;
00149
00150 protected:
00151 void updateArrays();
00152
00153
00154 virtual bool computeBounds();
00155
00156 private:
00157 sglTexturedTextSet();
00158 sglTexturedTextSet(const sglTexturedTextSet &);
00159 sglTexturedTextSet& operator=(const sglTexturedTextSet &);
00160
00161 private:
00162 string m_text;
00163 float m_height;
00164 bool m_vertical;
00165
00166 sglTextureFont *m_font;
00167 sglVec3f m_position;
00168
00169 unsigned int m_num_prims;
00170 sglVec3f *m_coords;
00171 sglVec4f m_color;
00172 sglVec3f m_normal;
00173
00174 sglTransparency m_transparency_statelet;
00175 vector<sglStatelet*> m_statelets;
00176 };
00177
00178 #endif