GEOS 3.2.2
|
00001 /********************************************************************** 00002 * $Id: MultiLineString.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/MultiLineString.java rev. 1.40 00018 * 00019 **********************************************************************/ 00020 00021 #ifndef GEOS_GEOS_MULTILINESTRING_H 00022 #define GEOS_GEOS_MULTILINESTRING_H 00023 00024 #include <geos/export.h> 00025 #include <geos/geom/GeometryCollection.h> // for inheritance 00026 //#include <geos/platform.h> 00027 #include <geos/geom/Dimension.h> 00028 00029 #include <string> 00030 #include <vector> 00031 00032 #include <geos/inline.h> 00033 00034 // Forward declarations 00035 namespace geos { 00036 namespace geom { // geos::geom 00037 class Coordinate; 00038 class CoordinateArraySequence; 00039 } 00040 } 00041 00042 namespace geos { 00043 namespace geom { // geos::geom 00044 00046 class GEOS_DLL MultiLineString: public GeometryCollection { 00047 00048 public: 00049 00050 friend class GeometryFactory; 00051 00052 virtual ~MultiLineString(); 00053 00055 Dimension::DimensionType getDimension() const; 00056 00062 int getBoundaryDimension() const; 00063 00065 Geometry* getBoundary() const; 00066 00067 std::string getGeometryType() const; 00068 00069 virtual GeometryTypeId getGeometryTypeId() const; 00070 00071 bool isClosed() const; 00072 00073 bool equalsExact(const Geometry *other, double tolerance=0) const; 00074 00075 Geometry *clone() const; 00076 00086 MultiLineString* reverse() const; 00087 00088 protected: 00089 00109 MultiLineString(std::vector<Geometry *> *newLines, 00110 const GeometryFactory *newFactory); 00111 00112 MultiLineString(const MultiLineString &mp); 00113 }; 00114 00115 } // namespace geos::geom 00116 } // namespace geos 00117 00118 #ifdef GEOS_INLINE 00119 # include "geos/geom/MultiLineString.inl" 00120 #endif 00121 00122 #endif // ndef GEOS_GEOS_MULTILINESTRING_H 00123 00124 /********************************************************************** 00125 * $Log$ 00126 * Revision 1.5 2006/05/04 15:49:39 strk 00127 * updated all Geometry::getDimension() methods to return Dimension::DimensionType (closes bug#93) 00128 * 00129 * Revision 1.4 2006/04/28 10:55:39 strk 00130 * Geometry constructors made protected, to ensure all constructions use GeometryFactory, 00131 * which has been made friend of all Geometry derivates. getNumPoints() changed to return 00132 * size_t. 00133 * 00134 * Revision 1.3 2006/03/24 09:52:41 strk 00135 * USE_INLINE => GEOS_INLINE 00136 * 00137 * Revision 1.2 2006/03/23 12:12:01 strk 00138 * Fixes to allow build with -DGEOS_INLINE 00139 * 00140 * Revision 1.1 2006/03/09 16:46:49 strk 00141 * geos::geom namespace definition, first pass at headers split 00142 * 00143 **********************************************************************/