/// import { CircularString, CompoundCurve, Curve, CurvePolygon, Geometry, GeometryCollection, LineString, MultiLineString, MultiPoint, MultiPolygon, Point, Polygon, PolyhedralSurface, TIN, Triangle } from "@ngageoint/simple-features-js"; import { ByteWriter } from "./ByteWriter"; import { ByteOrder } from "./ByteOrder"; /** * Well Known Binary writer */ export declare class GeometryWriter { private static readonly BYTE_ORDER_BYTE_LENGTH; private static readonly GEOMETRY_TYPE_BYTE_LENGTH; private static readonly INT_BYTE_LENGTH; private static readonly DOUBLE_BYTE_LENGTH; /** * Write a geometry to a well-known bytes * * @param geometry geometry * @param byteOrder byteOrder * @return well-known bytes */ static writeGeometry(geometry: Geometry, byteOrder: any): Buffer; /** * Byte Writer */ private readonly writer; /** * Constructor * @param writer byte writer * @param size */ constructor(writer: ByteWriter, byteOrder?: ByteOrder, size?: number); /** * Get the byte writer * @return byte writer */ getByteWriter(): ByteWriter; /** * Get the written bytes * * @return written bytes */ getBuffer(): Buffer; /** * Write a geometry to the byte writer * @param geometry geometry */ write(geometry: Geometry): void; static getGeometryByteLength(geometry: Geometry): number; /** * Write a Point * @param point point */ writePoint(point: Point): void; /** * Write a Point X and Y value * @param point point */ writeXY(point: Point): void; /** * Write a Point Z value * @param point point */ writeZ(point: Point): void; /** * Write a Point M value * @param point point */ writeM(point: Point): void; /** * Write a Line String * @param lineString Line String */ writeLineString(lineString: LineString): void; /** * Write a Polygon * @param polygon Polygon */ writePolygon(polygon: Polygon): void; /** * Write a Multi Point * @param multiPoint Multi Point */ writeMultiPoint(multiPoint: MultiPoint): void; /** * Write a Multi Line String * @param multiLineString Multi Line String */ writeMultiLineString(multiLineString: MultiLineString): void; /** * Write a Multi Polygon * @param multiPolygon Multi Polygon */ writeMultiPolygon(multiPolygon: MultiPolygon): void; /** * Write a Geometry Collection * @param geometryCollection Geometry Collection */ writeGeometryCollection(geometryCollection: GeometryCollection): void; /** * Write a Circular String * @param circularString Circular String */ writeCircularString(circularString: CircularString): void; /** * Write a Compound Curve * @param compoundCurve Compound Curve */ writeCompoundCurve(compoundCurve: CompoundCurve): void; /** * Write a Curve Polygon * @param curvePolygon Curve Polygon */ writeCurvePolygon(curvePolygon: CurvePolygon): void; /** * Write a Polyhedral Surface * @param polyhedralSurface Polyhedral Surface */ writePolyhedralSurface(polyhedralSurface: PolyhedralSurface): void; /** * Write a TIN * @param tin TIN */ writeTIN(tin: TIN): void; /** * Write a Triangle * @param triangle Triangle */ writeTriangle(triangle: Triangle): void; /** * Write a geometry to the byte writer * @param writer byte writer * @param geometry geometry */ static writeGeometryWithByteWriter(writer: ByteWriter, geometry: Geometry): void; /** * Write a Point * * @param writer * byte writer * @param point * point * @throws IOException * upon failure to write */ static writePoint(writer: ByteWriter, point: Point): void; /** * Write a Line String * * @param writer * byte writer * @param lineString * Line String */ static writeLineString(writer: ByteWriter, lineString: LineString): void; /** * Write a Polygon * * @param writer * byte writer * @param polygon * Polygon * @throws IOException * upon failure to write */ static writePolygon(writer: ByteWriter, polygon: Polygon): void; /** * Write a Multi Point * * @param writer * byte writer * @param multiPoint * Multi Point * @throws IOException * upon failure to write */ static writeMultiPoint(writer: ByteWriter, multiPoint: MultiPoint): void; /** * Write a Multi Line String * * @param writer * byte writer * @param multiLineString * Multi Line String * @throws IOException * upon failure to write */ static writeMultiLineString(writer: ByteWriter, multiLineString: MultiLineString): void; /** * Write a Multi Polygon * * @param writer * byte writer * @param multiPolygon * Multi Polygon * @throws IOException * upon failure to write */ static writeMultiPolygon(writer: ByteWriter, multiPolygon: MultiPolygon): void; /** * Write a Geometry Collection * * @param writer * byte writer * @param geometryCollection * Geometry Collection * @throws IOException * upon failure to write */ static writeGeometryCollection(writer: ByteWriter, geometryCollection: GeometryCollection): void; /** * Write a Circular String * * @param writer * byte writer * @param circularString * Circular String * @throws IOException * upon failure to write */ static writeCircularString(writer: ByteWriter, circularString: CircularString): void; /** * Write a Compound Curve * * @param writer * byte writer * @param compoundCurve * Compound Curve * @throws IOException * upon failure to write */ static writeCompoundCurve(writer: ByteWriter, compoundCurve: CompoundCurve): void; /** * Write a Curve Polygon * * @param writer * byte writer * @param curvePolygon * Curve Polygon * @throws IOException * upon failure to write */ static writeCurvePolygon(writer: ByteWriter, curvePolygon: CurvePolygon): void; /** * Write a Polyhedral Surface * * @param writer * byte writer * @param polyhedralSurface * Polyhedral Surface * @throws IOException * upon failure to write */ static writePolyhedralSurface(writer: ByteWriter, polyhedralSurface: PolyhedralSurface): void; /** * Write a TIN * * @param writer * byte writer * @param tin * TIN * @throws IOException * upon failure to write */ static writeTIN(writer: ByteWriter, tin: TIN): void; /** * Write a Triangle * * @param writer * byte writer * @param triangle * Triangle * @throws IOException * upon failure to write */ static writeTriangle(writer: ByteWriter, triangle: Triangle): void; private static getPointByteLength; /** * Write a Line String * @param lineString Line String */ private static getLineStringByteLength; /** * Write a Polygon * @param polygon Polygon */ private static getPolygonByteLength; /** * Write a Multi Point * @param multiPoint Multi Point */ private static getMultiPointByteLength; /** * Write a Multi Line String * @param multiLineString Multi Line String */ private static getMultiLineStringByteLength; /** * Write a Multi Polygon * @param multiPolygon Multi Polygon */ private static getMultiPolygonByteLength; /** * Write a Geometry Collection * @param geometryCollection Geometry Collection */ private static getGeometryCollectionByteLength; /** * Write a Circular String * @param circularString Circular String */ private static getCircularStringByteLength; /** * Write a Compound Curve * @param compoundCurve Compound Curve */ private static getCompoundCurveByteLength; /** * Write a Curve Polygon * @param curvePolygon Curve Polygon */ private static getCurvePolygonByteLength; /** * Write a Polyhedral Surface * @param polyhedralSurface Polyhedral Surface */ private static getPolyhedralSurfaceByteLength; /** * Write a TIN * @param tin TIN */ private static getTINByteLength; /** * Write a Triangle * @param triangle Triangle */ private static getTriangleByteLength; }