GEOS 3.3.1
|
00001 /********************************************************************** 00002 * $Id: MultiPoint.h 3211 2011-02-13 19:54:01Z mloskot $ 00003 * 00004 * GEOS - Geometry Engine Open Source 00005 * http://geos.refractions.net 00006 * 00007 * Copyright (C) 2011 Sandro Santilli <strk@keybit.net> 00008 * Copyright (C) 2001-2002 Vivid Solutions Inc. 00009 * Copyright (C) 2005 2006 Refractions Research Inc. 00010 * 00011 * This is free software; you can redistribute and/or modify it under 00012 * the terms of the GNU Lesser General Public Licence as published 00013 * by the Free Software Foundation. 00014 * See the COPYING file for more information. 00015 * 00016 ********************************************************************** 00017 * 00018 * Last port: geom/MultiPoint.java r320 (JTS-1.12) 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> // for inheritance 00028 #include <geos/geom/Puntal.h> // for inheritance 00029 #include <geos/geom/Dimension.h> // for Dimension::DimensionType 00030 00031 #include <geos/inline.h> 00032 00033 #include <string> 00034 #include <vector> 00035 00036 namespace geos { 00037 namespace geom { // geos::geom 00038 class Coordinate; 00039 class CoordinateArraySequence; 00040 } 00041 } 00042 00043 namespace geos { 00044 namespace geom { // geos::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 } // namespace geos::geom 00122 } // namespace geos 00123 00124 //#ifdef GEOS_INLINE 00125 //# include "geos/geom/MultiPoint.inl" 00126 //#endif 00127 00128 #endif // ndef GEOS_GEOS_MULTIPOINT_H 00129 00130 /********************************************************************** 00131 * $Log$ 00132 * Revision 1.4 2006/05/04 15:49:39 strk 00133 * updated all Geometry::getDimension() methods to return Dimension::DimensionType (closes bug#93) 00134 * 00135 * Revision 1.3 2006/04/28 10:55:39 strk 00136 * Geometry constructors made protected, to ensure all constructions use GeometryFactory, 00137 * which has been made friend of all Geometry derivates. getNumPoints() changed to return 00138 * size_t. 00139 * 00140 * Revision 1.2 2006/03/24 09:52:41 strk 00141 * USE_INLINE => GEOS_INLINE 00142 * 00143 * Revision 1.1 2006/03/09 16:46:49 strk 00144 * geos::geom namespace definition, first pass at headers split 00145 * 00146 **********************************************************************/