Revision 20

View differences:

trunk/libraries/libCq CMS for java.old/src/org/cresques/io/DxfGroup.java
73 73
		} else if (280 <= code && code <= 289) {
74 74
			data = new Integer(Integer.parseInt(txt)); //_dfun = int_data // 8-bit int
75 75
		} else if (290 <= code && code <= 299) {
76
			throw new IOException("Dxf: codigo "+code+" no implementado."); //_dfun = bool_data
76
			data = new Boolean(Boolean.getBoolean(txt)); //_dfun = bool_data
77 77
		} else if (300 <= code && code <= 309) {
78 78
			data = txt;	//_dfun = string_data
79 79
		} else if (310 <= code && code <= 319) {
......
87 87
		} else if (380 <= code && code <= 389) {
88 88
			data = new Integer(Integer.parseInt(txt)); //_dfun = int_data // 8-bit int
89 89
		} else if (390 <= code && code <= 399) {
90
			throw new IOException("Dxf: codigo "+code+" no implementado."); //_dfun = handle_data
90
			data = txt; //_dfun = handle_data
91 91
		} else if (400 <= code && code <= 409) {
92 92
			data = new Integer(Integer.parseInt(txt)); //_dfun = int_data // 16-bit int
93 93
		} else if (410 <= code && code <= 419) {
trunk/libraries/libCq CMS for java.old/src/org/cresques/px/dxf/DxfCalXtru.java
1
package org.cresques.px.dxf;
2

  
3
import java.awt.geom.Point2D;
4
import java.lang.Math;
5

  
6
public class DxfCalXtru {
7
	public static Point2D CalculateXtru(Point2D coord_in, Point3D xtru) {
8
		Point2D coord_out = new Point2D.Double();
9
		
10
        double dxt0 = 0, dyt0 = 0, dzt0 = 0;
11
        double dvx1, dvx2, dvx3;
12
        double dvy1, dvy2, dvy3;
13
        double dmod, dxt, dyt, dzt;
14
        
15
        double aux = ((double)1.0)/((double)64.0); //LWS
16
        double aux1 = Math.abs(xtru.getX());
17
        double aux2 = Math.abs(xtru.getY());
18
        
19
        dxt0 = coord_in.getX();
20
        dyt0 = coord_in.getY();
21
        //dzt0 = coord_in.z;
22
        
23
        double xtruX, xtruY, xtruZ;
24
        xtruX = xtru.getX();
25
        xtruY = xtru.getY();
26
        xtruZ = xtru.getZ();
27

  
28
        if ((aux1 < aux) && (aux2 < aux)) {
29
            dmod = Math.sqrt(xtruZ*xtruZ + xtruX*xtruX);
30
            dvx1 = xtruZ / dmod;
31
            dvx2 = 0;
32
            dvx3 = -xtruX / dmod;
33
        } else {
34
            dmod = Math.sqrt(xtruY*xtruY + xtruX*xtruX);
35
            dvx1 = -xtruY / dmod;
36
            dvx2 = xtruX / dmod;
37
            dvx3 = 0;
38
        }
39

  
40
        dvy1 = xtruY*dvx3 - xtruZ*dvx2;
41
        dvy2 = xtruZ*dvx1 - xtruX*dvx3;
42
        dvy3 = xtruX*dvx2 - xtruY*dvx1;
43

  
44
        dmod = Math.sqrt(dvy1*dvy1 + dvy2*dvy2 + dvy3*dvy3);
45

  
46
        dvy1 = dvy1 / dmod;
47
        dvy2 = dvy2 / dmod;
48
        dvy3 = dvy3 / dmod;
49

  
50
        dxt = dvx1*dxt0 + dvy1*dyt0 + xtruX*dzt0;
51
        dyt = dvx2*dxt0 + dvy2*dyt0 + xtruY*dzt0;
52
        dzt = dvx3*dxt0 + dvy3*dyt0 + xtruZ*dzt0;
53

  
54
        coord_out.setLocation(dxt, dyt);
55
        //coord_out.z = dzt;
56

  
57
        dxt0 = 0;
58
        dyt0 = 0;
59
        dzt0 = 0;
60
        
61
		return coord_out;
62
	}
63
	
64
    public static double cosDeg(double alfa) {
65
    	final double toRad = Math.PI/(double)180.0;
66
    	return Math.cos(alfa*toRad);
67
    }
68

  
69
    public static double sinDeg(double alfa) {
70
    	final double toRad = Math.PI/(double)180.0;
71
    	return Math.sin(alfa*toRad);
72
    }
73
    
74
    public static void CalculateArc(double[] dat, double r, double angulo) {
75
    	dat[1] = dat[1] + r * Math.sin(angulo*Math.PI/(double)180.0);
76
    	dat[0] = dat[0] + r * Math.cos(angulo*Math.PI/(double)180.0);
77
    }
78
    
79
}
0 80

  
trunk/libraries/libCq CMS for java.old/src/org/cresques/px/dxf/DxfEntityMaker.java
27 27
	DxfEntityList entities = null;
28 28
	DxfTable layers = null;
29 29
	
30
    double xtruX=0.0, xtruY=0.0, xtruZ=1.0;
31
    double x=Double.NaN, y=Double.NaN, z=Double.NaN;
32
	
30 33
	public DxfEntityMaker (Projection proj) {
31 34
		this.proj = proj;
32 35
		layers = new DxfTable();
......
46 49
	public void createPolyline(DxfGroupVector grp) throws Exception {
47 50
		DxfLayer layer = (DxfLayer) layers.getByName(grp.getDataAsString(8));
48 51
		DxfPolyline entity = new DxfPolyline(proj, layer);
52
		
53
		if (grp.hasCode(10))
54
			x = grp.getDataAsInt(10);
55
		if (grp.hasCode(20))
56
			y = grp.getDataAsInt(20);
57
		if (grp.hasCode(30))
58
			z = grp.getDataAsInt(30);
59
		if (grp.hasCode(210))
60
			xtruX = grp.getDataAsInt(210);
61
		if (grp.hasCode(220))
62
			xtruY = grp.getDataAsInt(220);
63
		if (grp.hasCode(230))
64
			xtruZ = grp.getDataAsInt(230);
49 65
		if (grp.hasCode(62))
50 66
			entity.dxfColor = grp.getDataAsInt(62);
51 67
		if (grp.hasCode(70))
......
61 77
		
62 78
		x  = grp.getDataAsDouble(10);
63 79
		y  = grp.getDataAsDouble(20);
80
		
81
		x = 
82
		
64 83
		//System.out.println(x+","+y);
65 84
		Point2D pt = proj.createPoint( x, y);
66 85
		((DxfPolyline) lastEntity).add(pt);

Also available in: Unified diff