Revision 10103 trunk/libraries/libDwg/src/com/iver/cit/jdwglib/dwg/readers/objreaders/v1314/DwgAttdefReader1314.java
DwgAttdefReader1314.java | ||
---|---|---|
4 | 4 |
*/ |
5 | 5 |
package com.iver.cit.jdwglib.dwg.readers.objreaders.v1314; |
6 | 6 |
|
7 |
import java.awt.geom.Point2D; |
|
8 |
import java.util.List; |
|
9 |
|
|
10 |
import com.iver.cit.jdwglib.dwg.CorruptedDwgEntityException; |
|
11 |
import com.iver.cit.jdwglib.dwg.DwgHandleReference; |
|
7 | 12 |
import com.iver.cit.jdwglib.dwg.DwgObject; |
8 |
import com.iver.cit.jdwglib.dwg.readers.IDwgFileReader;
|
|
9 |
import com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader;
|
|
13 |
import com.iver.cit.jdwglib.dwg.DwgUtil;
|
|
14 |
import com.iver.cit.jdwglib.dwg.objects.DwgAttdef;
|
|
10 | 15 |
|
11 | 16 |
/** |
12 | 17 |
* @author alzabord |
... | ... | |
14 | 19 |
* TODO To change the template for this generated type comment go to |
15 | 20 |
* Window - Preferences - Java - Code Style - Code Templates |
16 | 21 |
*/ |
17 |
public class DwgAttdefReader1314 implements IDwgObjectReader{
|
|
22 |
public class DwgAttdefReader1314 extends AbstractDwg1314Reader{
|
|
18 | 23 |
|
19 | 24 |
/* (non-Javadoc) |
20 | 25 |
* @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject) |
21 | 26 |
*/ |
22 |
public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) { |
|
23 |
// TODO Auto-generated method stub |
|
27 |
public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException { |
|
28 |
if(! (dwgObj instanceof DwgAttdef)) |
|
29 |
throw new RuntimeException("ArcReader 14 solo puede leer DwgAttdef"); |
|
30 |
DwgAttdef att = (DwgAttdef) dwgObj; |
|
31 |
int bitPos = offset; |
|
32 |
bitPos = headTailReader.readObjectHeader(data, offset, att); |
|
24 | 33 |
|
25 |
} |
|
26 |
|
|
27 |
/* (non-Javadoc) |
|
28 |
* @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#setFileReader(com.iver.cit.jdwglib.dwg.readers.IDwgFileReader) |
|
29 |
*/ |
|
30 |
public void setFileReader(IDwgFileReader headTailReader) { |
|
31 |
// TODO Auto-generated method stub |
|
34 |
List val = DwgUtil.getBitDouble(data, bitPos); |
|
35 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
36 |
double elevation = ((Double)val.get(1)).doubleValue(); |
|
37 |
att.setElevation(elevation); |
|
32 | 38 |
|
39 |
|
|
40 |
val = DwgUtil.getRawDouble(data, bitPos); |
|
41 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
42 |
double x = ((Double)val.get(1)).doubleValue(); |
|
43 |
|
|
44 |
val = DwgUtil.getRawDouble(data, bitPos); |
|
45 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
46 |
double y = ((Double)val.get(1)).doubleValue(); |
|
47 |
att.setInsertionPoint(new Point2D.Double(x,y)); |
|
48 |
|
|
49 |
val = DwgUtil.getRawDouble(data, bitPos); |
|
50 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
51 |
x = ((Double)val.get(1)).doubleValue(); |
|
52 |
|
|
53 |
val = DwgUtil.getRawDouble(data, bitPos); |
|
54 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
55 |
y = ((Double)val.get(1)).doubleValue(); |
|
56 |
att.setAlignmentPoint(new Point2D.Double(x,y)); |
|
57 |
|
|
58 |
val = DwgUtil.getBitDouble(data, bitPos); |
|
59 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
60 |
x = ((Double)val.get(1)).doubleValue(); |
|
61 |
|
|
62 |
val = DwgUtil.getBitDouble(data, bitPos); |
|
63 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
64 |
y = ((Double)val.get(1)).doubleValue(); |
|
65 |
|
|
66 |
val = DwgUtil.getBitDouble(data, bitPos); |
|
67 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
68 |
double z = ((Double)val.get(1)).doubleValue(); |
|
69 |
att.setExtrusion(new double[]{x, y, z}); |
|
70 |
|
|
71 |
|
|
72 |
val = DwgUtil.getBitDouble(data, bitPos); |
|
73 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
74 |
double thickness = ((Double)val.get(1)).doubleValue(); |
|
75 |
att.setThickness(thickness); |
|
76 |
|
|
77 |
val = DwgUtil.getBitDouble(data, bitPos); |
|
78 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
79 |
double obliqueAngle = ((Double)val.get(1)).doubleValue(); |
|
80 |
att.setObliqueAngle(obliqueAngle); |
|
81 |
|
|
82 |
|
|
83 |
val = DwgUtil.getBitDouble(data, bitPos); |
|
84 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
85 |
double rotationAngle = ((Double)val.get(1)).doubleValue(); |
|
86 |
att.setRotationAngle(rotationAngle); |
|
87 |
|
|
88 |
|
|
89 |
val = DwgUtil.getBitDouble(data, bitPos); |
|
90 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
91 |
double height = ((Double)val.get(1)).doubleValue(); |
|
92 |
att.setHeight(height); |
|
93 |
|
|
94 |
val = DwgUtil.getBitDouble(data, bitPos); |
|
95 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
96 |
double width = ((Double)val.get(1)).doubleValue(); |
|
97 |
att.setWidthFactor(width); |
|
98 |
|
|
99 |
val = DwgUtil.getTextString(data, bitPos); |
|
100 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
101 |
String text = (String)val.get(1); |
|
102 |
att.setText(text); |
|
103 |
|
|
104 |
|
|
105 |
val = DwgUtil.getBitShort(data, bitPos); |
|
106 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
107 |
int generation = ((Integer)val.get(1)).intValue(); |
|
108 |
att.setGeneration(generation); |
|
109 |
|
|
110 |
val = DwgUtil.getBitShort(data, bitPos); |
|
111 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
112 |
int halign = ((Integer)val.get(1)).intValue(); |
|
113 |
att.setHalign(halign); |
|
114 |
|
|
115 |
val = DwgUtil.getBitShort(data, bitPos); |
|
116 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
117 |
int valign = ((Integer)val.get(1)).intValue(); |
|
118 |
att.setValign(valign); |
|
119 |
|
|
120 |
|
|
121 |
val = DwgUtil.getTextString(data, bitPos); |
|
122 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
123 |
String tag = (String)val.get(1); |
|
124 |
att.setTag(tag); |
|
125 |
|
|
126 |
val = DwgUtil.getBitShort(data, bitPos); |
|
127 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
128 |
int fieldLength = ((Integer)val.get(1)).intValue(); |
|
129 |
att.setFieldLength(fieldLength); |
|
130 |
|
|
131 |
val = DwgUtil.getRawChar(data, bitPos); |
|
132 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
133 |
int flags = ((Integer)val.get(1)).intValue(); |
|
134 |
att.setFlags(flags); |
|
135 |
|
|
136 |
//Esta es la unica diferencia entre attdef y attrib |
|
137 |
val = DwgUtil.getTextString(data, bitPos); |
|
138 |
bitPos = ((Integer)val.get(0)).intValue(); |
|
139 |
String prompt = (String)val.get(1); |
|
140 |
att.setPrompt(prompt); |
|
141 |
|
|
142 |
|
|
143 |
bitPos = headTailReader.readObjectTailer(data, bitPos, att); |
|
144 |
DwgHandleReference handle = new DwgHandleReference(); |
|
145 |
bitPos = handle.read(data, bitPos); |
|
146 |
att.setStyleHandle(handle); |
|
33 | 147 |
} |
34 | 148 |
|
35 | 149 |
} |
Also available in: Unified diff