00001
00002
00003 #ifndef ASGTOOLS_PROPERTY_H
00004 #define ASGTOOLS_PROPERTY_H
00005
00006
00007 #include <string>
00008 #include <vector>
00009
00019 class Property {
00020
00021 public:
00023 enum Type {
00024 UNKNOWNTYPE,
00025 BOOL,
00026 INT,
00027 FLOAT,
00028 DOUBLE,
00029 STRING,
00030 INTVECTOR,
00031 FLOATVECTOR,
00032 STRINGVECTOR,
00033 TOOLHANDLE,
00034 TOOLHANDLEARRAY
00035 };
00036
00038 typedef std::vector< int > IntVector;
00040 typedef std::vector< float > FloatVector;
00042 typedef std::vector< std::string > StringVector;
00043
00045 static const std::string& name( Type type );
00046
00048 Property();
00050 Property( Type type );
00052 virtual ~Property() {}
00053
00056 bool isValid() const;
00057
00059 Type type() const;
00060
00062 const std::string& typeName() const;
00063
00064
00065
00066
00067 virtual int setFrom( const Property& rhs );
00068
00069 private:
00071 Type m_type;
00072
00073 };
00074
00075 #endif // ASGTOOLS_PROPERTY_H