Statistics
| Revision:

root / trunk / extensions / extCAD / src / com / iver / cit / gvsig / project / documents / view / snapping / snappers / CuadrantPointSnapper.java @ 8943

History | View | Annotate | Download (2.48 KB)

1
package com.iver.cit.gvsig.project.documents.view.snapping.snappers;
2

    
3
import com.iver.andami.PluginServices;
4

    
5
import com.iver.cit.gvsig.fmap.core.Handler;
6
import com.iver.cit.gvsig.fmap.core.ICuadrantHandler;
7
import com.iver.cit.gvsig.fmap.core.IGeometry;
8
import com.iver.cit.gvsig.project.documents.view.snapping.AbstractSnapper;
9
import com.iver.cit.gvsig.project.documents.view.snapping.ISnapperVectorial;
10

    
11
import java.awt.Graphics;
12
import java.awt.geom.Point2D;
13

    
14

    
15
/**
16
 * Cuadrant point snapper.
17
 *
18
 * @author Vicente Caballero Navarro
19
 */
20
public class CuadrantPointSnapper extends AbstractSnapper
21
    implements ISnapperVectorial {
22

    
23
        /* (non-Javadoc)
24
     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getSnapPoint(Point2D point,
25
     * IGeometry geom,double tolerance, Point2D lastPointEntered)
26
     */
27
    public Point2D getSnapPoint(Point2D point, IGeometry geom,
28
        double tolerance, Point2D lastPointEntered) {
29
        Point2D resul = null;
30

    
31
        Handler[] handlers = geom.getHandlers(IGeometry.SELECTHANDLER);
32

    
33
        double minDist = tolerance;
34

    
35
        for (int j = 0; j < handlers.length; j++) {
36
            if (handlers[j] instanceof ICuadrantHandler) {
37
                Point2D handlerPoint = handlers[j].getPoint();
38
                double dist = handlerPoint.distance(point);
39

    
40
                if ((dist < minDist)) {
41
                    resul = handlerPoint;
42
                    minDist = dist;
43
                }
44
            }
45
        }
46

    
47
        return resul;
48
    }
49

    
50
    /* (non-Javadoc)
51
     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getToolTipText()
52
     */
53
    public String getToolTipText() {
54
        return PluginServices.getText(this, "cuadrant_point");
55
    }
56

    
57
    /* (non-Javadoc)
58
     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#draw(java.awt.Graphics, java.awt.geom.Point2D)
59
     */
60
    public void draw(Graphics g, Point2D pPixels) {
61
        g.setColor(getColor());
62

    
63
        int half = getSizePixels() / 2;
64
        int x1 = (int) (pPixels.getX() - half);
65
        int x2 = (int) (pPixels.getX() + half);
66
        int x3 = (int) pPixels.getX();
67
        int y1 = (int) (pPixels.getY() - half);
68
        int y2 = (int) (pPixels.getY() + half);
69
        int y3 = (int) pPixels.getY();
70

    
71
        g.drawLine(x1, y3, x3, y1);
72
        g.drawLine(x1, y3, x3, y2);
73
        g.drawLine(x2, y3, x3, y1);
74
        g.drawLine(x2, y3, x3, y2);
75
    }
76

    
77
    /* (non-Javadoc)
78
     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getPriority()
79
     */
80
    public int getPriority() {
81
        return 5;
82
    }
83
}