Statistics
| Revision:

root / branches / v2_0_0_prep / applications / appgvSIG / src / org / gvsig / app / project / documents / view / toolListeners / snapping / snappers / FinalPointSnapper.java @ 30349

History | View | Annotate | Download (1.89 KB)

1
package org.gvsig.app.project.documents.view.toolListeners.snapping.snappers;
2

    
3
import java.awt.geom.Point2D;
4

    
5
import org.gvsig.fmap.geom.Geometry;
6
import org.gvsig.fmap.geom.handler.Handler;
7
import org.gvsig.fmap.mapcontrol.PrimitivesDrawer;
8
import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapperVectorial;
9
import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.impl.AbstractSnapper;
10

    
11

    
12
public class FinalPointSnapper extends AbstractSnapper implements ISnapperVectorial {
13
        public Point2D getSnapPoint(Point2D point, Geometry geom, double tolerance, Point2D lastPointEntered) {
14
                Point2D resul = null;
15
                Handler[] handlers = geom.getHandlers(Geometry.SELECTHANDLER);
16
                //                Point2D initPoint=handlers[0].getPoint();
17
                //                Point2D endPoint=handlers[handlers.length-1].getPoint();
18
                //                if (initPoint.equals(endPoint))
19
                //                        return resul;
20

    
21
                double minDist = tolerance;
22
                //                double dist = initPoint.distance(point);
23
                //                if (dist < minDist) {
24
                //                        resul = initPoint;
25
                //                        minDist = dist;
26
                //                }
27
                //
28
                //                dist = endPoint.distance(point);
29
                //                if (dist < minDist) {
30
                //                        resul = endPoint;
31
                //                }
32

    
33
                for (int j = 0; j < handlers.length; j++) {
34
                        Point2D handlerPoint = handlers[j].getPoint();
35
                        double dist = handlerPoint.distance(point);
36
                        if ((dist < minDist)) {
37
                                resul = handlerPoint;
38
                                minDist = dist;
39
                        }
40
                }
41

    
42
                return resul;
43
        }
44

    
45
        public String getToolTipText() {
46
                return "final_point";
47
        }
48

    
49
        /*
50
         * (non-Javadoc)
51
         * @see org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapper#draw(org.gvsig.fmap.mapcontrol.PrimitivesDrawer, java.awt.geom.Point2D)
52
         */
53
        public void draw(PrimitivesDrawer primitivesDrawer, Point2D pPixels) {
54
                primitivesDrawer.setColor(getColor());
55

    
56
                int half = getSizePixels() / 2;
57
                primitivesDrawer.drawRect((int) (pPixels.getX() - half),
58
                                (int) (pPixels.getY() - half),
59
                                getSizePixels(), getSizePixels());
60
        }
61
}