Revision 9925 trunk/libraries/libDwg/src/com/iver/cit/jdwglib/dwg/readers/objreaders/v15/DwgCircleReader15.java

View differences:

DwgCircleReader15.java
4 4
 */
5 5
package com.iver.cit.jdwglib.dwg.readers.objreaders.v15;
6 6

  
7
import java.util.ArrayList;
8

  
7 9
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;
10
import com.iver.cit.jdwglib.dwg.DwgUtil;
11
import com.iver.cit.jdwglib.dwg.objects.DwgCircle;
10 12

  
11 13
/**
12 14
 * @author alzabord
......
14 16
 * TODO To change the template for this generated type comment go to
15 17
 * Window - Preferences - Java - Code Style - Code Templates
16 18
 */
17
public class DwgCircleReader15 implements IDwgObjectReader{
19
public class DwgCircleReader15 extends AbstractDwg15Reader{
18 20

  
19 21
	/* (non-Javadoc)
20 22
	 * @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject)
21 23
	 */
22
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) {
23
		// TODO Auto-generated method stub
24
		
24
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws Exception {
25
		if(! (dwgObj instanceof DwgCircle))
26
			throw new RuntimeException("ArcReader 15 solo puede leer DwgCircle");
27
		DwgCircle circle = (DwgCircle) dwgObj;
28
		int bitPos = offset;
29
		bitPos = headTailReader.readObjectHeader(data, bitPos, dwgObj);
30
		ArrayList v = DwgUtil.getBitDouble(data, bitPos);
31
		bitPos = ((Integer)v.get(0)).intValue();
32
		double x = ((Double)v.get(1)).doubleValue();
33
		v = DwgUtil.getBitDouble(data, bitPos);
34
		bitPos = ((Integer)v.get(0)).intValue();
35
		double y = ((Double)v.get(1)).doubleValue();
36
		v = DwgUtil.getBitDouble(data, bitPos);
37
		bitPos = ((Integer)v.get(0)).intValue();
38
		double z = ((Double)v.get(1)).doubleValue();
39
		double[] coord = new double[]{x, y, z};
40
		circle.setCenter(coord);
41
		v = DwgUtil.getBitDouble(data, bitPos);
42
		bitPos = ((Integer)v.get(0)).intValue();
43
		double val = ((Double)v.get(1)).doubleValue();
44
		circle.setRadius(val);
45
		v = DwgUtil.testBit(data, bitPos);
46
		bitPos = ((Integer)v.get(0)).intValue();
47
		boolean flag = ((Boolean)v.get(1)).booleanValue();
48
	    if (flag) {
49
			val=0.0;
50
		} else {
51
			v = DwgUtil.getBitDouble(data, bitPos);
52
			bitPos = ((Integer)v.get(0)).intValue();
53
			val = ((Double)v.get(1)).doubleValue();
54
		}
55
	    circle.setThickness(val);
56
		v = DwgUtil.testBit(data, bitPos);
57
		bitPos = ((Integer)v.get(0)).intValue();
58
		flag = ((Boolean)v.get(1)).booleanValue();
59
		if (flag) {
60
			 x = y = 0.0;
61
			 z = 1.0;
62
		} else {
63
			v = DwgUtil.getBitDouble(data, bitPos);
64
			bitPos = ((Integer)v.get(0)).intValue();
65
			x = ((Double)v.get(1)).doubleValue();
66
			v = DwgUtil.getBitDouble(data, bitPos);
67
			bitPos = ((Integer)v.get(0)).intValue();
68
			y = ((Double)v.get(1)).doubleValue();
69
			v = DwgUtil.getBitDouble(data, bitPos);
70
			bitPos = ((Integer)v.get(0)).intValue();
71
			z = ((Double)v.get(1)).doubleValue();
72
		}
73
		coord = new double[]{x, y, z};
74
		circle.setExtrusion(coord);
75
		bitPos = headTailReader.readObjectTailer(data, bitPos, dwgObj);
25 76
	}
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
32
		
33
	}
34

  
35 77
}

Also available in: Unified diff