GEOS
3.4.2
|
00001 /********************************************************************** 00002 * 00003 * GEOS - Geometry Engine Open Source 00004 * http://geos.osgeo.org 00005 * 00006 * Copyright (C) 2006 Refractions Research Inc. 00007 * 00008 * This is free software; you can redistribute and/or modify it under 00009 * the terms of the GNU Lesser General Public Licence as published 00010 * by the Free Software Foundation. 00011 * See the COPYING file for more information. 00012 * 00013 **********************************************************************/ 00014 00015 #ifndef GEOS_GEOM_COORDINATEARRAYSEQUENCEFACTORY_H 00016 #define GEOS_GEOM_COORDINATEARRAYSEQUENCEFACTORY_H 00017 00018 00019 #include <geos/export.h> 00020 #include <vector> 00021 00022 #include <geos/geom/CoordinateSequenceFactory.h> // for inheritance 00023 00024 #include <geos/inline.h> 00025 00026 // Forward declarations 00027 namespace geos { 00028 namespace geom { 00029 class Coordinate; 00030 } 00031 } 00032 00033 namespace geos { 00034 namespace geom { // geos::geom 00035 00043 class GEOS_DLL CoordinateArraySequenceFactory: public CoordinateSequenceFactory { 00044 00045 public: 00046 00051 CoordinateSequence *create(std::vector<Coordinate> *coords) const; 00052 00053 CoordinateSequence *create(std::vector<Coordinate> *coords, std::size_t dims) const; 00054 00056 CoordinateSequence *create(std::size_t size, std::size_t dimension=0) const; 00057 00058 CoordinateSequence *create(const CoordinateSequence &coordSeq) const; 00059 00063 static const CoordinateSequenceFactory *instance(); 00064 }; 00065 00067 typedef CoordinateArraySequenceFactory DefaultCoordinateSequenceFactory; 00068 00069 } // namespace geos::geom 00070 } // namespace geos 00071 00072 #ifdef GEOS_INLINE 00073 # include "geos/geom/CoordinateArraySequenceFactory.inl" 00074 #endif 00075 00076 #endif // ndef GEOS_GEOM_COORDINATEARRAYSEQUENCEFACTORY_H