GEOS  3.4.2
CoordinateArraySequenceFactory.h
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