root / trunk / libraries / libDwg / src / com / iver / cit / jdwglib / dwg / readers / objreaders / v2004 / DwgBlockControlReader2004.java @ 23942
History | View | Annotate | Download (2.16 KB)
1 | 23942 | vcaballero | /*
|
---|---|---|---|
2 | * Created on 25-ene-2007 by azabala
|
||
3 | *
|
||
4 | */
|
||
5 | package com.iver.cit.jdwglib.dwg.readers.objreaders.v2004; |
||
6 | |||
7 | import java.util.ArrayList; |
||
8 | import java.util.Vector; |
||
9 | |||
10 | import com.iver.cit.jdwglib.dwg.CorruptedDwgEntityException; |
||
11 | import com.iver.cit.jdwglib.dwg.DwgHandleReference; |
||
12 | import com.iver.cit.jdwglib.dwg.DwgObject; |
||
13 | import com.iver.cit.jdwglib.dwg.DwgUtil; |
||
14 | import com.iver.cit.jdwglib.dwg.objects.DwgBlockControl; |
||
15 | |||
16 | /**
|
||
17 | * @author azabala
|
||
18 | */
|
||
19 | public class DwgBlockControlReader2004 extends AbstractDwg2004Reader{ |
||
20 | |||
21 | /* (non-Javadoc)
|
||
22 | * @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject)
|
||
23 | */
|
||
24 | public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException{ |
||
25 | |||
26 | if(! (dwgObj instanceof DwgBlockControl)) |
||
27 | throw new RuntimeException("ArcReader 2004 solo puede leer DwgBlockControl"); |
||
28 | DwgBlockControl blk = (DwgBlockControl) dwgObj; |
||
29 | blk.inserta(); |
||
30 | int bitPos = offset;
|
||
31 | |||
32 | ArrayList v;
|
||
33 | |||
34 | |||
35 | v = DwgUtil.getBitLong(data, bitPos); |
||
36 | bitPos = ((Integer)v.get(0)).intValue(); |
||
37 | int numReactors = ((Integer)v.get(1)).intValue(); |
||
38 | blk.setNumReactors(numReactors); |
||
39 | |||
40 | // FIXME: Asegurarse de esto
|
||
41 | v = DwgUtil.testBit(data, bitPos); |
||
42 | bitPos = ((Integer)v.get(0)).intValue(); |
||
43 | boolean xdicFlag = ((Boolean)v.get(1)).booleanValue(); |
||
44 | |||
45 | v = DwgUtil.getBitShort(data, bitPos); |
||
46 | bitPos = ((Integer)v.get(0)).intValue(); |
||
47 | int enumeration = ((Integer)v.get(1)).intValue(); |
||
48 | |||
49 | DwgHandleReference hr = new DwgHandleReference();
|
||
50 | bitPos = hr.read(data, bitPos); |
||
51 | blk.setNullHandle(hr); |
||
52 | |||
53 | if(!xdicFlag){
|
||
54 | hr = new DwgHandleReference();
|
||
55 | bitPos = hr.read(data, bitPos); |
||
56 | blk.setXDicObjHandle(hr); |
||
57 | } |
||
58 | |||
59 | if (enumeration>0) { |
||
60 | Vector handles = new Vector(); |
||
61 | for (int i=0;i<enumeration;i++) { |
||
62 | hr = new DwgHandleReference();
|
||
63 | bitPos = hr.read(data, bitPos); |
||
64 | handles.add(hr); |
||
65 | } |
||
66 | blk.setCode2Handles(handles); |
||
67 | } |
||
68 | |||
69 | hr = new DwgHandleReference();
|
||
70 | bitPos = hr.read(data, bitPos); |
||
71 | blk.setModelSpaceHandle(hr); |
||
72 | |||
73 | hr = new DwgHandleReference();
|
||
74 | bitPos = hr.read(data, bitPos); |
||
75 | blk.setPaperSpaceHandle(hr); |
||
76 | } |
||
77 | } |