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_MULTIPOINT_H
00023 #define GEOS_GEOS_MULTIPOINT_H
00024
00025 #include <geos/export.h>
00026 #include <geos/platform.h>
00027 #include <geos/geom/GeometryCollection.h>
00028 #include <geos/geom/Puntal.h>
00029 #include <geos/geom/Dimension.h>
00030
00031 #include <geos/inline.h>
00032
00033 #include <string>
00034 #include <vector>
00035
00036 namespace geos {
00037 namespace geom {
00038 class Coordinate;
00039 class CoordinateArraySequence;
00040 }
00041 }
00042
00043 namespace geos {
00044 namespace geom {
00045
00046 #ifdef _MSC_VER
00047 #pragma warning(push)
00048 #pragma warning(disable:4250) // T1 inherits T2 via dominance
00049 #endif
00050
00056 class GEOS_DLL MultiPoint: public GeometryCollection, public Puntal
00057 {
00058
00059 public:
00060
00061 friend class GeometryFactory;
00062
00063 virtual ~MultiPoint();
00064
00066 Dimension::DimensionType getDimension() const;
00067
00069 int getBoundaryDimension() const;
00070
00080 Geometry* getBoundary() const;
00081
00082 std::string getGeometryType() const;
00083
00084 virtual GeometryTypeId getGeometryTypeId() const;
00085
00086 bool equalsExact(const Geometry *other, double tolerance=0) const;
00087
00088 Geometry *clone() const { return new MultiPoint(*this); };
00089
00090 protected:
00091
00110 MultiPoint(std::vector<Geometry *> *newPoints, const GeometryFactory *newFactory);
00111
00112 MultiPoint(const MultiPoint &mp): Geometry(mp), GeometryCollection(mp) {}
00113
00114 const Coordinate* getCoordinateN(int n) const;
00115 };
00116
00117 #ifdef _MSC_VER
00118 #pragma warning(pop)
00119 #endif
00120
00121 }
00122 }
00123
00124
00125
00126
00127
00128 #endif // ndef GEOS_GEOS_MULTIPOINT_H
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146