00001 00020 #ifndef ATTRIBUTE_H_ 00021 #define ATTRIBUTE_H_ 00022 00023 #include <string> 00024 #include <vector> 00025 #include "SFColor.hh" 00026 #include "SFVec3f.hh" 00027 #include "SFVec2f.hh" 00028 #include "SFRotation.hh" 00029 #include "SFMatrix.hh" 00030 #include "SFImage.hh" 00031 00032 using namespace std; 00033 00034 namespace vrml1 { 00035 00036 class Attribute 00037 { 00038 public: 00039 Attribute(); 00040 virtual ~Attribute(); 00041 00042 void setName(string Name); 00043 00044 void setImage(SFImage image); 00045 void setString(string s); 00046 void setFloat(float f); 00047 void setMFloat(vector<float> vf); 00048 void setInteger(int i); 00049 void setMInteger(vector<int> vi); 00050 void setBool(bool b); 00051 void setColor(float c0, float c1, float c2); 00052 void setMColor(vector<SFColor> vColor); 00053 void setVec3f(SFVec3f Vec3f); 00054 void setMVec3f(vector<SFVec3f> MVec3f); 00055 void setVec2f(SFVec2f Vec2f); 00056 void setMVec2f(vector<SFVec2f> MVec2f); 00057 void setRotation(SFRotation Rot); 00058 void setMatrix(SFMatrix Matrix); 00059 00060 SFImage Image() const; 00061 string Name() const; 00062 string String() const; 00063 float Float() const; 00064 vector<float> MFloat() const; 00065 int Integer() const; 00066 vector<int> MInteger() const; 00067 bool Bool() const; 00068 SFColor Color() const; 00069 vector<SFColor> MColor() const; 00070 SFVec2f Vec2f() const; 00071 vector<SFVec2f> MVec2f() const; 00072 SFVec3f Vec3f() const; 00073 vector<SFVec3f> MVec3f() const; 00074 SFRotation Rotation() const; 00075 SFMatrix Matrix() const; 00076 00077 private: 00078 string m_Name; 00079 00080 SFImage m_image; 00081 00082 string m_String; 00083 00084 float m_Float; 00085 vector<float> m_MFloat; 00086 00087 int m_Integer; 00088 vector<int> m_MInteger; 00089 00090 bool m_Bool; 00091 00092 SFColor m_Color; 00093 vector<SFColor> m_MColor; 00094 00095 SFVec2f m_Vec2f; 00096 vector<SFVec2f> m_MVec2f; 00097 00098 SFVec3f m_Vec3f; 00099 vector<SFVec3f> m_MVec3f; 00100 00101 SFRotation m_Rotation; 00102 00103 SFMatrix m_Matrix; 00104 }; 00105 00106 } 00107 00108 #endif /*ATTRIBUTE_H_*/