22 #include <geos/export.h>
24 #include <geos/io/ByteOrderDataInStream.h>
31 #define BAD_GEOM_TYPE_MSG "Bad geometry type encountered in"
35 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
42 class GeometryFactory;
45 class GeometryCollection;
51 class MultiLineString;
54 class CoordinateSequence;
88 void setFixStructure(
bool doFixStructure);
98 std::unique_ptr<geom::Geometry>
read(std::istream& is);
109 std::unique_ptr<geom::Geometry>
read(
const unsigned char* buf,
size_t size);
119 std::unique_ptr<geom::Geometry>
readHEX(std::istream& is);
127 static std::ostream&
printHEX(std::istream& is, std::ostream& os);
134 unsigned int inputDimension;
141 std::array<double, 4> ordValues;
143 std::unique_ptr<geom::Geometry> readGeometry();
145 std::unique_ptr<geom::Point> readPoint();
147 std::unique_ptr<geom::LineString> readLineString();
149 std::unique_ptr<geom::LinearRing> readLinearRing();
151 std::unique_ptr<geom::Polygon> readPolygon();
153 std::unique_ptr<geom::MultiPoint> readMultiPoint();
155 std::unique_ptr<geom::MultiLineString> readMultiLineString();
157 std::unique_ptr<geom::MultiPolygon> readMultiPolygon();
159 std::unique_ptr<geom::GeometryCollection> readGeometryCollection();
161 std::unique_ptr<geom::CoordinateSequence> readCoordinateSequence(
unsigned int);
163 void minMemSize(
int geomType, uint64_t size);
165 void readCoordinate();