00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef GEOS_GEOM_GEOMETRYLIST_H
00021 #define GEOS_GEOM_GEOMETRYLIST_H
00022
00023 #include <geos/export.h>
00024 #include <geos/geom/Geometry.h>
00025
00026 #include <memory>
00027 #include <vector>
00028
00029 namespace geos {
00030 namespace geom {
00031
00032
00036 class GEOS_DLL GeometryList {
00037
00038 public:
00039
00041 friend class std::auto_ptr<GeometryList>;
00042
00043 typedef std::vector<Geometry*>::size_type size_type;
00044
00047 typedef std::auto_ptr<GeometryList> AutoPtr;
00048
00050 static GeometryList::AutoPtr create();
00051
00053 void add(Geometry::AutoPtr geom);
00054
00056 size_type size() const;
00057
00059 Geometry* operator[] (size_type);
00060
00062 const Geometry* operator[] (size_type) const;
00063
00064 private:
00065
00066 std::vector<Geometry*> geoms;
00067
00068 GeometryList();
00069
00070 ~GeometryList();
00071
00072 };
00073
00074 }
00075 }
00076
00077 #endif // GEOS_GEOM_GEOMETRYLIST_H
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089