20 #ifndef GEOS_IO_WKBREADER_H
21 #define GEOS_IO_WKBREADER_H
23 #include <geos/export.h>
25 #include <geos/geom/GeometryFactory.h>
26 #include <geos/io/ByteOrderDataInStream.h>
32 #define BAD_GEOM_TYPE_MSG "Bad geometry type encountered in"
36 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
46 class GeometryCollection;
52 class MultiLineString;
96 std::unique_ptr<geom::Geometry> read(std::istream& is);
106 std::unique_ptr<geom::Geometry> readHEX(std::istream& is);
114 static std::ostream& printHEX(std::istream& is, std::ostream& os);
121 unsigned int inputDimension;
123 ByteOrderDataInStream dis;
125 std::vector<double> ordValues;
127 std::unique_ptr<geom::Geometry> readGeometry();
129 std::unique_ptr<geom::Point> readPoint();
131 std::unique_ptr<geom::LineString> readLineString();
133 std::unique_ptr<geom::LinearRing> readLinearRing();
135 std::unique_ptr<geom::Polygon> readPolygon();
137 std::unique_ptr<geom::MultiPoint> readMultiPoint();
139 std::unique_ptr<geom::MultiLineString> readMultiLineString();
141 std::unique_ptr<geom::MultiPolygon> readMultiPolygon();
143 std::unique_ptr<geom::GeometryCollection> readGeometryCollection();
145 std::unique_ptr<geom::CoordinateSequence> readCoordinateSequence(
int);
147 void readCoordinate();
161 #endif // #ifndef GEOS_IO_WKBREADER_H