Revision 10820 trunk/libraries/libDwg/src/com/iver/cit/jdwglib/dwg/objects/DwgPolyline3D.java
DwgPolyline3D.java | ||
---|---|---|
34 | 34 |
*/ |
35 | 35 |
package com.iver.cit.jdwglib.dwg.objects; |
36 | 36 |
|
37 |
import java.awt.geom.Point2D; |
|
37 | 38 |
import java.util.ArrayList; |
38 | 39 |
import java.util.List; |
40 |
import java.util.Map; |
|
39 | 41 |
|
40 | 42 |
import com.iver.cit.gvsig.fmap.core.FPolyline2D; |
41 |
import com.iver.cit.gvsig.fmap.core.FShape; |
|
43 |
import com.iver.cit.gvsig.fmap.core.IGeometry; |
|
44 |
import com.iver.cit.gvsig.fmap.core.ShapeFactory; |
|
42 | 45 |
import com.iver.cit.jdwglib.dwg.DwgFile; |
43 | 46 |
import com.iver.cit.jdwglib.dwg.DwgHandleReference; |
44 | 47 |
import com.iver.cit.jdwglib.dwg.DwgObject; |
45 | 48 |
import com.iver.cit.jdwglib.dwg.IDwg2FMap; |
46 | 49 |
import com.iver.cit.jdwglib.dwg.IDwg3DTestable; |
50 |
import com.iver.cit.jdwglib.dwg.IDwgBlockMember; |
|
47 | 51 |
import com.iver.cit.jdwglib.dwg.IDwgPolyline; |
48 | 52 |
import com.iver.cit.jdwglib.dwg.IDwgVertex; |
49 | 53 |
import com.iver.cit.jdwglib.util.FMapUtil; |
... | ... | |
54 | 58 |
* @author jmorell |
55 | 59 |
*/ |
56 | 60 |
public class DwgPolyline3D extends DwgObject |
57 |
implements IDwgPolyline, IDwg3DTestable, IDwg2FMap{ |
|
61 |
implements IDwgPolyline, IDwg3DTestable, IDwg2FMap, IDwgBlockMember{
|
|
58 | 62 |
|
59 | 63 |
private int splineFlags; |
60 | 64 |
private int closedFlags; |
... | ... | |
325 | 329 |
/* (non-Javadoc) |
326 | 330 |
* @see com.iver.cit.jdwglib.dwg.IDwg2FMap#toFMapGeometry(boolean) |
327 | 331 |
*/ |
328 |
public FShape toFMapGeometry(boolean is3DFile) {
|
|
332 |
public IGeometry toFMapGeometry(boolean is3DFile) {
|
|
329 | 333 |
FPolyline2D pline = null; |
330 | 334 |
List points3D = getPts(); |
331 | 335 |
if (points3D != null) { |
... | ... | |
342 | 346 |
pline = FMapUtil.points2DToFPolyline2D(points2D); |
343 | 347 |
}//if |
344 | 348 |
}//if |
345 |
return pline;
|
|
349 |
return ShapeFactory.createGeometry(pline);
|
|
346 | 350 |
} |
347 | 351 |
/* (non-Javadoc) |
348 | 352 |
* @see com.iver.cit.jdwglib.dwg.IDwg2FMap#toFMapString(boolean) |
... | ... | |
381 | 385 |
public void addVertex(IDwgVertex vertex) { |
382 | 386 |
vertices.add(vertex.getPoint()); |
383 | 387 |
} |
388 |
|
|
389 |
//TODO Por qu? Polyline3D no ten?a implementado el transform2Block??? |
|
390 |
public void transform2Block(double[] bPoint, Point2D insPoint, |
|
391 |
double[] scale, double rot, |
|
392 |
List dwgObjectsWithoutBlocks, |
|
393 |
Map handleObjWithoutBlocks, DwgFile callBack) { |
|
394 |
|
|
395 |
DwgPolyline3D transformedEntity = null; |
|
396 |
List vertices = this.getPts(); |
|
397 |
|
|
398 |
if (vertices != null) { |
|
399 |
List transformedVertices = new ArrayList(); |
|
400 |
for (int i=0;i < vertices.size();i++) { |
|
401 |
double[] pointAux = null; |
|
402 |
pointAux = new double[]{((double[]) vertices.get(i))[0] - bPoint[0], |
|
403 |
((double[]) vertices.get(i))[1] - bPoint[1]}; |
|
404 |
|
|
405 |
double laX = insPoint.getX() + ((pointAux[0] * scale[0])*Math.cos(rot) + (pointAux[1]*scale[1])*(-1)*Math.sin(rot)); |
|
406 |
double laY = insPoint.getY() + ((pointAux[0]*scale[0])*Math.sin(rot) + (pointAux[1]*scale[1])*Math.cos(rot)); |
|
407 |
double laZ = ((double[]) vertices.get(i))[2] - bPoint[2]; |
|
408 |
transformedVertices.add(new double[]{laX, laY, laZ}); |
|
409 |
}//for |
|
410 |
transformedEntity = (DwgPolyline3D)this.clone(); |
|
411 |
transformedEntity.setPts(transformedVertices); |
|
412 |
dwgObjectsWithoutBlocks.add(transformedEntity); |
|
413 |
handleObjWithoutBlocks.put(new Integer(transformedEntity.getHandle().getOffset()), transformedEntity); |
|
414 |
} |
|
415 |
} |
|
384 | 416 |
|
385 | 417 |
} |
Also available in: Unified diff