public static BitWriter WriteLcdAxis(this BitWriter bs, Vector vector)
        {
            VectorSerializer.SerializeLcdAxis(vector, bs);

            return(bs);
        }
        public static BitWriter WriteNearDifference(this BitWriter bs, Vector vector)
        {
            VectorSerializer.SerializeNearDifference(vector, bs);

            return(bs);
        }
        public static BitWriter WriteLinearLongLength(this BitWriter bs, Vector vector)
        {
            VectorSerializer.SerializeLinearLongLength(vector, bs);

            return(bs);
        }
        public static void SerializeNearDifference(Vector vector, BitWriter writerToWrite)
        {
            var nd = (byte)((vector.X + 1) * 9 + (vector.Y + 1) * 3 + (vector.Z + 1) * 1);

            writerToWrite.WriteByte(nd, 4, 5);
        }
 public static void SerializeLinearLongLength(Vector vector, BitWriter writerToWrite)
 {
     writerToWrite.WriteByte((byte)(vector.GetFirstNonZeroComponent() + 15), 4, 5);
 }
 public static void SerializeLinearShortLength(Vector vector, BitWriter writerToWrite)
 {
     writerToWrite.WriteByte((byte)(vector.GetFirstNonZeroComponent() + 5), 3, 4);
 }