Esempio n. 1
0
 /**
  * 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;
 }
Esempio n. 2
0
 /**
  * Reads the tail of an object in a DWG file Version 15
  *
  * @param data Array of bytes obtained from the DWG binary file
  * @param offset Offset for this array of bytes
  * @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 readObjectTailV15(int[] data, int offset) throws Exception {
   int bitPos = offset;
   Vector v = null;
   if (getMode() == 0x0) {
     v = DwgUtil.getHandle(data, bitPos);
     bitPos = ((Integer) v.get(0)).intValue();
     int[] sh = new int[v.size() - 1];
     for (int i = 1; i < v.size(); i++) {
       sh[i - 1] = ((Integer) v.get(i)).intValue();
     }
     Vector shv = new Vector();
     for (int i = 0; i < sh.length; i++) {
       shv.add(new Integer(sh[i]));
     }
     setSubEntityHandle(DwgUtil.handleBinToHandleInt(shv));
   }
   for (int i = 0; i < getNumReactors(); i++) {
     v = DwgUtil.getHandle(data, bitPos);
     bitPos = ((Integer) v.get(0)).intValue();
     int[] handle = new int[v.size() - 1];
     for (int j = 1; j < v.size(); j++) {
       handle[j - 1] = ((Integer) v.get(j)).intValue();
     }
   }
   v = DwgUtil.getHandle(data, bitPos);
   bitPos = ((Integer) v.get(0)).intValue();
   int[] xh = new int[v.size() - 1];
   for (int i = 1; i < v.size(); i++) {
     xh[i - 1] = ((Integer) v.get(i)).intValue();
   }
   Vector xhv = new Vector();
   for (int i = 0; i < xh.length; i++) {
     xhv.add(new Integer(xh[i]));
   }
   setXDicObjHandle(DwgUtil.handleBinToHandleInt(xhv));
   v = DwgUtil.getHandle(data, bitPos);
   bitPos = ((Integer) v.get(0)).intValue();
   int[] lh = new int[v.size() - 1];
   for (int i = 1; i < v.size(); i++) {
     lh[i - 1] = ((Integer) v.get(i)).intValue();
   }
   setLayerHandleCode(lh[0]);
   Vector lhv = new Vector();
   for (int i = 0; i < lh.length; i++) {
     lhv.add(new Integer(lh[i]));
   }
   setLayerHandle(DwgUtil.handleBinToHandleInt(lhv));
   if (!isNoLinks()) {
     v = DwgUtil.getHandle(data, bitPos);
     bitPos = ((Integer) v.get(0)).intValue();
     int[] prev = new int[v.size() - 1];
     for (int i = 1; i < v.size(); i++) {
       prev[i - 1] = ((Integer) v.get(i)).intValue();
     }
     // obj.setPrevious(prev);
     v = DwgUtil.getHandle(data, bitPos);
     bitPos = ((Integer) v.get(0)).intValue();
     int[] next = new int[v.size() - 1];
     for (int i = 1; i < v.size(); i++) {
       next[i - 1] = ((Integer) v.get(i)).intValue();
     }
     // obj.setNext(next);
   }
   if (getLinetypeFlags() == 0x3) {
     v = DwgUtil.getHandle(data, bitPos);
     bitPos = ((Integer) v.get(0)).intValue();
     int[] lth = new int[v.size() - 1];
     for (int i = 1; i < v.size(); i++) {
       lth[i - 1] = ((Integer) v.get(i)).intValue();
     }
     // obj.setLinetype(lth);
   }
   if (getPlotstyleFlags() == 0x3) {
     v = DwgUtil.getHandle(data, bitPos);
     bitPos = ((Integer) v.get(0)).intValue();
     int[] pth = new int[v.size() - 1];
     for (int i = 1; i < v.size(); i++) {
       pth[i - 1] = ((Integer) v.get(i)).intValue();
     }
     // obj.setPlotstyle(pth);
   }
   return bitPos;
 }