Statistics
| Revision:

svn-gvsig-desktop / branches / v10 / libraries / libDwg / src / com / iver / cit / jdwglib / dwg / readers / objreaders / v2004 / DwgLinearDimensionReader2004.java @ 23112

History | View | Annotate | Download (5.9 KB)

1
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5
package com.iver.cit.jdwglib.dwg.readers.objreaders.v2004;
6

    
7
import java.awt.geom.Point2D;
8
import java.util.ArrayList;
9

    
10
import com.iver.cit.jdwglib.dwg.DwgHandleReference;
11
import com.iver.cit.jdwglib.dwg.CorruptedDwgEntityException;
12
import com.iver.cit.jdwglib.dwg.DwgObject;
13
import com.iver.cit.jdwglib.dwg.DwgUtil;
14
import com.iver.cit.jdwglib.dwg.objects.DwgLinearDimension;
15

    
16
/**
17
 * @author alzabord
18
 *
19
 * TODO To change the template for this generated type comment go to
20
 * Window - Preferences - Java - Code Style - Code Templates
21
 */
22
public class DwgLinearDimensionReader2004 extends AbstractDwg2004Reader{
23

    
24
        /* (non-Javadoc)
25
         * @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject)
26
         */
27
        public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException {
28
                if(! (dwgObj instanceof DwgLinearDimension))
29
                        throw new RuntimeException("DwgLinearDimensionReader2004 solo puede leer DwgLinearDimension");
30
                DwgLinearDimension dim = (DwgLinearDimension) dwgObj;
31
                int bitPos = offset;
32
                bitPos = readObjectHeader(data, bitPos, dwgObj);
33

    
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

    
45
                v = DwgUtil.getRawDouble(data, bitPos);
46
                bitPos = ((Integer)v.get(0)).intValue();
47
                x = ((Double)v.get(1)).doubleValue();
48
                v = DwgUtil.getRawDouble(data, bitPos);
49
                bitPos = ((Integer)v.get(0)).intValue();
50
                y = ((Double)v.get(1)).doubleValue();
51
                dim.setTextMidpoint(new Point2D.Double(x, y));
52

    
53
                v = DwgUtil.getBitDouble(data, bitPos);
54
                bitPos = ((Integer)v.get(0)).intValue();
55
                double val = ((Double)v.get(1)).doubleValue();
56
                dim.setElevation(val);
57

    
58
                v = DwgUtil.getRawChar(data, bitPos);
59
                bitPos = ((Integer)v.get(0)).intValue();
60
                int flags = ((Integer)v.get(1)).intValue();
61
                dim.setFlags(flags);
62

    
63
                v = DwgUtil.getTextString(data, bitPos);
64
                bitPos = ((Integer)v.get(0)).intValue();
65
                String text = (String)v.get(1);
66
                dim.setText(text);
67

    
68
                v = DwgUtil.getBitDouble(data, bitPos);
69
                bitPos = ((Integer)v.get(0)).intValue();
70
                val = ((Double)v.get(1)).doubleValue();
71
                dim.setRotation(val);
72

    
73
                v = DwgUtil.getBitDouble(data, bitPos);
74
                bitPos = ((Integer)v.get(0)).intValue();
75
                val = ((Double)v.get(1)).doubleValue();
76
                dim.setHorizDir(val);
77

    
78
                v = DwgUtil.getBitDouble(data, bitPos);
79
                bitPos = ((Integer)v.get(0)).intValue();
80
                x = ((Double)v.get(1)).doubleValue();
81
                v = DwgUtil.getBitDouble(data, bitPos);
82
                bitPos = ((Integer)v.get(0)).intValue();
83
                y = ((Double)v.get(1)).doubleValue();
84
                v = DwgUtil.getBitDouble(data, bitPos);
85
                bitPos = ((Integer)v.get(0)).intValue();
86
                z = ((Double)v.get(1)).doubleValue();
87
                dim.setInsScale(new double[]{x, y, z});
88

    
89
                v = DwgUtil.getBitDouble(data, bitPos);
90
                bitPos = ((Integer)v.get(0)).intValue();
91
                val = ((Double)v.get(1)).doubleValue();
92
                dim.setInsRotation(val);
93

    
94
                v = DwgUtil.getBitShort(data, bitPos);
95
                bitPos = ((Integer)v.get(0)).intValue();
96
                int ap = ((Integer)v.get(1)).intValue();
97
                dim.setAttachmentPoint(ap);
98

    
99
                v = DwgUtil.getBitShort(data, bitPos);
100
                bitPos = ((Integer)v.get(0)).intValue();
101
                int lss = ((Integer)v.get(1)).intValue();
102
                dim.setLinespaceStyle(lss);
103

    
104
                v = DwgUtil.getBitDouble(data, bitPos);
105
                bitPos = ((Integer)v.get(0)).intValue();
106
                val = ((Double)v.get(1)).doubleValue();
107
                dim.setLinespaceFactor(val);
108

    
109
                v = DwgUtil.getBitDouble(data, bitPos);
110
                bitPos = ((Integer)v.get(0)).intValue();
111
                val = ((Double)v.get(1)).doubleValue();
112
                dim.setActualMeasurement(val);
113

    
114
                v = DwgUtil.getRawDouble(data, bitPos);
115
                bitPos = ((Integer)v.get(0)).intValue();
116
                x = ((Double)v.get(1)).doubleValue();
117
                v = DwgUtil.getRawDouble(data, bitPos);
118
                bitPos = ((Integer)v.get(0)).intValue();
119
                val = ((Double)v.get(1)).doubleValue();
120
                dim.setPt12(new Point2D.Double(x, y));
121

    
122
                v = DwgUtil.getBitDouble(data, bitPos);
123
                bitPos = ((Integer)v.get(0)).intValue();
124
                x = ((Double)v.get(1)).doubleValue();
125
                v = DwgUtil.getBitDouble(data, bitPos);
126
                bitPos = ((Integer)v.get(0)).intValue();
127
                y = ((Double)v.get(1)).doubleValue();
128
                v = DwgUtil.getBitDouble(data, bitPos);
129
                bitPos = ((Integer)v.get(0)).intValue();
130
                z = ((Double)v.get(1)).doubleValue();
131
                dim.setPt10(new double[]{x, y, z});
132

    
133
                v = DwgUtil.getBitDouble(data, bitPos);
134
                bitPos = ((Integer)v.get(0)).intValue();
135
                x = ((Double)v.get(1)).doubleValue();
136
                v = DwgUtil.getBitDouble(data, bitPos);
137
                bitPos = ((Integer)v.get(0)).intValue();
138
                y = ((Double)v.get(1)).doubleValue();
139
                v = DwgUtil.getBitDouble(data, bitPos);
140
                bitPos = ((Integer)v.get(0)).intValue();
141
                z = ((Double)v.get(1)).doubleValue();
142
                dim.setPt13(new double[]{x, y, z});
143

    
144
                v = DwgUtil.getBitDouble(data, bitPos);
145
                bitPos = ((Integer)v.get(0)).intValue();
146
                x = ((Double)v.get(1)).doubleValue();
147
                v = DwgUtil.getBitDouble(data, bitPos);
148
                bitPos = ((Integer)v.get(0)).intValue();
149
                y = ((Double)v.get(1)).doubleValue();
150
                v = DwgUtil.getBitDouble(data, bitPos);
151
                bitPos = ((Integer)v.get(0)).intValue();
152
                z = ((Double)v.get(1)).doubleValue();
153
                dim.setPt14(new double[]{x, y, z});
154

    
155
                v = DwgUtil.getBitDouble(data, bitPos);
156
                bitPos = ((Integer)v.get(0)).intValue();
157
                val = ((Double)v.get(1)).doubleValue();
158
                dim.setExtRotation(val);
159

    
160
                v = DwgUtil.getBitDouble(data, bitPos);
161
                bitPos = ((Integer)v.get(0)).intValue();
162
                val = ((Double)v.get(1)).doubleValue();
163
                dim.setDimensionRotation(val);
164

    
165
                bitPos = readObjectTailer(data, bitPos, dim);
166

    
167
                DwgHandleReference hr = new DwgHandleReference();
168
                bitPos = hr.read(data, bitPos);
169
                dim.setDimstyleHandle(hr);
170

    
171
                hr = new DwgHandleReference();
172
                bitPos = hr.read(data, bitPos);
173
                dim.setAnonBlockHandle(hr);
174
        }
175
}