GEOS 3.2.1
|
00001 /********************************************************************** 00002 * $Id: MultiPoint.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/MultiPoint.java rev. 1.30 00018 * 00019 **********************************************************************/ 00020 00021 #ifndef GEOS_GEOS_MULTIPOINT_H 00022 #define GEOS_GEOS_MULTIPOINT_H 00023 00024 #include <geos/export.h> 00025 #include <geos/platform.h> 00026 #include <geos/geom/GeometryCollection.h> 00027 #include <geos/geom/Dimension.h> // for Dimension::DimensionType 00028 00029 #include <geos/inline.h> 00030 00031 #include <string> 00032 #include <vector> 00033 00034 namespace geos { 00035 namespace geom { // geos::geom 00036 class Coordinate; 00037 class CoordinateArraySequence; 00038 } 00039 } 00040 00041 namespace geos { 00042 namespace geom { // geos::geom 00043 00048 class GEOS_DLL MultiPoint: public GeometryCollection { 00049 00050 public: 00051 00052 friend class GeometryFactory; 00053 00054 virtual ~MultiPoint(); 00055 00057 Dimension::DimensionType getDimension() const; 00058 00060 int getBoundaryDimension() const; 00061 00071 Geometry* getBoundary() const; 00072 00073 std::string getGeometryType() const; 00074 00075 virtual GeometryTypeId getGeometryTypeId() const; 00076 00077 bool equalsExact(const Geometry *other, double tolerance=0) const; 00078 00079 Geometry *clone() const { return new MultiPoint(*this); }; 00080 00081 protected: 00082 00101 MultiPoint(std::vector<Geometry *> *newPoints, const GeometryFactory *newFactory); 00102 00103 MultiPoint(const MultiPoint &mp): GeometryCollection(mp) {} 00104 00105 const Coordinate* getCoordinateN(int n) const; 00106 }; 00107 00108 } // namespace geos::geom 00109 } // namespace geos 00110 00111 //#ifdef GEOS_INLINE 00112 //# include "geos/geom/MultiPoint.inl" 00113 //#endif 00114 00115 #endif // ndef GEOS_GEOS_MULTIPOINT_H 00116 00117 /********************************************************************** 00118 * $Log$ 00119 * Revision 1.4 2006/05/04 15:49:39 strk 00120 * updated all Geometry::getDimension() methods to return Dimension::DimensionType (closes bug#93) 00121 * 00122 * Revision 1.3 2006/04/28 10:55:39 strk 00123 * Geometry constructors made protected, to ensure all constructions use GeometryFactory, 00124 * which has been made friend of all Geometry derivates. getNumPoints() changed to return 00125 * size_t. 00126 * 00127 * Revision 1.2 2006/03/24 09:52:41 strk 00128 * USE_INLINE => GEOS_INLINE 00129 * 00130 * Revision 1.1 2006/03/09 16:46:49 strk 00131 * geos::geom namespace definition, first pass at headers split 00132 * 00133 **********************************************************************/