Revision 20
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