GEOS
3.2.3
|
00001 /********************************************************************** 00002 * $Id: MultiPolygon.h 2556 2009-06-06 22:22:28Z strk $ 00003 * 00004 * GEOS - Geometry Engine Open Source 00005 * http://geos.refractions.net 00006 * 00007 * Copyright (C) 2001-2002 Vivid Solutions Inc. 00008 * Copyright (C) 2005 2006 Refractions Research Inc. 00009 * 00010 * This is free software; you can redistribute and/or modify it under 00011 * the terms of the GNU Lesser General Public Licence as published 00012 * by the Free Software Foundation. 00013 * See the COPYING file for more information. 00014 * 00015 ********************************************************************** 00016 * 00017 * Last port: geom/MultiPolygon.java rev 1.34 00018 * 00019 **********************************************************************/ 00020 00021 #ifndef GEOS_GEOS_MULTIPOLYGON_H 00022 #define GEOS_GEOS_MULTIPOLYGON_H 00023 00024 #include <geos/export.h> 00025 #include <string> 00026 #include <vector> 00027 #include <geos/platform.h> 00028 #include <geos/geom/GeometryCollection.h> 00029 #include <geos/geom/Dimension.h> // for Dimension::DimensionType 00030 00031 #include <geos/inline.h> 00032 00033 // Forward declarations 00034 namespace geos { 00035 namespace geom { // geos::geom 00036 class Coordinate; 00037 class CoordinateArraySequence; 00038 class MultiPoint; 00039 } 00040 } 00041 00042 00043 namespace geos { 00044 namespace geom { // geos::geom 00045 00047 class GEOS_DLL MultiPolygon: public GeometryCollection 00048 { 00049 00050 public: 00051 00052 friend class GeometryFactory; 00053 00054 virtual ~MultiPolygon(); 00055 00057 Dimension::DimensionType getDimension() const; 00058 00060 int getBoundaryDimension() const; 00061 00068 Geometry* getBoundary() const; 00069 00070 std::string getGeometryType() const; 00071 00072 virtual GeometryTypeId getGeometryTypeId() const; 00073 00074 bool isSimple() const; 00075 00076 bool equalsExact(const Geometry *other, double tolerance=0) const; 00077 00078 Geometry *clone() const; 00079 00080 protected: 00081 00103 MultiPolygon(std::vector<Geometry *> *newPolys, const GeometryFactory *newFactory); 00104 00105 MultiPolygon(const MultiPolygon &mp); 00106 00107 00108 }; 00109 00110 00111 } // namespace geos::geom 00112 } // namespace geos 00113 00114 #ifdef GEOS_INLINE 00115 # include "geos/geom/MultiPolygon.inl" 00116 #endif 00117 00118 #endif // ndef GEOS_GEOS_MULTIPOLYGON_H 00119 00120 /********************************************************************** 00121 * $Log$ 00122 * Revision 1.4 2006/05/04 15:49:39 strk 00123 * updated all Geometry::getDimension() methods to return Dimension::DimensionType (closes bug#93) 00124 * 00125 * Revision 1.3 2006/04/28 10:55:39 strk 00126 * Geometry constructors made protected, to ensure all constructions use GeometryFactory, 00127 * which has been made friend of all Geometry derivates. getNumPoints() changed to return 00128 * size_t. 00129 * 00130 * Revision 1.2 2006/03/24 09:52:41 strk 00131 * USE_INLINE => GEOS_INLINE 00132 * 00133 * Revision 1.1 2006/03/09 16:46:49 strk 00134 * geos::geom namespace definition, first pass at headers split 00135 * 00136 **********************************************************************/