Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

StructVectorProperty.h

Go to the documentation of this file.
00001 
00045 #ifndef _AMIRE_PROPERTY_STRUCT_VECTOR_PROPERTY_H
00046 #define _AMIRE_PROPERTY_STRUCT_VECTOR_PROPERTY_H
00047 
00048 #include <amire/common/Defines.h>
00049 #include <amire/property/PersistentProperty.h>
00050 
00051 namespace amire {
00052   namespace property {
00053     class AMIRE_EXPORT_API StructProperty;
00054     class AMIRE_EXPORT_API PropertyWriter;
00055     class AMIRE_EXPORT_API PropertyReader;
00056     class AMIRE_EXPORT_API PropertyType;
00057     class AMIRE_EXPORT_API PropertyTypeManager;
00058     class AMIRE_EXPORT_API VectorPropertyType;
00059 
00067     class AMIRE_EXPORT_API StructVectorProperty : public virtual PersistentProperty {
00068     private:
00069       mutable std::vector<osg::ref_ptr<StructProperty> > values;
00070       
00071     public:
00072       StructVectorProperty(const std::string &structName, const PropertyTypeManager *propertyTypeManager);;
00073       StructVectorProperty(const StructVectorProperty &property);
00074 
00075       virtual ~StructVectorProperty();
00076 
00077       virtual bool equals(const osg::ref_ptr<const Property> &property) const;
00078       virtual osg::ref_ptr<Property> clone() const;
00079       virtual void cloneFrom(const osg::ref_ptr<const Property> &property);
00080 
00085       int size() const;
00086 
00090       void clear();
00091 
00098       osg::ref_ptr<StructProperty> &get(int index) const;
00099 
00105       void resize(int length);
00106 
00113       void set(int index, const osg::ref_ptr<StructProperty> &value);
00114 
00122       void insert(int index, const osg::ref_ptr<StructProperty> &value);
00123 
00128       void remove(int index);
00129 
00136       void push(const osg::ref_ptr<StructProperty> &value);
00137 
00142       osg::ref_ptr<StructProperty> pop();
00143 
00144     private:
00145       void cloneFrom(const StructVectorProperty *structVectorProperty);
00146     };
00147   }
00148 }
00149 
00150 #endif
00151 

Generated on Tue May 20 17:23:53 2003 for AMIRE-Framework by doxygen1.3