root / tags / v2_0_0_Build_2047 / applications / appgvSIG / src / org / gvsig / app / project / documents / view / toolListeners / snapping / snappers / FinalPointSnapper.java @ 38262
History | View | Annotate | Download (1.95 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 |
import org.gvsig.i18n.Messages; |
11 |
|
12 |
|
13 |
public class FinalPointSnapper extends AbstractSnapper implements ISnapperVectorial { |
14 |
public Point2D getSnapPoint(Point2D point, Geometry geom, double tolerance, Point2D lastPointEntered) { |
15 |
Point2D resul = null; |
16 |
Handler[] handlers = geom.getHandlers(Geometry.SELECTHANDLER); |
17 |
// Point2D initPoint=handlers[0].getPoint();
|
18 |
// Point2D endPoint=handlers[handlers.length-1].getPoint();
|
19 |
// if (initPoint.equals(endPoint))
|
20 |
// return resul;
|
21 |
|
22 |
double minDist = tolerance;
|
23 |
// double dist = initPoint.distance(point);
|
24 |
// if (dist < minDist) {
|
25 |
// resul = initPoint;
|
26 |
// minDist = dist;
|
27 |
// }
|
28 |
//
|
29 |
// dist = endPoint.distance(point);
|
30 |
// if (dist < minDist) {
|
31 |
// resul = endPoint;
|
32 |
// }
|
33 |
|
34 |
for (int j = 0; j < handlers.length; j++) { |
35 |
Point2D handlerPoint = handlers[j].getPoint();
|
36 |
double dist = handlerPoint.distance(point);
|
37 |
if ((dist < minDist)) {
|
38 |
resul = handlerPoint; |
39 |
minDist = dist; |
40 |
} |
41 |
} |
42 |
|
43 |
return resul;
|
44 |
} |
45 |
|
46 |
public String getToolTipText() { |
47 |
return Messages.getText("Final_point"); |
48 |
} |
49 |
|
50 |
/*
|
51 |
* (non-Javadoc)
|
52 |
* @see org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapper#draw(org.gvsig.fmap.mapcontrol.PrimitivesDrawer, java.awt.geom.Point2D)
|
53 |
*/
|
54 |
public void draw(PrimitivesDrawer primitivesDrawer, Point2D pPixels) { |
55 |
primitivesDrawer.setColor(getColor()); |
56 |
|
57 |
int half = getSizePixels() / 2; |
58 |
primitivesDrawer.drawRect((int) (pPixels.getX() - half),
|
59 |
(int) (pPixels.getY() - half),
|
60 |
getSizePixels(), getSizePixels()); |
61 |
} |
62 |
} |