Statistics
| Revision:

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

History | View | Annotate | Download (2.19 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.ICenterHandler;
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
 * Central point snapper.
17
 *
18
 * @author Vicente Caballero Navarro
19
 */
20
public class CentralPointSnapper 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 ICenterHandler) {
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
        /* (non-Javadoc)
50
     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getToolTipText()
51
     */
52
    public String getToolTipText() {
53
        return PluginServices.getText(this, "central_point");
54
    }
55

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

    
62
        int half = getSizePixels() / 2;
63
        g.drawOval((int) (pPixels.getX() - half),
64
            (int) (pPixels.getY() - half), getSizePixels(), getSizePixels());
65
    }
66

    
67
    /* (non-Javadoc)
68
     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getPriority()
69
     */
70
    public int getPriority() {
71
        return 4;
72
    }
73
}