Statistics
| Revision:

svn-gvsig-desktop / branches / v02_desarrollo / libraries / libCq CMS for java.old / src / org / cresques / px / dxf / DxfPoint.java @ 1607

History | View | Annotate | Download (2.29 KB)

1
/*
2
 * Created on 09-may-2004
3
 *
4
 * @author "Luis W. Sevilla" <sevilla_lui@gva.es>
5
 */
6
package org.cresques.px.dxf;
7

    
8
import java.awt.Graphics2D;
9
import java.awt.geom.Point2D;
10

    
11
import org.cresques.cts.ICoordTrans;
12
import org.cresques.cts.IProjection;
13
import org.cresques.geo.ViewPortData;
14
import org.cresques.io.DxfGroup;
15
import org.cresques.px.Extent;
16

    
17
/**
18
 * Entidad TEXT de AutoCAD
19
 * jmorell: Actualizaci?n de la escritura al formato DXF2000.
20
 * @author "Luis W. Sevilla" <sevilla_lui@gva.es>* @author administrador
21
 */
22
public class DxfPoint extends DxfEntity {
23
        
24
        private Point2D pt;
25
        
26
        public DxfPoint(IProjection proj, DxfLayer layer) {
27
                super(proj, layer);
28
                extent = new Extent();
29
                pt = new Point2D.Double();
30
        }
31
        
32
        public void setPt(Point2D pt) { 
33
                this.pt = pt;
34
                extent.add(pt);
35
        }
36
        
37
        public void reProject(ICoordTrans rp) {
38
                Point2D savePt = pt;
39

    
40
                pt = new Point2D.Double();
41
                extent = new Extent();
42
                Point2D ptDest = rp.getPDest().createPoint(0.0,0.0);
43
                if (savePt == null)
44
                        ptDest = null;
45
                else {
46
                        ptDest = rp.convert((Point2D) savePt, ptDest);
47
                        extent.add(ptDest);
48
                }
49
                pt = ptDest;
50
                setProjection(rp.getPDest());
51
        }
52
        
53
        public void draw(Graphics2D g, ViewPortData vp) {
54
                //AffineTransform msave=g.getTransform();
55
                //g.setTransform(vp.mat);
56
                if (dxfColor == AcadColor.BYLAYER)
57
                        g.setColor(layer.getColor());
58
                else
59
                        g.setColor(AcadColor.getColor(dxfColor));
60
                Point2D ptT = new Point2D.Double(0, 0);
61
                vp.mat.transform(ptT, ptT);
62
                ptT.setLocation(pt.getX(), pt.getY());
63
                vp.mat.transform(ptT, ptT);
64
                g.drawLine((int) ptT.getX(), (int)ptT.getY(), (int) ptT.getX(), (int)ptT.getY());
65
                //g.setTransform(msave);
66
        }
67

    
68
        /**
69
         * 050221, jmorell: Escritura de puntos en un DXF2000.
70
         */
71
        public String toDxfString() {
72
                StringBuffer sb = null;
73
                sb = new StringBuffer( DxfGroup.toString(0, "POINT") );
74
                sb.append( DxfGroup.toString(5, getHandle()) );
75
                sb.append( DxfGroup.toString(100, "AcDbEntity") );
76
                sb.append( DxfGroup.toString(8, layer.getName()) );
77
                sb.append( DxfGroup.toString(62, dxfColor) );
78
                sb.append( DxfGroup.toString(100, "AcDbPoint") );
79
                sb.append( DxfGroup.toString(10, pt.getX(), 6) );
80
                sb.append( DxfGroup.toString(20, pt.getY(), 6) );
81
                sb.append( DxfGroup.toString(30, 0.0, 6) );
82
                return sb.toString();
83
        }
84
        /**
85
         * @return Returns the pt.
86
         */
87
        public Point2D getPt() {
88
                return pt;
89
        }
90
}