Revision 1200

View differences:

tags/org.gvsig.dwg-2.0.250/org.gvsig.dwg.lib/pom.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2

  
3
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4

  
5
  <modelVersion>4.0.0</modelVersion>
6
  <artifactId>org.gvsig.dwg.lib</artifactId>
7
  <packaging>jar</packaging>
8
  <name>${project.artifactId}</name>
9
  <description>
10
Library for read-only access DWG files
11

  
12
Supported versions:
13
- v12
14
- v14
15
- v15
16
- v2004
17

  
18
  </description>
19
  <parent>
20
      <groupId>org.gvsig</groupId>
21
      <artifactId>org.gvsig.dwg</artifactId>
22
      <version>2.0.250</version>
23
  </parent>
24

  
25
  <dependencies>
26
    <dependency>
27
      <groupId>org.gvsig</groupId>
28
      <artifactId>org.gvsig.tools.lib</artifactId>
29
      <scope>compile</scope>
30
    </dependency>
31
    <dependency>
32
      <groupId>org.gvsig</groupId>
33
      <artifactId>org.gvsig.projection.api</artifactId>
34
      <scope>compile</scope>
35
    </dependency>
36
    
37
    <dependency>
38
        <groupId>org.gvsig</groupId>
39
        <artifactId>org.gvsig.fmap.geometry.api</artifactId>
40
        <scope>compile</scope>
41
    </dependency>
42
    
43
  </dependencies>
44

  
45
</project>
tags/org.gvsig.dwg-2.0.250/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/IDwgObjectReader.java
1
/*
2
 * Created on 09-ene-2007
3
 *
4
 * gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
5
 *
6
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
7
 *
8
 * This program is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU General Public License
10
 * as published by the Free Software Foundation; either version 2
11
 * of the License, or (at your option) any later version.
12
 *
13
 * This program is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 * GNU General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU General Public License
19
 * along with this program; if not, write to the Free Software
20
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
21
 *
22
 * For more information, contact:
23
 *
24
 *  Generalitat Valenciana
25
 *   Conselleria d'Infraestructures i Transport
26
 *   Av. Blasco Ib??ez, 50
27
 *   46010 VALENCIA
28
 *   SPAIN
29
 *
30
 *      +34 963862235
31
 *   gvsig@gva.es
32
 *      www.gvsig.gva.es
33
 *
34
 *    or
35
 *
36
 *   IVER T.I. S.A
37
 *   Salamanca 50
38
 *   46005 Valencia
39
 *   Spain
40
 *
41
 *   +34 963163400
42
 *   dac@iver.es
43
 */
44

  
45
package org.gvsig.dwg.lib.readers;
46

  
47
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
48
import org.gvsig.dwg.lib.DwgObject;
49

  
50
/**
51
 * Each dwg entity in the dwg section OBJECTS has a common part
52
 * and an specific part.
53
 * This interface has the responsability of reading the specif part.
54
 * 
55
 * In previous versions of libDwg DwgObject has this responsability, but
56
 * with the inclusion of new versions of DWG (12, 13, 14, 2004) implementation
57
 * is function of the dwg entity and the version.
58
 * 
59
 * 
60
 * 
61
 * @author azabala
62

  
63
 */
64
public interface IDwgObjectReader {
65
	
66
	
67
	/**
68
	 * Reads the specific part of the dwg object
69
	 * @throws Exception 
70
	 * */
71
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException;
72
	/**
73
	 * Sets the fileReader (wich has the responsability of read
74
	 * head and tail of a dwg object)
75
	 * */
76
	public void setFileReader(IDwgFileReader headTailReader);
77
}
tags/org.gvsig.dwg-2.0.250/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/DwgObjectReaderPool.java
1
/*
2
 * Created on 09-ene-2007
3
 *
4
 * gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
5
 *
6
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
7
 *
8
 * This program is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU General Public License
10
 * as published by the Free Software Foundation; either version 2
11
 * of the License, or (at your option) any later version.
12
 *
13
 * This program is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 * GNU General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU General Public License
19
 * along with this program; if not, write to the Free Software
20
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
21
 *
22
 * For more information, contact:
23
 *
24
 *  Generalitat Valenciana
25
 *   Conselleria d'Infraestructures i Transport
26
 *   Av. Blasco Ib��ez, 50
27
 *   46010 VALENCIA
28
 *   SPAIN
29
 *
30
 *      +34 963862235
31
 *   gvsig@gva.es
32
 *      www.gvsig.gva.es
33
 *
34
 *    or
35
 *
36
 *   IVER T.I. S.A
37
 *   Salamanca 50
38
 *   46005 Valencia
39
 *   Spain
40
 *
41
 *   +34 963163400
42
 *   dac@iver.es
43
 */
44
package org.gvsig.dwg.lib.readers;
45

  
46
import java.util.HashMap;
47
import java.util.Map;
48

  
49
import org.gvsig.dwg.lib.DwgObject;
50
import org.gvsig.dwg.lib.objects.DwgArc;
51
import org.gvsig.dwg.lib.objects.DwgAttdef;
52
import org.gvsig.dwg.lib.objects.DwgAttrib;
53
import org.gvsig.dwg.lib.objects.DwgBlock;
54
import org.gvsig.dwg.lib.objects.DwgBlockControl;
55
import org.gvsig.dwg.lib.objects.DwgBlockHeader;
56
import org.gvsig.dwg.lib.objects.DwgCircle;
57
import org.gvsig.dwg.lib.objects.DwgDictionary;
58
import org.gvsig.dwg.lib.objects.DwgDictionaryVar;
59
import org.gvsig.dwg.lib.objects.DwgDimOrd;
60
import org.gvsig.dwg.lib.objects.DwgEllipse;
61
import org.gvsig.dwg.lib.objects.DwgEndblk;
62
import org.gvsig.dwg.lib.objects.DwgFace3D;
63
import org.gvsig.dwg.lib.objects.DwgHatch;
64
import org.gvsig.dwg.lib.objects.DwgIdBuffer;
65
import org.gvsig.dwg.lib.objects.DwgImage;
66
import org.gvsig.dwg.lib.objects.DwgImageDef;
67
import org.gvsig.dwg.lib.objects.DwgImageDefReactor;
68
import org.gvsig.dwg.lib.objects.DwgInsert;
69
import org.gvsig.dwg.lib.objects.DwgLayer;
70
import org.gvsig.dwg.lib.objects.DwgLayerControl;
71
import org.gvsig.dwg.lib.objects.DwgLayerIndex;
72
import org.gvsig.dwg.lib.objects.DwgLine;
73
import org.gvsig.dwg.lib.objects.DwgLinearDimension;
74
import org.gvsig.dwg.lib.objects.DwgLwPolyline;
75
import org.gvsig.dwg.lib.objects.DwgMText;
76
import org.gvsig.dwg.lib.objects.DwgMeshPolyline;
77
import org.gvsig.dwg.lib.objects.DwgMinsert;
78
import org.gvsig.dwg.lib.objects.DwgOle2Frame;
79
import org.gvsig.dwg.lib.objects.DwgPFacePolyline;
80
import org.gvsig.dwg.lib.objects.DwgPoint;
81
import org.gvsig.dwg.lib.objects.DwgPolyline2D;
82
import org.gvsig.dwg.lib.objects.DwgPolyline3D;
83
import org.gvsig.dwg.lib.objects.DwgRasterVariables;
84
import org.gvsig.dwg.lib.objects.DwgSeqend;
85
import org.gvsig.dwg.lib.objects.DwgSolid;
86
import org.gvsig.dwg.lib.objects.DwgSortEntStable;
87
import org.gvsig.dwg.lib.objects.DwgSpline;
88
import org.gvsig.dwg.lib.objects.DwgText;
89
import org.gvsig.dwg.lib.objects.DwgVertex2D;
90
import org.gvsig.dwg.lib.objects.DwgVertex3D;
91
import org.gvsig.dwg.lib.objects.DwgVertexMesh;
92
import org.gvsig.dwg.lib.objects.DwgVertexPFace;
93
import org.gvsig.dwg.lib.objects.DwgVertexPFaceFace;
94
import org.gvsig.dwg.lib.objects.DwgXRecord;
95
import org.gvsig.dwg.lib.readers.v1314.DwgArcReader1314;
96
import org.gvsig.dwg.lib.readers.v1314.DwgAttdefReader1314;
97
import org.gvsig.dwg.lib.readers.v1314.DwgAttribReader1314;
98
import org.gvsig.dwg.lib.readers.v1314.DwgBlockControlReader1314;
99
import org.gvsig.dwg.lib.readers.v1314.DwgBlockHeaderReader1314;
100
import org.gvsig.dwg.lib.readers.v1314.DwgBlockReader1314;
101
import org.gvsig.dwg.lib.readers.v1314.DwgCircleReader1314;
102
import org.gvsig.dwg.lib.readers.v1314.DwgDictionaryReader1314;
103
import org.gvsig.dwg.lib.readers.v1314.DwgDictionaryVarReader1314;
104
import org.gvsig.dwg.lib.readers.v1314.DwgDimOrdReader1314;
105
import org.gvsig.dwg.lib.readers.v1314.DwgEllipseReader1314;
106
import org.gvsig.dwg.lib.readers.v1314.DwgEndBlkReader1314;
107
import org.gvsig.dwg.lib.readers.v1314.DwgFace3DReader1314;
108
import org.gvsig.dwg.lib.readers.v1314.DwgHatchReader1314;
109
import org.gvsig.dwg.lib.readers.v1314.DwgIdBufferReader1314;
110
import org.gvsig.dwg.lib.readers.v1314.DwgImageDefReactor1314;
111
import org.gvsig.dwg.lib.readers.v1314.DwgImageDefReader1314;
112
import org.gvsig.dwg.lib.readers.v1314.DwgImageReader1314;
113
import org.gvsig.dwg.lib.readers.v1314.DwgInsertReader1314;
114
import org.gvsig.dwg.lib.readers.v1314.DwgLayerControlReader1314;
115
import org.gvsig.dwg.lib.readers.v1314.DwgLayerIndexReader1314;
116
import org.gvsig.dwg.lib.readers.v1314.DwgLayerReader1314;
117
import org.gvsig.dwg.lib.readers.v1314.DwgLineReader1314;
118
import org.gvsig.dwg.lib.readers.v1314.DwgLinearDimensionReader1314;
119
import org.gvsig.dwg.lib.readers.v1314.DwgLwPolylineReader1314;
120
import org.gvsig.dwg.lib.readers.v1314.DwgMTextReader1314;
121
import org.gvsig.dwg.lib.readers.v1314.DwgMeshReader1314;
122
import org.gvsig.dwg.lib.readers.v1314.DwgMinsertReader1314;
123
import org.gvsig.dwg.lib.readers.v1314.DwgOle2FrameReader1314;
124
import org.gvsig.dwg.lib.readers.v1314.DwgPFaceReader1314;
125
import org.gvsig.dwg.lib.readers.v1314.DwgPointReader1314;
126
import org.gvsig.dwg.lib.readers.v1314.DwgPolyline2DReader1314;
127
import org.gvsig.dwg.lib.readers.v1314.DwgPolyline3DReader1314;
128
import org.gvsig.dwg.lib.readers.v1314.DwgRasterVariablesReader1314;
129
import org.gvsig.dwg.lib.readers.v1314.DwgSeqEndReader1314;
130
import org.gvsig.dwg.lib.readers.v1314.DwgSolidReader1314;
131
import org.gvsig.dwg.lib.readers.v1314.DwgSortEntsTableReader1314;
132
import org.gvsig.dwg.lib.readers.v1314.DwgSplineReader1314;
133
import org.gvsig.dwg.lib.readers.v1314.DwgTextReader1314;
134
import org.gvsig.dwg.lib.readers.v1314.DwgVertex2DReader1314;
135
import org.gvsig.dwg.lib.readers.v1314.DwgVertex3DReader1314;
136
import org.gvsig.dwg.lib.readers.v1314.DwgVertexMeshReader1314;
137
import org.gvsig.dwg.lib.readers.v1314.DwgVertexPFaceFaceReader1314;
138
import org.gvsig.dwg.lib.readers.v1314.DwgVertexPFaceReader1314;
139
import org.gvsig.dwg.lib.readers.v1314.DwgXrecordReader1314;
140
import org.gvsig.dwg.lib.readers.v15.DwgArcReader15;
141
import org.gvsig.dwg.lib.readers.v15.DwgAttdefReader15;
142
import org.gvsig.dwg.lib.readers.v15.DwgAttribReader15;
143
import org.gvsig.dwg.lib.readers.v15.DwgBlockControlReader15;
144
import org.gvsig.dwg.lib.readers.v15.DwgBlockHeaderReader15;
145
import org.gvsig.dwg.lib.readers.v15.DwgBlockReader15;
146
import org.gvsig.dwg.lib.readers.v15.DwgCircleReader15;
147
import org.gvsig.dwg.lib.readers.v15.DwgDictionaryReader15;
148
import org.gvsig.dwg.lib.readers.v15.DwgEllipseReader15;
149
import org.gvsig.dwg.lib.readers.v15.DwgEndBlkReader15;
150
import org.gvsig.dwg.lib.readers.v15.DwgInsertReader15;
151
import org.gvsig.dwg.lib.readers.v15.DwgLayerControlReader15;
152
import org.gvsig.dwg.lib.readers.v15.DwgLayerReader15;
153
import org.gvsig.dwg.lib.readers.v15.DwgLineReader15;
154
import org.gvsig.dwg.lib.readers.v15.DwgLinearDimensionReader15;
155
import org.gvsig.dwg.lib.readers.v15.DwgLwPolylineReader15;
156
import org.gvsig.dwg.lib.readers.v15.DwgMTextReader15;
157
import org.gvsig.dwg.lib.readers.v15.DwgMeshReader15;
158
import org.gvsig.dwg.lib.readers.v15.DwgPFaceReader15;
159
import org.gvsig.dwg.lib.readers.v15.DwgPointReader15;
160
import org.gvsig.dwg.lib.readers.v15.DwgPolyline2DReader15;
161
import org.gvsig.dwg.lib.readers.v15.DwgPolyline3DReader15;
162
import org.gvsig.dwg.lib.readers.v15.DwgSeqEndReader15;
163
import org.gvsig.dwg.lib.readers.v15.DwgSolidReader15;
164
import org.gvsig.dwg.lib.readers.v15.DwgSplineReader15;
165
import org.gvsig.dwg.lib.readers.v15.DwgTextReader15;
166
import org.gvsig.dwg.lib.readers.v15.DwgVertex2DReader15;
167
import org.gvsig.dwg.lib.readers.v15.DwgVertex3DReader15;
168
import org.gvsig.dwg.lib.readers.v15.DwgVertexMeshReader15;
169
import org.gvsig.dwg.lib.readers.v15.DwgVertexPFaceFaceReader15;
170
import org.gvsig.dwg.lib.readers.v15.DwgVertexPFaceReader15;
171
import org.gvsig.dwg.lib.readers.v2004.DwgArcReader2004;
172
import org.gvsig.dwg.lib.readers.v2004.DwgAttdefReader2004;
173
import org.gvsig.dwg.lib.readers.v2004.DwgAttribReader2004;
174
import org.gvsig.dwg.lib.readers.v2004.DwgBlockControlReader2004;
175
import org.gvsig.dwg.lib.readers.v2004.DwgBlockHeaderReader2004;
176
import org.gvsig.dwg.lib.readers.v2004.DwgBlockReader2004;
177
import org.gvsig.dwg.lib.readers.v2004.DwgCircleReader2004;
178
import org.gvsig.dwg.lib.readers.v2004.DwgDictionaryReader2004;
179
import org.gvsig.dwg.lib.readers.v2004.DwgEllipseReader2004;
180
import org.gvsig.dwg.lib.readers.v2004.DwgEndBlkReader2004;
181
import org.gvsig.dwg.lib.readers.v2004.DwgInsertReader2004;
182
import org.gvsig.dwg.lib.readers.v2004.DwgLayerControlReader2004;
183
import org.gvsig.dwg.lib.readers.v2004.DwgLayerReader2004;
184
import org.gvsig.dwg.lib.readers.v2004.DwgLineReader2004;
185
import org.gvsig.dwg.lib.readers.v2004.DwgLinearDimensionReader2004;
186
import org.gvsig.dwg.lib.readers.v2004.DwgLwPolylineReader2004;
187
import org.gvsig.dwg.lib.readers.v2004.DwgMTextReader2004;
188
import org.gvsig.dwg.lib.readers.v2004.DwgMeshReader2004;
189
import org.gvsig.dwg.lib.readers.v2004.DwgPFaceReader2004;
190
import org.gvsig.dwg.lib.readers.v2004.DwgPointReader2004;
191
import org.gvsig.dwg.lib.readers.v2004.DwgPolyline2DReader2004;
192
import org.gvsig.dwg.lib.readers.v2004.DwgPolyline3DReader2004;
193
import org.gvsig.dwg.lib.readers.v2004.DwgSeqEndReader2004;
194
import org.gvsig.dwg.lib.readers.v2004.DwgSolidReader2004;
195
import org.gvsig.dwg.lib.readers.v2004.DwgSplineReader2004;
196
import org.gvsig.dwg.lib.readers.v2004.DwgTextReader2004;
197
import org.gvsig.dwg.lib.readers.v2004.DwgVertex2DReader2004;
198
import org.gvsig.dwg.lib.readers.v2004.DwgVertex3DReader2004;
199
import org.gvsig.dwg.lib.readers.v2004.DwgVertexMeshReader2004;
200
import org.gvsig.dwg.lib.readers.v2004.DwgVertexPFaceFaceReader2004;
201
import org.gvsig.dwg.lib.readers.v2004.DwgVertexPFaceReader2004;
202

  
203
/**
204
 * @author azabala
205
 */
206
public class DwgObjectReaderPool {
207
	
208
	private static final DwgObjectReaderPool _instance = 
209
		new DwgObjectReaderPool();
210
	
211
	private Map obj_readers;
212
	
213
	static{
214
		
215
//		READERS FOR DWG V2004
216
		_instance.put(DwgArc.class, "2004", new DwgArcReader2004());
217
		_instance.put(DwgAttdef.class, "2004", new DwgAttdefReader2004());
218
		_instance.put(DwgAttrib.class, "2004", new DwgAttribReader2004());
219
		_instance.put(DwgBlock.class, "2004", new DwgBlockReader2004());
220
		_instance.put(DwgBlockControl.class, "2004", new DwgBlockControlReader2004());
221
		_instance.put(DwgBlockHeader.class, "2004", new DwgBlockHeaderReader2004());
222
		_instance.put(DwgCircle.class, "2004", new DwgCircleReader2004());
223
		_instance.put(DwgEllipse.class, "2004", new DwgEllipseReader2004());
224
		_instance.put(DwgEndblk.class, "2004", new DwgEndBlkReader2004());
225
		_instance.put(DwgInsert.class, "2004", new DwgInsertReader2004());
226
		_instance.put(DwgLayer.class, "2004", new DwgLayerReader2004());
227
		_instance.put(DwgLayerControl.class, "2004", new DwgLayerControlReader2004());
228
		_instance.put(DwgLine.class, "2004", new DwgLineReader2004());
229
		_instance.put(DwgLinearDimension.class, "2004", new DwgLinearDimensionReader2004());
230
		_instance.put(DwgLwPolyline.class, "2004", new DwgLwPolylineReader2004());
231
		_instance.put(DwgMText.class, "2004", new DwgMTextReader2004());
232
		_instance.put(DwgPoint.class, "2004", new DwgPointReader2004());
233
		_instance.put(DwgPolyline2D.class, "2004", new DwgPolyline2DReader2004());
234
		_instance.put(DwgPolyline3D.class, "2004", new DwgPolyline3DReader2004());
235
		_instance.put(DwgSeqend.class, "2004", new DwgSeqEndReader2004());
236
		_instance.put(DwgSpline.class, "2004", new DwgSplineReader2004());
237
		_instance.put(DwgText.class, "2004", new DwgTextReader2004());
238
		_instance.put(DwgVertex2D.class, "2004", new DwgVertex2DReader2004());
239
		_instance.put(DwgVertex3D.class, "2004", new DwgVertex3DReader2004());
240
		_instance.put(DwgDictionary.class, "2004", new DwgDictionaryReader2004());
241
		_instance.put(DwgVertexPFace.class, "2004", new DwgVertexPFaceReader2004());
242
		_instance.put(DwgVertexPFaceFace.class, "2004", new DwgVertexPFaceFaceReader2004());
243
		_instance.put(DwgPFacePolyline.class, "2004", new DwgPFaceReader2004());
244
		_instance.put(DwgMeshPolyline.class, "2004", new DwgMeshReader2004());
245
		_instance.put(DwgVertexMesh.class, "2004", new DwgVertexMeshReader2004());
246
		_instance.put(DwgSolid.class, "2004", new DwgSolidReader2004());
247

  
248
		//READERS FOR DWG V15
249
		_instance.put(DwgArc.class, "15", new DwgArcReader15());
250
		_instance.put(DwgAttdef.class, "15", new DwgAttdefReader15());
251
		_instance.put(DwgAttrib.class, "15", new DwgAttribReader15());
252
		_instance.put(DwgBlock.class, "15", new DwgBlockReader15());
253
		_instance.put(DwgBlockControl.class, "15", new DwgBlockControlReader15());
254
		_instance.put(DwgBlockHeader.class, "15", new DwgBlockHeaderReader15());
255
		_instance.put(DwgCircle.class, "15", new DwgCircleReader15());
256
		_instance.put(DwgEllipse.class, "15", new DwgEllipseReader15());
257
		_instance.put(DwgEndblk.class, "15", new DwgEndBlkReader15());
258
		_instance.put(DwgInsert.class, "15", new DwgInsertReader15());
259
		_instance.put(DwgLayer.class, "15", new DwgLayerReader15());
260
		_instance.put(DwgLayerControl.class, "15", new DwgLayerControlReader15());
261
		_instance.put(DwgLine.class, "15", new DwgLineReader15());
262
		_instance.put(DwgLinearDimension.class, "15", new DwgLinearDimensionReader15());
263
		_instance.put(DwgLwPolyline.class, "15", new DwgLwPolylineReader15());
264
		_instance.put(DwgMText.class, "15", new DwgMTextReader15());
265
		_instance.put(DwgPoint.class, "15", new DwgPointReader15());
266
		_instance.put(DwgPolyline2D.class, "15", new DwgPolyline2DReader15());
267
		_instance.put(DwgPolyline3D.class, "15", new DwgPolyline3DReader15());
268
		_instance.put(DwgSeqend.class, "15", new DwgSeqEndReader15());
269
//		_instance.put(DwgSolid.class, "15", new DwgSolidReader15());
270
		_instance.put(DwgSpline.class, "15", new DwgSplineReader15());
271
		_instance.put(DwgText.class, "15", new DwgTextReader15());
272
		_instance.put(DwgVertex2D.class, "15", new DwgVertex2DReader15());
273
		_instance.put(DwgVertex3D.class, "15", new DwgVertex3DReader15());
274
		_instance.put(DwgDictionary.class, "15", new DwgDictionaryReader15());
275
		_instance.put(DwgVertexPFace.class, "15", new DwgVertexPFaceReader15());
276
		_instance.put(DwgVertexPFaceFace.class, "15", new DwgVertexPFaceFaceReader15());
277
		_instance.put(DwgPFacePolyline.class, "15", new DwgPFaceReader15());
278
		_instance.put(DwgMeshPolyline.class, "15", new DwgMeshReader15());
279
		_instance.put(DwgVertexMesh.class, "15", new DwgVertexMeshReader15());
280

  
281
		//READERS FOR DWG V13 AND V14
282
		_instance.put(DwgArc.class, "1314", new DwgArcReader1314());
283
		_instance.put(DwgAttdef.class, "1314", new DwgAttdefReader1314());
284
		_instance.put(DwgAttrib.class, "1314", new DwgAttribReader1314());
285
		_instance.put(DwgBlock.class, "1314", new DwgBlockReader1314());
286
		_instance.put(DwgBlockControl.class, "1314", new DwgBlockControlReader1314());
287
		_instance.put(DwgBlockHeader.class, "1314", new DwgBlockHeaderReader1314());
288
		_instance.put(DwgCircle.class, "1314", new DwgCircleReader1314());
289
		_instance.put(DwgDictionary.class, "1314", new DwgDictionaryReader1314());
290
		_instance.put(DwgDictionaryVar.class, "1314", new DwgDictionaryVarReader1314());
291
		_instance.put(DwgDimOrd.class, "1314", new DwgDimOrdReader1314());
292
		_instance.put(DwgEllipse.class, "1314", new DwgEllipseReader1314());
293
		_instance.put(DwgEndblk.class, "1314", new DwgEndBlkReader1314());
294
		_instance.put(DwgFace3D.class, "1314", new DwgFace3DReader1314());
295
		_instance.put(DwgHatch.class, "1314", new DwgHatchReader1314());
296
		_instance.put(DwgIdBuffer.class, "1314", new DwgIdBufferReader1314());
297
		_instance.put(DwgImageDefReactor.class, "1314", new DwgImageDefReactor1314());
298
		_instance.put(DwgImageDef.class, "1314", new DwgImageDefReader1314());
299
		_instance.put(DwgImage.class, "1314", new DwgImageReader1314());
300
		_instance.put(DwgInsert.class, "1314", new DwgInsertReader1314());
301
		_instance.put(DwgLayer.class, "1314", new DwgLayerReader1314());
302
		_instance.put(DwgLayerControl.class, "1314", new DwgLayerControlReader1314());
303
		_instance.put(DwgLayerIndex.class, "1314", new DwgLayerIndexReader1314());
304
		_instance.put(DwgLine.class, "1314", new DwgLineReader1314());
305
		_instance.put(DwgLinearDimension.class, "1314", new DwgLinearDimensionReader1314());
306
		_instance.put(DwgLwPolyline.class, "1314", new DwgLwPolylineReader1314());
307
		_instance.put(DwgMeshPolyline.class, "1314", new DwgMeshReader1314());
308
		_instance.put(DwgMinsert.class, "1314", new DwgMinsertReader1314());
309
		_instance.put(DwgMText.class, "1314", new DwgMTextReader1314());
310
		_instance.put(DwgOle2Frame.class, "1314", new DwgOle2FrameReader1314());
311
		_instance.put(DwgPFacePolyline.class, "1314", new DwgPFaceReader1314());
312
		_instance.put(DwgPoint.class, "1314", new DwgPointReader1314());
313
		_instance.put(DwgPolyline2D.class, "1314", new DwgPolyline2DReader1314());
314
		_instance.put(DwgPolyline3D.class, "1314", new DwgPolyline3DReader1314());
315
		_instance.put(DwgRasterVariables.class, "1314", new DwgRasterVariablesReader1314());
316
		_instance.put(DwgSeqend.class, "1314", new DwgSeqEndReader1314());
317
		_instance.put(DwgSortEntStable.class, "1314", new DwgSortEntsTableReader1314());
318
//		_instance.put(DwgSolid.class, "1314", new DwgSolidReader1314());
319
		_instance.put(DwgSpline.class, "1314", new DwgSplineReader1314());
320
		_instance.put(DwgText.class, "1314", new DwgTextReader1314());
321
		_instance.put(DwgVertex2D.class, "1314", new DwgVertex2DReader1314());
322
		_instance.put(DwgVertex3D.class, "1314", new DwgVertex3DReader1314());
323
		_instance.put(DwgXRecord.class, "1314", new DwgXrecordReader1314());
324
		_instance.put(DwgDictionary.class, "1314", new DwgDictionaryReader1314());
325
		_instance.put(DwgVertexPFace.class, "1314", new DwgVertexPFaceReader1314());
326
		_instance.put(DwgVertexPFaceFace.class, "1314", new DwgVertexPFaceFaceReader1314());
327
		_instance.put(DwgVertexMesh.class, "1314", new DwgVertexMeshReader1314());
328
	
329
	}
330
	
331
	
332
	
333
	public final static DwgObjectReaderPool getInstance(){
334
		return _instance;
335
	}
336
	private DwgObjectReaderPool(){
337
		obj_readers = new HashMap();
338
	}
339
	
340
	/**Get the specific reader for an object
341
	 * 
342
	 * @param obj Object we want to read
343
	 * @param dwgVersion version of dwg file
344
	 * @return The specific reader
345
	 */
346
	public IDwgObjectReader get(DwgObject obj, String dwgVersion){
347
		
348
		IDwgObjectReader reader = (IDwgObjectReader) obj_readers.
349
				get(obj.getClass().getName() + dwgVersion);
350
//		if(reader == null)
351
//			throw new RuntimeException("No se encuentra la clase para leer "+obj.getClass().getName());
352
		return reader;
353
		
354
	}
355
	
356
	/**
357
	 * Stores in a map the different readers for objects
358
	 * @param dwgObjClass Object's class
359
	 * @param dwgVersion version of dwg file
360
	 * @param reader Specific reader for the object
361
	 */
362
	public void put(Class dwgObjClass, String dwgVersion, IDwgObjectReader reader){
363
		if(DwgObject.class.isAssignableFrom(dwgObjClass))
364
			obj_readers.put(dwgObjClass.getName()+ dwgVersion, reader);
365
		else
366
			throw new RuntimeException("Este pool solo admite como entrada clases de entidad de dibujo gr�fica");
367
	}
368
	
369
}
tags/org.gvsig.dwg-2.0.250/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgBlockHeaderReader15.java
1
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5
package org.gvsig.dwg.lib.readers.v15;
6

  
7
import java.util.ArrayList;
8

  
9
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
10
import org.gvsig.dwg.lib.DwgHandleReference;
11
import org.gvsig.dwg.lib.DwgObject;
12
import org.gvsig.dwg.lib.DwgUtil;
13
import org.gvsig.dwg.lib.objects.DwgBlockHeader;
14

  
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 DwgBlockHeaderReader15 extends AbstractDwg15Reader{
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 DwgBlockHeader))
29
		    	throw new RuntimeException("DwgBlockHeaderReader15 solo puede leer DwgBlockControl");
30
		DwgBlockHeader hdr = (DwgBlockHeader) dwgObj;
31
		int bitPos = offset;
32
		ArrayList v = DwgUtil.getBitLong(data, bitPos);
33
		bitPos = ((Integer)v.get(0)).intValue();
34
		int numReactors = ((Integer)v.get(1)).intValue();
35
		hdr.setNumReactors(numReactors);
36

  
37
		v = DwgUtil.getTextString(data, bitPos);
38
		bitPos = ((Integer)v.get(0)).intValue();
39
		String name = (String)v.get(1);
40
		hdr.setName(name);
41

  
42
		v = DwgUtil.testBit(data, bitPos);
43
		bitPos = ((Integer)v.get(0)).intValue();
44
		boolean flag = ((Boolean)v.get(1)).booleanValue();
45
		hdr.setFlag64(flag);
46

  
47
		v = DwgUtil.getBitShort(data, bitPos);
48
		bitPos = ((Integer)v.get(0)).intValue();
49
		int xrefplus1 = ((Integer)v.get(1)).intValue();
50
		hdr.setXRefPlus(xrefplus1);
51

  
52
		v = DwgUtil.testBit(data, bitPos);
53
		bitPos = ((Integer)v.get(0)).intValue();
54
		boolean xdep = ((Boolean)v.get(1)).booleanValue();
55
		hdr.setXdep(xdep);
56

  
57
		v = DwgUtil.testBit(data, bitPos);
58
		bitPos = ((Integer)v.get(0)).intValue();
59
		boolean anon = ((Boolean)v.get(1)).booleanValue();
60
		hdr.setAnonymous(anon);
61

  
62
		v = DwgUtil.testBit(data, bitPos);
63
		bitPos = ((Integer)v.get(0)).intValue();
64
		boolean hasatts = ((Boolean)v.get(1)).booleanValue();
65
		hdr.setHasAttrs(hasatts);
66

  
67
		v = DwgUtil.testBit(data, bitPos);
68
		bitPos = ((Integer)v.get(0)).intValue();
69
		boolean bxref = ((Boolean)v.get(1)).booleanValue();
70
		hdr.setBlkIsXRef(bxref);
71

  
72
		v = DwgUtil.testBit(data, bitPos);
73
		bitPos = ((Integer)v.get(0)).intValue();
74
		boolean xover = ((Boolean)v.get(1)).booleanValue();
75
		hdr.setXRefOverLaid(xover);
76

  
77
		v = DwgUtil.testBit(data, bitPos);
78
		bitPos = ((Integer)v.get(0)).intValue();
79
		boolean loaded = ((Boolean)v.get(1)).booleanValue();
80
		hdr.setLoaded(loaded);
81

  
82
		v = DwgUtil.getBitDouble(data, bitPos);
83
		bitPos = ((Integer)v.get(0)).intValue();
84
		double bx = ((Double)v.get(1)).doubleValue();
85

  
86
		v = DwgUtil.getBitDouble(data, bitPos);
87
		bitPos = ((Integer)v.get(0)).intValue();
88
		double by = ((Double)v.get(1)).doubleValue();
89

  
90
		v = DwgUtil.getBitDouble(data, bitPos);
91
		bitPos = ((Integer)v.get(0)).intValue();
92
		double bz = ((Double)v.get(1)).doubleValue();
93
		double[] coord = new double[]{bx, by, bz};
94
		hdr.setBasePoint(coord);
95

  
96
		v = DwgUtil.getTextString(data, bitPos);
97
		bitPos = ((Integer)v.get(0)).intValue();
98
		String pname = (String)v.get(1);
99
		hdr.setXRefPName(pname);
100
		int icount = 0;
101
		while (true) {
102
			v = DwgUtil.getRawChar(data, bitPos);
103
			bitPos = ((Integer)v.get(0)).intValue();
104
			int val = ((Integer)v.get(1)).intValue();
105
			if (val==0) {
106
				break;
107
			}
108
			icount++;
109
		}
110

  
111
		v = DwgUtil.getTextString(data, bitPos);
112
		bitPos = ((Integer)v.get(0)).intValue();
113
		String desc = (String)v.get(1);
114
		hdr.setBlockDescription(desc);
115
		v = DwgUtil.getBitLong(data, bitPos);
116
		bitPos = ((Integer)v.get(0)).intValue();
117
		int pdsize = ((Integer)v.get(1)).intValue();
118
		if (pdsize>0) {
119
			int count = pdsize + icount;
120
			//int pdata = ((Integer)DwgUtil.getBits(data, count, bitPos)).intValue();
121
			//previewData = pdata;
122
			bitPos = bitPos + count;
123
		}
124

  
125
		DwgHandleReference blkCtrlHdl = new DwgHandleReference();
126
		bitPos = blkCtrlHdl.read(data, bitPos);
127
		hdr.setBlockControlHandle(blkCtrlHdl);
128

  
129
		for (int i=0;i<numReactors;i++) {
130
			DwgHandleReference reactor = new DwgHandleReference();
131
			bitPos = reactor.read(data, bitPos);
132

  
133
		}
134

  
135
		DwgHandleReference xdicObjHdl = new DwgHandleReference();
136
		bitPos = xdicObjHdl.read(data, bitPos);
137
		hdr.setXDicObjHandle(xdicObjHdl);
138

  
139
		DwgHandleReference handle = new DwgHandleReference();
140
		bitPos = handle.read(data, bitPos);
141
		hdr.setNullHandle(handle);
142

  
143
		handle = new DwgHandleReference();
144
		bitPos = handle.read(data, bitPos);
145
		hdr.setBlockEntityHandle(handle);
146

  
147
		if ((!bxref) && (!xover)) {
148
			handle = new DwgHandleReference();
149
			bitPos = handle.read(data, bitPos);
150
			hdr.setFirstEntityHandle(handle);
151

  
152
			handle = new DwgHandleReference();
153
			bitPos = handle.read(data, bitPos);
154
			hdr.setLastEntityHandle(handle);
155
		}//si el bloque es una referencia externa, es un fichero entero
156
		//(no ninguna entidad del fichero actual)
157

  
158
		handle = new DwgHandleReference();
159
		bitPos = handle.read(data, bitPos);
160
		hdr.setEndBlkEntityHandle(handle);
161

  
162
		if(icount > 0){
163
			DwgHandleReference[] insertHandles = new
164
				DwgHandleReference[icount];
165
			for(int i = 0; i < icount; i++){
166
				insertHandles[i] = new DwgHandleReference();
167
				bitPos = insertHandles[i].read(data, bitPos);
168
			}
169
			hdr.setInsertHandles(insertHandles);
170
		}
171

  
172
		handle = new DwgHandleReference();
173
		bitPos = handle.read(data, bitPos);
174
		hdr.setLayoutHandle(handle);
175
	}
176
}
tags/org.gvsig.dwg-2.0.250/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/AbstractDwg15Reader.java
1
/*
2
 * Created on 25-ene-2007
3
 *
4
 * gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
5
 *
6
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
7
 *
8
 * This program is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU General Public License
10
 * as published by the Free Software Foundation; either version 2
11
 * of the License, or (at your option) any later version.
12
 *
13
 * This program is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 * GNU General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU General Public License
19
 * along with this program; if not, write to the Free Software
20
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
21
 *
22
 * For more information, contact:
23
 *
24
 *  Generalitat Valenciana
25
 *   Conselleria d'Infraestructures i Transport
26
 *   Av. Blasco Ib??ez, 50
27
 *   46010 VALENCIA
28
 *   SPAIN
29
 *
30
 *      +34 963862235
31
 *   gvsig@gva.es
32
 *      www.gvsig.gva.es
33
 *
34
 *    or
35
 *
36
 *   IVER T.I. S.A
37
 *   Salamanca 50
38
 *   46005 Valencia
39
 *   Spain
40
 *
41
 *   +34 963163400
42
 *   dac@iver.es
43
 */
44
/* CVS MESSAGES:
45
*
46
* $Id: AbstractDwg15Reader.java 28969 2009-05-25 13:23:12Z jmvivo $
47
* $Log$
48
* Revision 1.1.2.2  2007-03-21 19:49:16  azabala
49
* implementation of dwg 12, 13, 14.
50
*
51
* Revision 1.1  2007/01/25 20:05:58  azabala
52
* start of implementation of specific versions' object readers
53
*
54
*
55
*/
56
package org.gvsig.dwg.lib.readers.v15;
57

  
58
import org.gvsig.dwg.lib.readers.DwgFileV15Reader;
59
import org.gvsig.dwg.lib.readers.IDwgFileReader;
60
import org.gvsig.dwg.lib.readers.IDwgObjectReader;
61

  
62
public abstract class AbstractDwg15Reader implements IDwgObjectReader{
63
	protected IDwgFileReader headTailReader;
64
	public void setFileReader(IDwgFileReader headTailReader) {
65
		if( ! (headTailReader instanceof DwgFileV15Reader))
66
			throw new RuntimeException("Tratando de leer entidad de DWG 15 (2000) con"+
67
					headTailReader.getClass().getName());
68
		this.headTailReader = headTailReader;
69
	}
70

  
71
}
72

  
tags/org.gvsig.dwg-2.0.250/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgVertex2DReader15.java
1
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5
package org.gvsig.dwg.lib.readers.v15;
6

  
7
import java.util.ArrayList;
8

  
9
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
10
import org.gvsig.dwg.lib.DwgObject;
11
import org.gvsig.dwg.lib.DwgUtil;
12
import org.gvsig.dwg.lib.objects.DwgVertex2D;
13

  
14

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

  
23
	/* (non-Javadoc)
24
	 * @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject)
25
	 */
26
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException {
27
		 if(! (dwgObj instanceof DwgVertex2D))
28
		    	throw new RuntimeException("ArcReader 15 solo puede leer DwgVertex2D");
29
		 DwgVertex2D ver = (DwgVertex2D) dwgObj;
30
		int bitPos = offset;
31
		bitPos = headTailReader.readObjectHeader(data, bitPos, ver);
32
		ArrayList v = DwgUtil.getRawChar(data, bitPos);
33
		bitPos = ((Integer)v.get(0)).intValue();
34
		int flags = ((Integer)v.get(1)).intValue();
35
		ver.setFlags(flags);
36
		v = DwgUtil.getBitDouble(data, bitPos);
37
		bitPos = ((Integer)v.get(0)).intValue();
38
		double x = ((Double)v.get(1)).doubleValue();
39
		v = DwgUtil.getBitDouble(data, bitPos);
40
		bitPos = ((Integer)v.get(0)).intValue();
41
		double y = ((Double)v.get(1)).doubleValue();
42
		v = DwgUtil.getBitDouble(data, bitPos);
43
		bitPos = ((Integer)v.get(0)).intValue();
44
		double z = ((Double)v.get(1)).doubleValue();
45
		ver.setPoint(new double[]{x, y, z});
46
		v = DwgUtil.getBitDouble(data, bitPos);
47
		bitPos = ((Integer)v.get(0)).intValue();
48
		double sw = ((Double)v.get(1)).doubleValue();
49
		double ew = 0.0;
50
		if (sw<0.0) {
51
			ew = Math.abs(sw);
52
			sw = ew;
53
		} else {
54
			v = DwgUtil.getBitDouble(data, bitPos);
55
			bitPos = ((Integer)v.get(0)).intValue();
56
			ew = ((Double)v.get(1)).doubleValue();
57
		}
58
		ver.setInitWidth(sw);
59
		ver.setEndWidth(ew);
60
		v = DwgUtil.getBitDouble(data, bitPos);
61
		bitPos = ((Integer)v.get(0)).intValue();
62
		double bulge = ((Double)v.get(1)).doubleValue();
63
		ver.setBulge(bulge);
64
		v = DwgUtil.getBitDouble(data, bitPos);
65
		bitPos = ((Integer)v.get(0)).intValue();
66
		double tandir = ((Double)v.get(1)).doubleValue();
67
		ver.setTangentDir(tandir);
68
		bitPos = headTailReader.readObjectTailer(data, bitPos, ver);
69
	}
70
}
tags/org.gvsig.dwg-2.0.250/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgInsertReader15.java
1
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5
package org.gvsig.dwg.lib.readers.v15;
6

  
7
import java.util.ArrayList;
8

  
9
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
10
import org.gvsig.dwg.lib.DwgHandleReference;
11
import org.gvsig.dwg.lib.DwgObject;
12
import org.gvsig.dwg.lib.DwgUtil;
13
import org.gvsig.dwg.lib.objects.DwgInsert;
14

  
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 DwgInsertReader15 extends AbstractDwg15Reader{
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 DwgInsert))
29
			throw new RuntimeException("ArcReader 15 solo puede leer DwgInsert");
30
		DwgInsert ins = (DwgInsert) dwgObj;
31
		int bitPos = offset;
32
		bitPos = headTailReader.readObjectHeader(data, bitPos, ins);
33
		ArrayList v = DwgUtil.getBitDouble(data, bitPos);
34
		bitPos = ((Integer)v.get(0)).intValue();
35
		double x = ((Double)v.get(1)).doubleValue();
36
		v = DwgUtil.getBitDouble(data, bitPos);
37
		bitPos = ((Integer)v.get(0)).intValue();
38
		double y = ((Double)v.get(1)).doubleValue();
39
		v = DwgUtil.getBitDouble(data, bitPos);
40
		bitPos = ((Integer)v.get(0)).intValue();
41
		double z = ((Double)v.get(1)).doubleValue();
42
		double[] coord = new double[]{x, y, z};
43
		ins.setInsertionPoint(coord);
44
		int dflag = ((Integer)DwgUtil.getBits(data, 2, bitPos)).intValue();
45
		bitPos = bitPos + 2;
46
		if (dflag==0x0) {
47
			v = DwgUtil.getRawDouble(data, bitPos);
48
			bitPos = ((Integer)v.get(0)).intValue();
49
			x = ((Double)v.get(1)).doubleValue();
50
			v = DwgUtil.getDefaultDouble(data, bitPos, x);
51
			bitPos = ((Integer)v.get(0)).intValue();
52
			y = ((Double)v.get(1)).doubleValue();
53
			v = DwgUtil.getDefaultDouble(data, bitPos, x);
54
			bitPos = ((Integer)v.get(0)).intValue();
55
			z = ((Double)v.get(1)).doubleValue();
56
		} else if (dflag==0x1) {
57
			x = 1.0;
58
			v = DwgUtil.getDefaultDouble(data, bitPos, x);
59
			bitPos = ((Integer)v.get(0)).intValue();
60
			y = ((Double)v.get(1)).doubleValue();
61
			v = DwgUtil.getDefaultDouble(data, bitPos, x);
62
			bitPos = ((Integer)v.get(0)).intValue();
63
			z = ((Double)v.get(1)).doubleValue();
64
		} else if (dflag==0x2) {
65
			v = DwgUtil.getRawDouble(data, bitPos);
66
			bitPos = ((Integer)v.get(0)).intValue();
67
			x = ((Double)v.get(1)).doubleValue();
68
			z = x;
69
			y = z;
70
		} else {
71
			z = 1.0;
72
			y = z;
73
			x = y;
74
		}
75
		coord = new double[]{x, y, z};
76
		ins.setScale(coord);
77
		v = DwgUtil.getBitDouble(data, bitPos);
78
		bitPos = ((Integer)v.get(0)).intValue();
79
		double rot = ((Double)v.get(1)).doubleValue();
80
		ins.setRotation(rot);
81
		v = DwgUtil.getBitDouble(data, bitPos);
82
		bitPos = ((Integer)v.get(0)).intValue();
83
		x = ((Double)v.get(1)).doubleValue();
84
		v = DwgUtil.getBitDouble(data, bitPos);
85
		bitPos = ((Integer)v.get(0)).intValue();
86
		y = ((Double)v.get(1)).doubleValue();
87
		v = DwgUtil.getBitDouble(data, bitPos);
88
		bitPos = ((Integer)v.get(0)).intValue();
89
		z = ((Double)v.get(1)).doubleValue();
90
		coord = new double[]{x, y, z};
91
		ins.setExtrusion(coord);
92
		v = DwgUtil.testBit(data, bitPos);
93
		bitPos = ((Integer)v.get(0)).intValue();
94
		boolean hasattr = ((Boolean)v.get(1)).booleanValue();
95
		bitPos = headTailReader.readObjectTailer(data, bitPos, ins);
96
		
97
		DwgHandleReference hr = new DwgHandleReference();
98
		bitPos = hr.read(data, bitPos);
99
		ins.setBlockHeaderHandle(hr);
100
		
101
		if (hasattr) {
102
			
103
			hr = new DwgHandleReference();
104
			bitPos = hr.read(data, bitPos);
105
			ins.setFirstAttribHandle(hr);
106
			
107
			hr = new DwgHandleReference();
108
			bitPos = hr.read(data, bitPos);
109
			ins.setLastAttribHandle(hr);
110
			
111
			hr = new DwgHandleReference();
112
			bitPos = hr.read(data, bitPos);
113
			ins.setSeqendHandle(hr);
114
		}
115
	}
116

  
117
	
118

  
119
}
tags/org.gvsig.dwg-2.0.250/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgVertex3DReader15.java
1
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5
package org.gvsig.dwg.lib.readers.v15;
6

  
7
import java.util.ArrayList;
8

  
9
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
10
import org.gvsig.dwg.lib.DwgObject;
11
import org.gvsig.dwg.lib.DwgUtil;
12
import org.gvsig.dwg.lib.objects.DwgVertex3D;
13

  
14

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

  
23
	/* (non-Javadoc)
24
	 * @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject)
25
	 */
26
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException {
27
		 if(! (dwgObj instanceof DwgVertex3D))
28
		    	throw new RuntimeException("ArcReader 15 solo puede leer DwgVertex3D");
29
		 DwgVertex3D ver = (DwgVertex3D) dwgObj;
30
		int bitPos = offset;
31
		bitPos = headTailReader.readObjectHeader(data, bitPos, ver);
32
		ArrayList v = DwgUtil.getRawChar(data, bitPos);
33
		bitPos = ((Integer)v.get(0)).intValue();
34
		int flags = ((Integer)v.get(1)).intValue();
35
		ver.setFlags(flags);
36
		v = DwgUtil.getBitDouble(data, bitPos);
37
		bitPos = ((Integer)v.get(0)).intValue();
38
		double x = ((Double)v.get(1)).doubleValue();
39
		v = DwgUtil.getBitDouble(data, bitPos);
40
		bitPos = ((Integer)v.get(0)).intValue();
41
		double y = ((Double)v.get(1)).doubleValue();
42
		v = DwgUtil.getBitDouble(data, bitPos);
43
		bitPos = ((Integer)v.get(0)).intValue();
44
		double z = ((Double)v.get(1)).doubleValue();
45
		double[] coord = new double[]{x, y, z};
46
		ver.setPoint(coord);
47
		bitPos = headTailReader.readObjectTailer(data, bitPos, ver);
48
	}
49
}
tags/org.gvsig.dwg-2.0.250/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgDictionaryReader15.java
1
package org.gvsig.dwg.lib.readers.v15;
2

  
3
import java.util.ArrayList;
4

  
5
import org.gvsig.dwg.lib.DwgHandleReference;
6
import org.gvsig.dwg.lib.DwgObject;
7
import org.gvsig.dwg.lib.DwgUtil;
8
import org.gvsig.dwg.lib.objects.DwgDictionary;
9

  
10

  
11
public class DwgDictionaryReader15 extends AbstractDwg15Reader{
12

  
13
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) {
14
		// TODO Auto-generated method stub
15
		if(! (dwgObj instanceof DwgDictionary))
16
			throw new RuntimeException("DictionaryReader15 solo puede leer DwgDictionary");
17
		DwgDictionary dict = (DwgDictionary) dwgObj;
18
		try {
19
			//System.out.println("LEYENDO UN DICCIONARIO");
20
			int bitPos = offset;
21
			ArrayList v = DwgUtil.getBitShort(data, bitPos);
22
			bitPos = ((Integer)v.get(0)).intValue();
23
			int numReactors = ((Integer)v.get(1)).intValue();
24
			dict.setNumReactors(numReactors);
25
			//System.out.println("numReactors="+numReactors);
26
			
27
			v = DwgUtil.getBitLong(data, bitPos);
28
			bitPos = ((Integer)v.get(0)).intValue();
29
			int numItems = ((Integer)v.get(1)).intValue();
30
			//System.out.println("numItems="+numItems);
31
			
32
			
33
			v = DwgUtil.getBitShort(data, bitPos);
34
			bitPos = ((Integer)v.get(0)).intValue();
35
			int cloningFlag = ((Integer)v.get(1)).intValue();
36
			dict.setCloningFlag(cloningFlag);
37
			//System.out.println("cloningFlag="+cloningFlag);
38
			
39
			v = DwgUtil.getRawChar(data, bitPos);
40
			bitPos = ((Integer)v.get(0)).intValue();
41
			int hardOwnerFlag = ((Integer)v.get(1)).intValue();
42
			dict.setHardOwnerFlag(hardOwnerFlag);
43
			//System.out.println("hardOwnerFlag="+hardOwnerFlag);
44
			
45
			int handleCode;
46
			int handleOffset;
47
			ArrayList entradasTexto = new ArrayList();
48
			for(int i=0; i<numItems; i++){
49
				v = DwgUtil.getTextString(data, bitPos);
50
				bitPos = ((Integer)v.get(0)).intValue();
51
				String text = ((String)v.get(1));
52
				entradasTexto.add(text);
53
			}
54
			DwgHandleReference handle;
55
			for(int i=0; i<numItems; i++){
56
				handle = new DwgHandleReference();
57
				bitPos = handle.read(data, bitPos);
58
				//System.out.println("ENTRADA DE DICCIONARIO text= "+entradasTexto.get(i)+" handleCode ="+handle.getCode()+" handleOffset ="+handle.getOffset());
59
				// A la vez que leemos los handles, rellenamos el diccionario.
60
				dict.put(entradasTexto.get(i),handle);
61
			}
62
			//System.out.println("map.size ="+dict.size());
63
		}catch (Exception e){
64
			System.out.println("Se ha producido una excepion leyendo un diccionario."+e.getMessage());
65
		}
66
	}
67
}
tags/org.gvsig.dwg-2.0.250/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgArcReader15.java
1
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5
package org.gvsig.dwg.lib.readers.v15;
6

  
7
import java.util.ArrayList;
8

  
9
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
10
import org.gvsig.dwg.lib.DwgObject;
11
import org.gvsig.dwg.lib.DwgUtil;
12
import org.gvsig.dwg.lib.objects.DwgArc;
13

  
14

  
15
/**
16
 * @author alzabord
17
 *
18
 * TODO To change the template for this generated type comment go to
19
 * Window - Preferences - Java - Code Style - Code Templates
20
 */
21
public class DwgArcReader15 extends AbstractDwg15Reader{
22
	/* (non-Javadoc)
23
	 * @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject)
24
	 */
25
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException {
26
		    if(! (dwgObj instanceof DwgArc))
27
		    	throw new RuntimeException("ArcReader 15 solo puede leer DwgArc");
28
		    DwgArc arc = (DwgArc) dwgObj;
29
		    
30
			int bitPos = offset;
31
			bitPos = headTailReader.readObjectHeader(data, bitPos, arc);
32
			ArrayList v = DwgUtil.getBitDouble(data, bitPos);
33
			bitPos = ((Integer)v.get(0)).intValue();
34
			double x = ((Double)v.get(1)).doubleValue();
35
			v = DwgUtil.getBitDouble(data, bitPos);
36
			bitPos = ((Integer)v.get(0)).intValue();
37
			double y = ((Double)v.get(1)).doubleValue();
38
			v = DwgUtil.getBitDouble(data, bitPos);
39
			bitPos = ((Integer)v.get(0)).intValue();
40
			double z = ((Double)v.get(1)).doubleValue();
41
			double[] coord = new double[]{x, y, z};
42
			arc.setCenter(coord);
43
			v = DwgUtil.getBitDouble(data, bitPos);
44
			bitPos = ((Integer)v.get(0)).intValue();
45
			double val = ((Double)v.get(1)).doubleValue();
46
			arc.setRadius(val);
47
			v = DwgUtil.testBit(data, bitPos);
48
			bitPos = ((Integer)v.get(0)).intValue();
49
			boolean flag = ((Boolean)v.get(1)).booleanValue();
50
			if (flag) {
51
				val=0.0;
52
			} else {
53
				v = DwgUtil.getBitDouble(data, bitPos);
54
				bitPos = ((Integer)v.get(0)).intValue();
55
				val = ((Double)v.get(1)).doubleValue();
56
			}
57
			arc.setThickness(val);
58
			v = DwgUtil.testBit(data, bitPos);
59
			bitPos = ((Integer)v.get(0)).intValue();
60
			flag = ((Boolean)v.get(1)).booleanValue();
61
			if (flag) {
62
				 x = y = 0.0;
63
				 z = 1.0;
64
			} else {
65
				v = DwgUtil.getBitDouble(data, bitPos);
66
				bitPos = ((Integer)v.get(0)).intValue();
67
				x = ((Double)v.get(1)).doubleValue();
68
				v = DwgUtil.getBitDouble(data, bitPos);
69
				bitPos = ((Integer)v.get(0)).intValue();
70
				y = ((Double)v.get(1)).doubleValue();
71
				v = DwgUtil.getBitDouble(data, bitPos);
72
				bitPos = ((Integer)v.get(0)).intValue();
73
				z = ((Double)v.get(1)).doubleValue();
74
			}
75
			coord = new double[]{x, y, z};
76
			arc.setExtrusion(coord);
77
			v = DwgUtil.getBitDouble(data, bitPos);
78
			bitPos = ((Integer)v.get(0)).intValue();
79
			val = ((Double)v.get(1)).doubleValue();
80
			arc.setInitAngle(val);
81
			v = DwgUtil.getBitDouble(data, bitPos);
82
			bitPos = ((Integer)v.get(0)).intValue();
83
			val = ((Double)v.get(1)).doubleValue();
84
			arc.setEndAngle(val);
85
			bitPos = this.headTailReader.readObjectTailer(data, bitPos, arc);
86
		}
87
	
88

  
89
	
90
}
tags/org.gvsig.dwg-2.0.250/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgAttdefReader15.java
1
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5
package org.gvsig.dwg.lib.readers.v15;
6

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

  
10
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.DwgAttdef;
15

  
16

  
17
/**
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
public class DwgAttdefReader15 extends AbstractDwg15Reader{
24

  
25
	/* (non-Javadoc)
26
	 * @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject)
27
	 */
28
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException {
29
			if(!(dwgObj instanceof DwgAttdef))
30
				throw new RuntimeException("AttdefReader 15 solo lee Attdef");
31
			DwgAttdef att = (DwgAttdef) dwgObj;
32
			int bitPos = offset;
33
			bitPos = headTailReader.readObjectHeader(data, bitPos, att);
34
			ArrayList v = DwgUtil.getRawChar(data, bitPos);
35
			bitPos = ((Integer)v.get(0)).intValue();
36
			int dflag = ((Integer)v.get(1)).intValue();
37
			att.setDataFlag(dflag);
38
			if ((dflag & 0x1)==0) {
39
				v = DwgUtil.getRawDouble(data, bitPos);
40
				bitPos = ((Integer)v.get(0)).intValue();
41
				double elev = ((Double)v.get(1)).doubleValue();
42
				att.setElevation(elev);
43
			}
44
			v = DwgUtil.getRawDouble(data, bitPos);
45
			bitPos = ((Integer)v.get(0)).intValue();
46
			double x1 = ((Double)v.get(1)).doubleValue();
47
			v = DwgUtil.getRawDouble(data, bitPos);
48
			bitPos = ((Integer)v.get(0)).intValue();
49
			double y1 = ((Double)v.get(1)).doubleValue();
50
			att.setInsertionPoint(new Point2D.Double(x1, y1));
51
			double x=0, y=0, z=0;
52
			if ((dflag & 0x2)==0) {
53
				v = DwgUtil.getDefaultDouble(data, bitPos, x1);
54
				bitPos = ((Integer)v.get(0)).intValue();
55
				x = ((Double)v.get(1)).doubleValue();
56
				v = DwgUtil.getDefaultDouble(data, bitPos, y1);
57
				bitPos = ((Integer)v.get(0)).intValue();
58
				y = ((Double)v.get(1)).doubleValue();
59
			}
60
			att.setAlignmentPoint(new Point2D.Double(x, y));
61
			v = DwgUtil.testBit(data, bitPos);
62
			bitPos = ((Integer)v.get(0)).intValue();
63
			boolean flag = ((Boolean)v.get(1)).booleanValue();
64
			if (flag) {
65
				y = 0.0;
66
				x = y;
67
				z = 1.0;
68
			} else {
69
				v = DwgUtil.getBitDouble(data, bitPos);
70
				bitPos = ((Integer)v.get(0)).intValue();
71
				x = ((Double)v.get(1)).doubleValue();
72
				v = DwgUtil.getBitDouble(data, bitPos);
73
				bitPos = ((Integer)v.get(0)).intValue();
74
				y = ((Double)v.get(1)).doubleValue();
75
				v = DwgUtil.getBitDouble(data, bitPos);
76
				bitPos = ((Integer)v.get(0)).intValue();
77
				z = ((Double)v.get(1)).doubleValue();
78
			}
79
			att.setExtrusion(new double[]{x, y, z});
80
			v = DwgUtil.testBit(data, bitPos);
81
			bitPos = ((Integer)v.get(0)).intValue();
82
			flag = ((Boolean)v.get(1)).booleanValue();
83
		    double th;
84
			if (flag) {
85
				th=0.0;
86
			} else {
87
				v = DwgUtil.getBitDouble(data, bitPos);
88
				bitPos = ((Integer)v.get(0)).intValue();
89
				th = ((Double)v.get(1)).doubleValue();
90
			}
91
			att.setThickness(th);
92
			if ((dflag & 0x4)==0) {
93
				v = DwgUtil.getRawDouble(data, bitPos);
94
				bitPos = ((Integer)v.get(0)).intValue();
95
				double oblique = ((Double)v.get(1)).doubleValue();
96
				att.setObliqueAngle(oblique);
97
			}
98
			if ((dflag & 0x8)==0) {
99
				v = DwgUtil.getRawDouble(data, bitPos);
100
				bitPos = ((Integer)v.get(0)).intValue();
101
				double rot = ((Double)v.get(1)).doubleValue();
102
				att.setRotationAngle(rot);
103
			}
104
			v = DwgUtil.getRawDouble(data, bitPos);
105
			bitPos = ((Integer)v.get(0)).intValue();
106
			double height = ((Double)v.get(1)).doubleValue();
107
			att.setHeight(height);
108
			if ((dflag & 0x10)==0) {
109
				v = DwgUtil.getRawDouble(data, bitPos);
110
				bitPos = ((Integer)v.get(0)).intValue();
111
				double width = ((Double)v.get(1)).doubleValue();
112
				att.setWidthFactor(width);
113
			}
114
			v = DwgUtil.getTextString(data, bitPos);
115
			bitPos = ((Integer)v.get(0)).intValue();
116
			String text = (String)v.get(1);
117
			att.setText(text);
118
			if ((dflag & 0x20)==0) {
119
				v = DwgUtil.getBitShort(data, bitPos);
120
				bitPos = ((Integer)v.get(0)).intValue();
121
				int gen = ((Integer)v.get(1)).intValue();
122
				att.setGeneration(gen);
123
			}
124
			if ((dflag & 0x40)==0) {
125
				v = DwgUtil.getBitShort(data, bitPos);
126
				bitPos = ((Integer)v.get(0)).intValue();
127
				int halign = ((Integer)v.get(1)).intValue();
128
				att.setHalign(halign);
129
			}
130
			if ((dflag & 0x80)==0) {
131
				v = DwgUtil.getBitShort(data, bitPos);
132
				bitPos = ((Integer)v.get(0)).intValue();
133
				int valign = ((Integer)v.get(1)).intValue();
134
				att.setValign(valign);
135
			}
136
			v = DwgUtil.getTextString(data, bitPos);
137
			bitPos = ((Integer)v.get(0)).intValue();
138
			String tag = (String)v.get(1);
139
			att.setTag(tag);
140
			v = DwgUtil.getBitShort(data, bitPos);
141
			bitPos = ((Integer)v.get(0)).intValue();
142
			int fl = ((Integer)v.get(1)).intValue();
143
			att.setFieldLength(fl);
144
			v = DwgUtil.getRawChar(data, bitPos);
145
			bitPos = ((Integer)v.get(0)).intValue();
146
			int flags = ((Integer)v.get(1)).intValue();
147
			att.setFlags(flags);
148
			v = DwgUtil.getTextString(data, bitPos);
149
			bitPos = ((Integer)v.get(0)).intValue();
150
			String prompt = (String)v.get(1);
151
			att.setPrompt(prompt);
152
			bitPos = headTailReader.readObjectTailer(data, bitPos, att);
153
			DwgHandleReference styleHandle = new DwgHandleReference();
154
			bitPos = styleHandle.read(data, bitPos);
155
			att.setStyleHandle(styleHandle);
156
		}
157
}
tags/org.gvsig.dwg-2.0.250/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgSolidReader15.java
1
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5
package org.gvsig.dwg.lib.readers.v15;
6

  
7
import java.util.ArrayList;
8

  
9
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
10
import org.gvsig.dwg.lib.DwgObject;
11
import org.gvsig.dwg.lib.DwgUtil;
12
import org.gvsig.dwg.lib.objects.DwgSolid;
13

  
14

  
15
/**
16
 * @author azabala
17
 */
18
public class DwgSolidReader15 extends AbstractDwg15Reader{
19

  
20
	/* (non-Javadoc)
21
	 * @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject)
22
	 */
23
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException {
24
		if(! (dwgObj instanceof DwgSolid))
25
			throw new RuntimeException("ArcReader 15 solo puede leer DwgSolid");
26
		DwgSolid sol = (DwgSolid) dwgObj;
27
		int bitPos = offset;
28
		bitPos = headTailReader.readObjectHeader(data, bitPos, sol);
29
		ArrayList v = DwgUtil.testBit(data, bitPos);
30
		bitPos = ((Integer)v.get(0)).intValue();
31
		boolean flag = ((Boolean)v.get(1)).booleanValue();
32
	    double val;
33
		if (flag) {
34
			val=0.0;
35
		} else {
36
			v = DwgUtil.getBitDouble(data, bitPos);
37
			bitPos = ((Integer)v.get(0)).intValue();
38
			val = ((Double)v.get(1)).doubleValue();
39
		}
40
		sol.setThickness(val);
41
		
42
		v = DwgUtil.getBitDouble(data, bitPos);
43
		bitPos = ((Integer)v.get(0)).intValue();
44
		val = ((Double)v.get(1)).doubleValue();
45
		sol.setElevation(val);
46
		
47
		
48
		v = DwgUtil.getRawDouble(data, bitPos);
49
		bitPos = ((Integer)v.get(0)).intValue();
50
		double x = ((Double)v.get(1)).doubleValue();
51
		v = DwgUtil.getRawDouble(data, bitPos);
52
		bitPos = ((Integer)v.get(0)).intValue();
53
		double y = ((Double)v.get(1)).doubleValue();
54
		double[] coord = new double[]{x, y, val};
55
		sol.setCorner1(coord);
56
		
57
		
58
		v = DwgUtil.getRawDouble(data, bitPos);
59
		bitPos = ((Integer)v.get(0)).intValue();
60
		x = ((Double)v.get(1)).doubleValue();
61
		v = DwgUtil.getRawDouble(data, bitPos);
62
		bitPos = ((Integer)v.get(0)).intValue();
63
		y = ((Double)v.get(1)).doubleValue();
64
		coord = new double[]{x, y, val};
65
		sol.setCorner2(coord);
66
		
67
		
68
		v = DwgUtil.getRawDouble(data, bitPos);
69
		bitPos = ((Integer)v.get(0)).intValue();
70
		x = ((Double)v.get(1)).doubleValue();
71
		v = DwgUtil.getRawDouble(data, bitPos);
72
		bitPos = ((Integer)v.get(0)).intValue();
73
		y = ((Double)v.get(1)).doubleValue();
74
		coord = new double[]{x, y, val};
75
		sol.setCorner3(coord);
76
		
77
		
78
		v = DwgUtil.getRawDouble(data, bitPos);
79
		bitPos = ((Integer)v.get(0)).intValue();
80
		x = ((Double)v.get(1)).doubleValue();
81
		v = DwgUtil.getRawDouble(data, bitPos);
82
		bitPos = ((Integer)v.get(0)).intValue();
83
		y = ((Double)v.get(1)).doubleValue();
84
		coord = new double[]{x, y, val};
85
		sol.setCorner4(coord);
86
		
87
		
88
		v = DwgUtil.testBit(data, bitPos);
89
		bitPos = ((Integer)v.get(0)).intValue();
90
		flag = ((Boolean)v.get(1)).booleanValue();
91
		double z;
92
	    if (flag) {
93
			 x = y = 0.0;
94
			 z = 1.0;
95
		} else {
96
			v = DwgUtil.getBitDouble(data, bitPos);
97
			bitPos = ((Integer)v.get(0)).intValue();
98
			x = ((Double)v.get(1)).doubleValue();
99
			v = DwgUtil.getBitDouble(data, bitPos);
100
			bitPos = ((Integer)v.get(0)).intValue();
101
			y = ((Double)v.get(1)).doubleValue();
102
			v = DwgUtil.getBitDouble(data, bitPos);
103
			bitPos = ((Integer)v.get(0)).intValue();
104
			z = ((Double)v.get(1)).doubleValue();
105
		}
106
		coord = new double[]{x, y, z};
107
		sol.setExtrusion(coord);
108
		
109
		bitPos = headTailReader.readObjectTailer(data, bitPos, sol);
110
	}
111
}
tags/org.gvsig.dwg-2.0.250/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgLayerReader15.java
1
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5
package org.gvsig.dwg.lib.readers.v15;
6

  
7
import java.util.ArrayList;
8

  
9
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
10
import org.gvsig.dwg.lib.DwgHandleReference;
11
import org.gvsig.dwg.lib.DwgObject;
12
import org.gvsig.dwg.lib.DwgUtil;
13
import org.gvsig.dwg.lib.objects.DwgLayer;
14

  
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 DwgLayerReader15 extends AbstractDwg15Reader{
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 DwgLayer))
29
			throw new RuntimeException("LayerReader 15 solo puede leer DwgLayer");
30
		//System.out.println("DwgLayer.readDwgLayerV15: offset = "+offset);
31
		DwgLayer lyr = (DwgLayer) dwgObj;
32
		int bitPos = offset;
33
		ArrayList v = DwgUtil.getBitLong(data, bitPos);
34
		bitPos = ((Integer)v.get(0)).intValue();
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff