public override void Write(Stream output, BitStream bits )
{
bits.WriteBits(1, 1); // type flag = 1
bits.WriteBits(1, 1); // straight flag = 1
bits.WriteBits(4, (UInt32)this._numbits);
bits.WriteBits(1, (true == this._generalLineFlag ? 1 : 0));
if (!this._generalLineFlag)
{
bits.WriteBits(1, (true == this._vertLineFlag ? 1 : 0));
if (!this._vertLineFlag)
{
bits.WriteBits((Int32)this._numbits + 2, this._deltaX);
}
else
{
bits.WriteBits((Int32)this._numbits + 2, this._deltaY);
}
}
else
{
bits.WriteBits((Int32)this._numbits + 2, this._deltaX);
bits.WriteBits((Int32)this._numbits + 2, this._deltaY);
}
}