public int readObjectHeaderV15(int[] data, int offset) throws Exception {
		int bitPos = offset;
		Integer mode = (Integer)DwgUtil.getBits(data, 2, bitPos);
	    bitPos = bitPos + 2;
	    setMode(mode.intValue());
	    Vector v = DwgUtil.getBitLong(data, bitPos);
	    bitPos = ((Integer)v.get(0)).intValue();
	    int rnum = ((Integer)v.get(1)).intValue();
	    setNumReactors(rnum);
	    v = DwgUtil.testBit(data, bitPos);
	    bitPos = ((Integer)v.get(0)).intValue();
	    boolean nolinks = ((Boolean)v.get(1)).booleanValue();
	    setNoLinks(nolinks);
	    v = DwgUtil.getBitShort(data, bitPos);
	    bitPos = ((Integer)v.get(0)).intValue();
	    int color = ((Integer)v.get(1)).intValue();
	    setColor(color);
	    v = DwgUtil.getBitDouble(data, bitPos);
	    bitPos = ((Integer)v.get(0)).intValue();
	    float ltscale = ((Double)v.get(1)).floatValue();
	    Integer ltflag = (Integer)DwgUtil.getBits(data, 2, bitPos);
	    bitPos = bitPos + 2;
	    Integer psflag = (Integer)DwgUtil.getBits(data, 2, bitPos);
	    bitPos = bitPos + 2;
	    v = DwgUtil.getBitShort(data, bitPos);
	    bitPos = ((Integer)v.get(0)).intValue();
	    int invis = ((Integer)v.get(1)).intValue();
	    v = DwgUtil.getRawChar(data, bitPos);
	    bitPos = ((Integer)v.get(0)).intValue();
	    int weight = ((Integer)v.get(1)).intValue();
		return bitPos;
	}
public int readObjectHeaderV15 ( int [ ] data , int offset ) throws Exception { int bitPos = offset ; Integer mode = ( Integer ) DwgUtil . getBits ( data , 2 , bitPos ) ; bitPos = bitPos + 2 ; setMode ( mode . intValue ( ) ) ; Vector v = DwgUtil . getBitLong ( data , bitPos ) ; bitPos = ( ( Integer ) v . get ( 0 ) ) . intValue ( ) ; int rnum = ( ( Integer ) v . get ( 1 ) ) . intValue ( ) ; setNumReactors ( rnum ) ; v = DwgUtil . testBit ( data , bitPos ) ; bitPos = ( ( Integer ) v . get ( 0 ) ) . intValue ( ) ; boolean nolinks = ( ( Boolean ) v . get ( 1 ) ) . booleanValue ( ) ; setNoLinks ( nolinks ) ; v = DwgUtil . getBitShort ( data , bitPos ) ; bitPos = ( ( Integer ) v . get ( 0 ) ) . intValue ( ) ; int color = ( ( Integer ) v . get ( 1 ) ) . intValue ( ) ; setColor ( color ) ; v = DwgUtil . getBitDouble ( data , bitPos ) ; bitPos = ( ( Integer ) v . get ( 0 ) ) . intValue ( ) ; float ltscale = ( ( Double ) v . get ( 1 ) ) . floatValue ( ) ; Integer ltflag = ( Integer ) DwgUtil . getBits ( data , 2 , bitPos ) ; bitPos = bitPos + 2 ; Integer psflag = ( Integer ) DwgUtil . getBits ( data , 2 , bitPos ) ; bitPos = bitPos + 2 ; v = DwgUtil . getBitShort ( data , bitPos ) ; bitPos = ( ( Integer ) v . get ( 0 ) ) . intValue ( ) ; int invis = ( ( Integer ) v . get ( 1 ) ) . intValue ( ) ; v = DwgUtil . getRawChar ( data , bitPos ) ; bitPos = ( ( Integer ) v . get ( 0 ) ) . intValue ( ) ; int weight = ( ( Integer ) v . get ( 1 ) ) . intValue ( ) ; return bitPos ; }
Reads the header of an object in a DWG file Version 15

@param data Array of unsigned bytes obtained from the DWG binary file
@param offset The current bit offset where the value begins
@return int New offset
@throws Exception If an unexpected bit value is found in the DWG file. Occurs
when we are looking for LwPolylines.