/** * 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. */ 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; }