public static List<byte> GenerateHeader(IStGeometry geometry, List<byte> encodedBytes)
        {
            // 8 bytes header
            var header = new List<byte>();

            // 4 first bytes => number of used bytes to encode coordinates
            var encodedNbBytes = new List<byte>(StCoordinatesSystemHelper.GetBytesFromValue(encodedBytes.Count, StParameters.CoordinatesSystem));
            for (int i = encodedNbBytes.Count; i < 4; ++i)
            {
                encodedNbBytes.Add(0);
            }
            header.AddRange(encodedNbBytes);

            // 1 unknown byte (perhaps big/little endianness ?)
            header.Add(1);

            // 1 byte to define geometry dimension (Z / M)
            int zm = 0;
            if (geometry.HasZ)
                zm += 1;
            if (geometry.HasM)
                zm += 2;
            header.Add((byte)zm);

            // 2 unknown bytes
            header.AddRange(new byte[] { 0, 0 });

            return header;
        }
        public static List <byte> GenerateHeader(IStGeometry geometry, List <byte> encodedBytes)
        {
            // 8 bytes header
            var header = new List <byte>();

            // 4 first bytes => number of used bytes to encode coordinates
            var encodedNbBytes = new List <byte>(StCoordinatesSystemHelper.GetBytesFromValue(encodedBytes.Count, StParameters.CoordinatesSystem));

            for (int i = encodedNbBytes.Count; i < 4; ++i)
            {
                encodedNbBytes.Add(0);
            }
            header.AddRange(encodedNbBytes);

            // 1 unknown byte (perhaps big/little endianness ?)
            header.Add(1);

            // 1 byte to define geometry dimension (Z / M)
            int zm = 0;

            if (geometry.HasZ)
            {
                zm += 1;
            }
            if (geometry.HasM)
            {
                zm += 2;
            }
            header.Add((byte)zm);

            // 2 unknown bytes
            header.AddRange(new byte[] { 0, 0 });

            return(header);
        }
        public static void Write(IStGeometry geo)
        {
            var log = geo + " : ";

            Debug.Write(log);

            Write(geo.Bytes);
        }
        public static void Write(IStGeometry geo)
        {
            var log = geo + " : ";
            Debug.Write(log);

            Write(geo.Bytes);
        }