Statistics
| Revision:

root / trunk / libraries / libDwg / src / com / iver / cit / jdwglib / dwg / readers / objreaders / v2004 / DwgCircleReader2004.java @ 23942

History | View | Annotate | Download (2.76 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.util.ArrayList;
8

    
9
import com.iver.cit.jdwglib.dwg.CorruptedDwgEntityException;
10
import com.iver.cit.jdwglib.dwg.DwgHandleReference;
11
import com.iver.cit.jdwglib.dwg.DwgObject;
12
import com.iver.cit.jdwglib.dwg.DwgUtil;
13
import com.iver.cit.jdwglib.dwg.objects.DwgCircle;
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 DwgCircleReader2004 extends AbstractDwg2004Reader{
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 DwgCircle))
28
                        throw new RuntimeException("CircleReader 2004 solo puede leer DwgCircle");
29
                DwgCircle circle = (DwgCircle) dwgObj;
30
                circle.inserta();
31

    
32
                boolean dontRead=false;
33
                int bitPos = offset;
34
                ArrayList v;
35

    
36

    
37
                bitPos = readObjectHeader(data, bitPos, dwgObj);
38

    
39
                v = DwgUtil.getBitDouble(data, bitPos);
40
                bitPos = ((Integer)v.get(0)).intValue();
41
                double x = ((Double)v.get(1)).doubleValue();
42
                v = DwgUtil.getBitDouble(data, bitPos);
43
                bitPos = ((Integer)v.get(0)).intValue();
44
                double y = ((Double)v.get(1)).doubleValue();
45
                v = DwgUtil.getBitDouble(data, bitPos);
46
                bitPos = ((Integer)v.get(0)).intValue();
47
                double z = ((Double)v.get(1)).doubleValue();
48
                double[] coord = new double[]{x, y, z};
49
                circle.setCenter(coord);
50
                v = DwgUtil.getBitDouble(data, bitPos);
51
                bitPos = ((Integer)v.get(0)).intValue();
52
                double val = ((Double)v.get(1)).doubleValue();
53
                circle.setRadius(val);
54
                v = DwgUtil.testBit(data, bitPos);
55
                bitPos = ((Integer)v.get(0)).intValue();
56
                boolean flag = ((Boolean)v.get(1)).booleanValue();
57
            if (flag) {
58
                        val=0.0;
59
                } else {
60
                        v = DwgUtil.getBitDouble(data, bitPos);
61
                        bitPos = ((Integer)v.get(0)).intValue();
62
                        val = ((Double)v.get(1)).doubleValue();
63
                }
64
            circle.setThickness(val);
65
                v = DwgUtil.testBit(data, bitPos);
66
                bitPos = ((Integer)v.get(0)).intValue();
67
                flag = ((Boolean)v.get(1)).booleanValue();
68
                if (flag) {
69
                         x = y = 0.0;
70
                         z = 1.0;
71
                } else {
72
                        v = DwgUtil.getBitDouble(data, bitPos);
73
                        bitPos = ((Integer)v.get(0)).intValue();
74
                        x = ((Double)v.get(1)).doubleValue();
75
                        v = DwgUtil.getBitDouble(data, bitPos);
76
                        bitPos = ((Integer)v.get(0)).intValue();
77
                        y = ((Double)v.get(1)).doubleValue();
78
                        v = DwgUtil.getBitDouble(data, bitPos);
79
                        bitPos = ((Integer)v.get(0)).intValue();
80
                        z = ((Double)v.get(1)).doubleValue();
81
                }
82
                coord = new double[]{x, y, z};
83
                circle.setExtrusion(coord);
84
                bitPos = readObjectTailer(data, bitPos, dwgObj);
85
        }
86
}