Statistics
| Revision:

svn-gvsig-desktop / trunk / extensions / extCAD / src / com / iver / cit / gvsig / project / documents / view / snapping / snappers / CentralPointSnapper.java @ 10626

History | View | Annotate | Download (2.04 KB)

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

    
3
import java.awt.Graphics;
4
import java.awt.geom.Point2D;
5

    
6
import com.iver.andami.PluginServices;
7
import com.iver.cit.gvsig.fmap.core.Handler;
8
import com.iver.cit.gvsig.fmap.core.ICenterHandler;
9
import com.iver.cit.gvsig.fmap.core.IGeometry;
10
import com.iver.cit.gvsig.project.documents.view.snapping.AbstractSnapper;
11
import com.iver.cit.gvsig.project.documents.view.snapping.ISnapperVectorial;
12

    
13

    
14
/**
15
 * Central point snapper.
16
 *
17
 * @author Vicente Caballero Navarro
18
 */
19
public class CentralPointSnapper extends AbstractSnapper
20
    implements ISnapperVectorial {
21
        /* (non-Javadoc)
22
     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getSnapPoint(Point2D point,
23
     * IGeometry geom,double tolerance, Point2D lastPointEntered)
24
     */
25
        public Point2D getSnapPoint(Point2D point, IGeometry geom,
26
        double tolerance, Point2D lastPointEntered) {
27
        Point2D resul = null;
28

    
29
        Handler[] handlers = geom.getHandlers(IGeometry.SELECTHANDLER);
30

    
31
        double minDist = tolerance;
32

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

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

    
45
        return resul;
46
    }
47
        /* (non-Javadoc)
48
     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getToolTipText()
49
     */
50
    public String getToolTipText() {
51
        return PluginServices.getText(this, "central_point");
52
    }
53

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

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