Spatial4n.Core.Io.NtsShapeReadWriter.WriteShapeToBytes C# (CSharp) Method

WriteShapeToBytes() public method

public WriteShapeToBytes ( Shape shape ) : byte[]
shape Shape
return byte[]
        public byte[] WriteShapeToBytes(Shape shape)
        {
            var p = shape as Shapes.Point;
            if (p != null)
            {
                using (var stream = new MemoryStream(1 + (2 * 8)))
                using (var bytes = new BinaryWriter(stream))
                {
                    bytes.Write(TYPE_POINT);
                    bytes.Write(p.GetX());
                    bytes.Write(p.GetY());
                    return stream.ToArray();
                }
            }

            var rect = shape as Rectangle;
            if (rect != null)
            {

                using (var stream = new MemoryStream(1 + (4 * 8)))
                using (var bytes = new BinaryWriter(stream))
                {
                    bytes.Write(TYPE_BBOX);
                    bytes.Write(rect.GetMinX());
                    bytes.Write(rect.GetMaxX());
                    bytes.Write(rect.GetMinY());
                    bytes.Write(rect.GetMaxY());
                    return stream.ToArray();
                }
            }

            var ntsShape = shape as NtsGeometry;
            if (ntsShape != null)
            {
                var writer = new WKBWriter();
                byte[] bb = writer.Write(ntsShape.GetGeom());
                using (var stream = new MemoryStream(1 + bb.Length))
                using (var bytes = new BinaryWriter(stream))
                {
                    bytes.Write(TYPE_GEOM);
                    bytes.Write(bb);
                    return stream.ToArray();
                }
            }

            throw new ArgumentException("unsuported shape:" + shape);
        }