00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef GEOS_GEOS_MULTIPOLYGON_H
00023 #define GEOS_GEOS_MULTIPOLYGON_H
00024
00025 #include <geos/export.h>
00026 #include <string>
00027 #include <vector>
00028 #include <geos/platform.h>
00029 #include <geos/geom/GeometryCollection.h>
00030 #include <geos/geom/Polygonal.h>
00031 #include <geos/geom/Dimension.h>
00032
00033 #include <geos/inline.h>
00034
00035
00036 namespace geos {
00037 namespace geom {
00038 class Coordinate;
00039 class CoordinateArraySequence;
00040 class MultiPoint;
00041 }
00042 }
00043
00044
00045 namespace geos {
00046 namespace geom {
00047
00048 #ifdef _MSC_VER
00049 #pragma warning(push)
00050 #pragma warning(disable:4250) // T1 inherits T2 via dominance
00051 #endif
00052
00054
00061 class GEOS_DLL MultiPolygon: public GeometryCollection, public Polygonal
00062 {
00063 public:
00064
00065 friend class GeometryFactory;
00066
00067 virtual ~MultiPolygon();
00068
00070 Dimension::DimensionType getDimension() const;
00071
00073 int getBoundaryDimension() const;
00074
00081 Geometry* getBoundary() const;
00082
00083 std::string getGeometryType() const;
00084
00085 virtual GeometryTypeId getGeometryTypeId() const;
00086
00087 bool isSimple() const;
00088
00089 bool equalsExact(const Geometry *other, double tolerance=0) const;
00090
00091 Geometry *clone() const;
00092
00093 protected:
00094
00116 MultiPolygon(std::vector<Geometry *> *newPolys, const GeometryFactory *newFactory);
00117
00118 MultiPolygon(const MultiPolygon &mp);
00119 };
00120
00121 #ifdef _MSC_VER
00122 #pragma warning(pop)
00123 #endif
00124
00125 }
00126 }
00127
00128 #ifdef GEOS_INLINE
00129 # include "geos/geom/MultiPolygon.inl"
00130 #endif
00131
00132 #endif // ndef GEOS_GEOS_MULTIPOLYGON_H
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150