PropertyGeometryList.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef APP_PropertyGeometryList_H
00025 #define APP_PropertyGeometryList_H
00026
00027
00028
00029
00030 #include <vector>
00031 #include <string>
00032 #include <App/Property.h>
00033 #include "Geometry.h"
00034
00035 namespace Base {
00036 class Writer;
00037 }
00038
00039 namespace Part
00040 {
00041 class Geometry;
00042
00043 class PartExport PropertyGeometryList: public App::PropertyLists
00044 {
00045 TYPESYSTEM_HEADER();
00046
00047 public:
00052 PropertyGeometryList();
00053
00058 virtual ~PropertyGeometryList();
00059
00060 virtual void setSize(int newSize);
00061 virtual int getSize(void) const;
00062
00065 void setValue(const Geometry*);
00066 void setValues(const std::vector<Geometry*>&);
00067
00069 const Geometry *operator[] (const int idx) const {
00070 return _lValueList[idx];
00071 }
00072
00073 const std::vector<Geometry*> &getValues(void) const {
00074 return _lValueList;
00075 }
00076
00077 virtual PyObject *getPyObject(void);
00078 virtual void setPyObject(PyObject *);
00079
00080 virtual void Save(Base::Writer &writer) const;
00081 virtual void Restore(Base::XMLReader &reader);
00082
00083 virtual Property *Copy(void) const;
00084 virtual void Paste(const App::Property &from);
00085
00086 virtual unsigned int getMemSize(void) const;
00087
00088 private:
00089 std::vector<Geometry*> _lValueList;
00090 };
00091
00092 }
00093
00094
00095 #endif // APP_PropertyGeometryList_H