Revision 10820 trunk/libraries/libDwg/src/com/iver/cit/jdwglib/dwg/objects/DwgPolyline3D.java

View differences:

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