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 |
} |