vrecko
virtual reality framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Attribute.h
Go to the documentation of this file.
1 
13 // header definitions
14 #ifndef _ATTRIBUTE_H_
15 #define _ATTRIBUTE_H_
16 
17 // STL includes
18 #include <string>
19 
20 // namespaces used
21 using namespace std;
22 
23 // VRECKO namespace
24 namespace vrecko
25 {
26 
27 // null definition
28 #define null 0
29 
39 class Attribute
40 {
41 public:
42 
52  enum DataType
53  {
65  TYPE_DYNAMIC
66  };
67 
73  inline const string& getName() const
74  {
75  return strName;
76  }
77 
83  inline DataType getDataType() const
84  {
85  return dataType;
86  }
87 
93  inline const string& getDescription() const
94  {
95  return strDescription;
96  }
97 
103  inline bool isStatic() const
104  {
105  return (getDataType() != TYPE_DYNAMIC);
106  }
107 
113  inline bool isDynamic() const
114  {
115  return (getDataType() == TYPE_DYNAMIC);
116  }
117 
118 protected:
119 
127  Attribute(const string& strName, DataType dataType, const string& strDescription)
128  {
129  // initialize all the attributes
130  this->strName = strName;
131  this->dataType = dataType;
132  this->strDescription = strDescription;
133  }
134 
140  Attribute(const Attribute& attribute)
141  {
142  *this = attribute;
143  }
144 
145 private:
146 
147  // general attribute attributes
148  string strName;
149  DataType dataType;
150  string strDescription;
151 };
152 
153 // end of vrecko namespace
154 }
155 
156 // end header definitions
157 #endif