Revision 10303 trunk/libraries/libDwg/src/com/iver/cit/jdwglib/dwg/objects/DwgText.java
DwgText.java | ||
---|---|---|
35 | 35 |
package com.iver.cit.jdwglib.dwg.objects; |
36 | 36 |
|
37 | 37 |
import java.awt.geom.Point2D; |
38 |
import java.util.List; |
|
39 |
import java.util.Map; |
|
38 | 40 |
|
39 | 41 |
import com.iver.cit.gvsig.fmap.core.FPoint2D; |
40 | 42 |
import com.iver.cit.gvsig.fmap.core.FPoint3D; |
41 | 43 |
import com.iver.cit.gvsig.fmap.core.FShape; |
44 |
import com.iver.cit.jdwglib.dwg.DwgFile; |
|
42 | 45 |
import com.iver.cit.jdwglib.dwg.DwgHandleReference; |
43 | 46 |
import com.iver.cit.jdwglib.dwg.DwgObject; |
44 | 47 |
import com.iver.cit.jdwglib.dwg.IDwg2FMap; |
45 | 48 |
import com.iver.cit.jdwglib.dwg.IDwg3DTestable; |
49 |
import com.iver.cit.jdwglib.dwg.IDwgBlockMember; |
|
46 | 50 |
import com.iver.cit.jdwglib.dwg.IDwgExtrusionable; |
47 | 51 |
import com.iver.cit.jdwglib.util.AcadExtrusionCalculator; |
48 | 52 |
|
... | ... | |
52 | 56 |
* @author jmorell |
53 | 57 |
*/ |
54 | 58 |
public class DwgText extends DwgObject |
55 |
implements IDwgExtrusionable, IDwg3DTestable, IDwg2FMap { |
|
59 |
implements IDwgExtrusionable, |
|
60 |
IDwg3DTestable, |
|
61 |
IDwg2FMap, |
|
62 |
IDwgBlockMember{ |
|
56 | 63 |
public DwgText(int index) { |
57 | 64 |
super(index); |
58 | 65 |
// TODO Auto-generated constructor stub |
... | ... | |
307 | 314 |
* @see java.lang.Object#clone() |
308 | 315 |
*/ |
309 | 316 |
public Object clone(){ |
310 |
DwgCircle obj = new DwgCircle(index);
|
|
317 |
DwgText obj = new DwgText(index);
|
|
311 | 318 |
this.fill(obj); |
312 | 319 |
return obj; |
313 | 320 |
} |
314 | 321 |
|
315 | 322 |
protected void fill(DwgObject obj){ |
316 | 323 |
super.fill(obj); |
317 |
DwgCircle myObj = (DwgCircle)obj;
|
|
324 |
DwgText myObj = (DwgText)obj;
|
|
318 | 325 |
|
319 |
setAlignmentPoint(alignmentPoint); |
|
320 |
setDataFlag(dataFlag); |
|
321 |
setElevation(elevation); |
|
326 |
myObj.setAlignmentPoint(alignmentPoint);
|
|
327 |
myObj.setDataFlag(dataFlag);
|
|
328 |
myObj.setElevation(elevation);
|
|
322 | 329 |
myObj.setExtrusion(extrusion); |
323 |
setGeneration(generation); |
|
324 |
setHalign(halign); |
|
325 |
setHeight(height); |
|
326 |
setInsertionPoint(insertionPoint); |
|
327 |
setObliqueAngle(obliqueAngle); |
|
328 |
setRotationAngle(rotationAngle); |
|
329 |
setStyleHandle(styleHdl); |
|
330 |
setText(text); |
|
330 |
myObj.setGeneration(generation);
|
|
331 |
myObj.setHalign(halign);
|
|
332 |
myObj.setHeight(height);
|
|
333 |
myObj.setInsertionPoint(insertionPoint);
|
|
334 |
myObj.setObliqueAngle(obliqueAngle);
|
|
335 |
myObj.setRotationAngle(rotationAngle);
|
|
336 |
myObj.setStyleHandle(styleHdl);
|
|
337 |
myObj.setText(text);
|
|
331 | 338 |
myObj.setThickness(thickness); |
332 |
setValign(valign); |
|
333 |
setWidthFactor(widthFactor); |
|
339 |
myObj.setValign(valign);
|
|
340 |
myObj.setWidthFactor(widthFactor);
|
|
334 | 341 |
} |
342 |
|
|
343 |
//TODO Implement |
|
344 |
public void transform2Block(double[] bPoint, Point2D insPoint, double[] scale, double rot, List dwgObjectsWithoutBlocks, Map handle_objectsWithoutBlocks, DwgFile callBack) { |
|
345 |
Point2D pointAux = new Point2D.Double(insertionPoint.getX() - bPoint[0], |
|
346 |
insertionPoint.getY() - bPoint[1]); |
|
347 |
double laX = insPoint.getX() + ((pointAux.getX()*scale[0])*Math.cos(rot) + (pointAux.getY()*scale[1])*(-1)*Math.sin(rot)); |
|
348 |
double laY = insPoint.getY() + ((pointAux.getX()*scale[0])*Math.sin(rot) + (pointAux.getY()*scale[1])*Math.cos(rot)); |
|
335 | 349 |
|
350 |
Point2D.Double newInsertionPoint = new Point2D.Double(laX, laY); |
|
351 |
DwgText transformedEntity = (DwgText) this.clone(); |
|
352 |
transformedEntity.setInsertionPoint(newInsertionPoint); |
|
353 |
|
|
354 |
pointAux = new Point2D.Double(alignmentPoint.getX() - bPoint[0], |
|
355 |
alignmentPoint.getY() - bPoint[1]); |
|
356 |
laX = insPoint.getX() + ((pointAux.getX()*scale[0])*Math.cos(rot) + (pointAux.getY()*scale[1])*(-1)*Math.sin(rot)); |
|
357 |
laY = insPoint.getY() + ((pointAux.getX()*scale[0])*Math.sin(rot) + (pointAux.getY()*scale[1])*Math.cos(rot)); |
|
358 |
Point2D.Double newAlignPoint = new Point2D.Double(laX, laY); |
|
359 |
transformedEntity.setAlignmentPoint(newAlignPoint); |
|
360 |
|
|
361 |
//TODO Transformar el resto de parametros en base a los datos del bloque |
|
362 |
//altura, etc. |
|
363 |
} |
|
364 |
|
|
336 | 365 |
} |
Also available in: Unified diff