Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / libraries / libDwg / src / org / gvsig / dwg / lib / readers / v15 / DwgLinearDimensionReader15.java @ 28969

History | View | Annotate | Download (5.84 KB)

1 9910 azabala
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5 28969 jmvivo
package org.gvsig.dwg.lib.readers.v15;
6 9910 azabala
7 9930 azabala
import java.awt.geom.Point2D;
8
import java.util.ArrayList;
9
10 28969 jmvivo
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
11
import org.gvsig.dwg.lib.DwgHandleReference;
12
import org.gvsig.dwg.lib.DwgObject;
13
import org.gvsig.dwg.lib.DwgUtil;
14
import org.gvsig.dwg.lib.objects.DwgLinearDimension;
15 9910 azabala
16 28969 jmvivo
17 9910 azabala
/**
18
 * @author alzabord
19
 *
20
 * TODO To change the template for this generated type comment go to
21
 * Window - Preferences - Java - Code Style - Code Templates
22
 */
23 9930 azabala
public class DwgLinearDimensionReader15 extends AbstractDwg15Reader{
24 9910 azabala
25
        /* (non-Javadoc)
26
         * @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject)
27
         */
28 10054 azabala
        public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException {
29 9930 azabala
                if(! (dwgObj instanceof DwgLinearDimension))
30
                        throw new RuntimeException("ArcReader 15 solo puede leer DwgLinearDimension");
31
                DwgLinearDimension dim = (DwgLinearDimension) dwgObj;
32
                int bitPos = offset;
33
                bitPos = headTailReader.readObjectHeader(data, bitPos, dwgObj);
34
                ArrayList v = DwgUtil.getBitDouble(data, bitPos);
35
                bitPos = ((Integer)v.get(0)).intValue();
36
                double x = ((Double)v.get(1)).doubleValue();
37
                v = DwgUtil.getBitDouble(data, bitPos);
38
                bitPos = ((Integer)v.get(0)).intValue();
39
                double y = ((Double)v.get(1)).doubleValue();
40
                v = DwgUtil.getBitDouble(data, bitPos);
41
                bitPos = ((Integer)v.get(0)).intValue();
42
                double z = ((Double)v.get(1)).doubleValue();
43
                dim.setExtrusion(new double[]{x, y, z});
44
                v = DwgUtil.getRawDouble(data, bitPos);
45
                bitPos = ((Integer)v.get(0)).intValue();
46
                x = ((Double)v.get(1)).doubleValue();
47
                v = DwgUtil.getRawDouble(data, bitPos);
48
                bitPos = ((Integer)v.get(0)).intValue();
49
                y = ((Double)v.get(1)).doubleValue();
50
                dim.setTextMidpoint(new Point2D.Double(x, y));
51
                v = DwgUtil.getBitDouble(data, bitPos);
52
                bitPos = ((Integer)v.get(0)).intValue();
53
                double val = ((Double)v.get(1)).doubleValue();
54
                dim.setElevation(val);
55
                v = DwgUtil.getRawChar(data, bitPos);
56
                bitPos = ((Integer)v.get(0)).intValue();
57
                int flags = ((Integer)v.get(1)).intValue();
58
                dim.setFlags(flags);
59
                v = DwgUtil.getTextString(data, bitPos);
60
                bitPos = ((Integer)v.get(0)).intValue();
61
                String text = (String)v.get(1);
62
                dim.setText(text);
63
                v = DwgUtil.getBitDouble(data, bitPos);
64
                bitPos = ((Integer)v.get(0)).intValue();
65
                val = ((Double)v.get(1)).doubleValue();
66
                dim.setRotation(val);
67
                v = DwgUtil.getBitDouble(data, bitPos);
68
                bitPos = ((Integer)v.get(0)).intValue();
69
                val = ((Double)v.get(1)).doubleValue();
70
                dim.setHorizDir(val);
71
                v = DwgUtil.getBitDouble(data, bitPos);
72
                bitPos = ((Integer)v.get(0)).intValue();
73
                x = ((Double)v.get(1)).doubleValue();
74
                v = DwgUtil.getBitDouble(data, bitPos);
75
                bitPos = ((Integer)v.get(0)).intValue();
76
                y = ((Double)v.get(1)).doubleValue();
77
                v = DwgUtil.getBitDouble(data, bitPos);
78
                bitPos = ((Integer)v.get(0)).intValue();
79
                z = ((Double)v.get(1)).doubleValue();
80
                dim.setInsScale(new double[]{x, y, z});
81
                v = DwgUtil.getBitDouble(data, bitPos);
82
                bitPos = ((Integer)v.get(0)).intValue();
83
                val = ((Double)v.get(1)).doubleValue();
84
                dim.setInsRotation(val);
85
                v = DwgUtil.getBitShort(data, bitPos);
86
                bitPos = ((Integer)v.get(0)).intValue();
87
                int ap = ((Integer)v.get(1)).intValue();
88
                dim.setAttachmentPoint(ap);
89
                v = DwgUtil.getBitShort(data, bitPos);
90
                bitPos = ((Integer)v.get(0)).intValue();
91
                int lss = ((Integer)v.get(1)).intValue();
92
                dim.setLinespaceStyle(lss);
93
                v = DwgUtil.getBitDouble(data, bitPos);
94
                bitPos = ((Integer)v.get(0)).intValue();
95
                val = ((Double)v.get(1)).doubleValue();
96
                dim.setLinespaceFactor(val);
97
                v = DwgUtil.getBitDouble(data, bitPos);
98
                bitPos = ((Integer)v.get(0)).intValue();
99
                val = ((Double)v.get(1)).doubleValue();
100
                dim.setActualMeasurement(val);
101
                v = DwgUtil.getRawDouble(data, bitPos);
102
                bitPos = ((Integer)v.get(0)).intValue();
103
                x = ((Double)v.get(1)).doubleValue();
104
                v = DwgUtil.getRawDouble(data, bitPos);
105
                bitPos = ((Integer)v.get(0)).intValue();
106
                val = ((Double)v.get(1)).doubleValue();
107
                dim.setPt12(new Point2D.Double(x, y));
108
                v = DwgUtil.getBitDouble(data, bitPos);
109
                bitPos = ((Integer)v.get(0)).intValue();
110
                x = ((Double)v.get(1)).doubleValue();
111
                v = DwgUtil.getBitDouble(data, bitPos);
112
                bitPos = ((Integer)v.get(0)).intValue();
113
                y = ((Double)v.get(1)).doubleValue();
114
                v = DwgUtil.getBitDouble(data, bitPos);
115
                bitPos = ((Integer)v.get(0)).intValue();
116
                z = ((Double)v.get(1)).doubleValue();
117
                dim.setPt10(new double[]{x, y, z});
118
                v = DwgUtil.getBitDouble(data, bitPos);
119
                bitPos = ((Integer)v.get(0)).intValue();
120
                x = ((Double)v.get(1)).doubleValue();
121
                v = DwgUtil.getBitDouble(data, bitPos);
122
                bitPos = ((Integer)v.get(0)).intValue();
123
                y = ((Double)v.get(1)).doubleValue();
124
                v = DwgUtil.getBitDouble(data, bitPos);
125
                bitPos = ((Integer)v.get(0)).intValue();
126
                z = ((Double)v.get(1)).doubleValue();
127
                dim.setPt13(new double[]{x, y, z});
128
                v = DwgUtil.getBitDouble(data, bitPos);
129
                bitPos = ((Integer)v.get(0)).intValue();
130
                x = ((Double)v.get(1)).doubleValue();
131
                v = DwgUtil.getBitDouble(data, bitPos);
132
                bitPos = ((Integer)v.get(0)).intValue();
133
                y = ((Double)v.get(1)).doubleValue();
134
                v = DwgUtil.getBitDouble(data, bitPos);
135
                bitPos = ((Integer)v.get(0)).intValue();
136
                z = ((Double)v.get(1)).doubleValue();
137
                dim.setPt14(new double[]{x, y, z});
138
                v = DwgUtil.getBitDouble(data, bitPos);
139
                bitPos = ((Integer)v.get(0)).intValue();
140
                val = ((Double)v.get(1)).doubleValue();
141
                dim.setExtRotation(val);
142
                v = DwgUtil.getBitDouble(data, bitPos);
143
                bitPos = ((Integer)v.get(0)).intValue();
144
                val = ((Double)v.get(1)).doubleValue();
145
                dim.setDimensionRotation(val);
146
                bitPos = headTailReader.readObjectTailer(data, bitPos, dim);
147 10054 azabala
148 10014 fdiaz
                DwgHandleReference hr = new DwgHandleReference();
149
                bitPos = hr.read(data, bitPos);
150
                dim.setDimstyleHandle(hr);
151
152
                hr = new DwgHandleReference();
153
                bitPos = hr.read(data, bitPos);
154
                dim.setAnonBlockHandle(hr);
155
        }
156 9910 azabala
}