20 #ifndef GEOS_IO_WKBWRITER_H
21 #define GEOS_IO_WKBWRITER_H
23 #include <geos/export.h>
25 #include <geos/util/Machine.h>
32 class CoordinateSequence;
34 class GeometryCollection;
40 class MultiLineString;
72 class GEOS_DLL WKBWriter {
87 WKBWriter(
int dims = 2,
int bo = getMachineByteOrder(),
bool includeSRID =
false);
93 virtual ~WKBWriter() =
default;
101 getOutputDimension()
const
103 return defaultOutputDimension;
113 virtual void setOutputDimension(
int newOutputDimension);
130 virtual void setByteOrder(
int newByteOrder);
138 getIncludeSRID()
const
148 setIncludeSRID(
int newIncludeSRID)
150 includeSRID = (0 == newIncludeSRID ? false :
true);
160 void write(
const geom::Geometry& g, std::ostream& os);
170 void writeHEX(
const geom::Geometry& g, std::ostream& os);
175 int defaultOutputDimension;
182 std::ostream* outStream;
184 unsigned char buf[8];
186 void writePoint(
const geom::Point& p);
189 void writeLineString(
const geom::LineString& ls);
192 void writePolygon(
const geom::Polygon& p);
195 void writeGeometryCollection(
const geom::GeometryCollection& c,
int wkbtype);
198 void writeCoordinateSequence(
const geom::CoordinateSequence& cs,
bool sized);
201 void writeCoordinate(
const geom::CoordinateSequence& cs,
size_t idx,
bool is3d);
204 void writeGeometryType(
int geometryType,
int SRID);
207 void writeSRID(
int SRID);
210 void writeByteOrder();
213 void writeInt(
int intValue);
221 #endif // #ifndef GEOS_IO_WKBWRITER_H