Revision 1729 branches/gvSIG_CAD_Layout_version/applications/appgvSIG/src/com/iver/cit/gvsig/gui/cad/CadGrid.java
CadGrid.java | ||
---|---|---|
41 | 41 |
package com.iver.cit.gvsig.gui.cad; |
42 | 42 |
|
43 | 43 |
import com.iver.cit.gvsig.fmap.ViewPort; |
44 |
import com.iver.cit.gvsig.gui.layout.LayoutCADToolAdapter; |
|
44 | 45 |
|
45 | 46 |
import java.awt.Graphics; |
46 | 47 |
import java.awt.Point; |
48 |
import java.awt.geom.AffineTransform; |
|
47 | 49 |
import java.awt.geom.Point2D; |
48 | 50 |
import java.awt.geom.Rectangle2D; |
49 | 51 |
|
... | ... | |
55 | 57 |
* @author Vicente Caballero Navarro |
56 | 58 |
*/ |
57 | 59 |
public class CadGrid { |
58 |
private boolean grid = false; |
|
59 |
private int gridSize = 1000; |
|
60 |
private ViewPort viewport; |
|
60 |
private boolean grid = true; |
|
61 |
private double gridSizeX=1; |
|
62 |
private double gridSizeY=1; |
|
63 |
private AffineTransform at; |
|
61 | 64 |
private boolean adjustGrid; |
62 |
|
|
65 |
private CADToolAdapter cta; |
|
66 |
|
|
67 |
public CadGrid(CADToolAdapter cta){ |
|
68 |
this.cta=cta; |
|
69 |
} |
|
63 | 70 |
/** |
64 | 71 |
* Inserta el viewPort. |
65 | 72 |
* |
66 | 73 |
* @param vp |
67 | 74 |
*/ |
68 |
public void setViewPort(ViewPort vp) { |
|
69 |
viewport = vp; |
|
70 |
gridSize=(int)viewport.toMapDistance(20); |
|
75 |
public void setAT(AffineTransform at) { |
|
76 |
this.at = at; |
|
71 | 77 |
} |
72 |
|
|
78 |
public void setGridSizeX(double d){ |
|
79 |
gridSizeX=d;//(int)cta.fromDistance(d); |
|
80 |
} |
|
81 |
public void setGridSizeY(double d){ |
|
82 |
gridSizeY=d;//(int)cta.fromDistance(d); |
|
83 |
} |
|
84 |
public double getGridSizeX(){ |
|
85 |
return gridSizeX; |
|
86 |
} |
|
87 |
public double getGridSizeY(){ |
|
88 |
return gridSizeY; |
|
89 |
} |
|
73 | 90 |
/** |
74 | 91 |
* Ajusta un punto de la imagen que se pasa como par?metro al handler m?s |
75 | 92 |
* cercano si se encuentra lo suficientemente cerca y devuelve la |
... | ... | |
82 | 99 |
public double adjustToGrid(Point point) { |
83 | 100 |
if (grid && adjustGrid) { |
84 | 101 |
Point2D auxp = new Point2D.Double(0, 0); |
85 |
Point2D po = viewport.toMapPoint(point); |
|
86 |
Rectangle2D extent = viewport.getAdjustedExtent(); |
|
87 |
double x = ((po.getX() + gridSize) % gridSize) -
|
|
88 |
((auxp.getX()) % gridSize); |
|
89 |
double y = ((po.getY() + gridSize) % gridSize) -
|
|
90 |
((auxp.getY()) % gridSize); |
|
102 |
Point2D po = cta.toPoint(point);//viewport.toMapPoint(point);
|
|
103 |
Rectangle2D extent = cta.getExtent();//viewport.getAdjustedExtent();
|
|
104 |
double x = ((po.getX() + gridSizeX) % gridSizeX) -
|
|
105 |
((auxp.getX()) % gridSizeX);
|
|
106 |
double y = ((po.getY() + gridSizeY) % gridSizeY) -
|
|
107 |
((auxp.getY()) % gridSizeY);
|
|
91 | 108 |
Point2D p = new Point(point); |
92 |
point.x = (int) (p.getX() - viewport.fromMapDistance(x)); |
|
93 |
point.y = (int) (p.getY() + viewport.fromMapDistance(y)); |
|
94 |
|
|
109 |
point.x = (int) (p.getX() - cta.fromDistance(x));//viewport.fromMapDistance(x)); |
|
110 |
if (cta instanceof LayoutCADToolAdapter){ |
|
111 |
point.y = (int) (p.getY() - cta.fromDistance(y));//viewport.fromMapDistance(y)); |
|
112 |
}else{ |
|
113 |
point.y = (int) (p.getY() + cta.fromDistance(y)); |
|
114 |
} |
|
115 |
|
|
95 | 116 |
return p.distance(point); |
96 | 117 |
} |
97 | 118 |
|
... | ... | |
108 | 129 |
return; |
109 | 130 |
} |
110 | 131 |
|
111 |
Rectangle2D extent = viewport.getAdjustedExtent();
|
|
132 |
Rectangle2D extent = cta.getExtent();
|
|
112 | 133 |
Point2D auxp = new Point2D.Double(0, 0); |
113 | 134 |
|
114 |
for (int i = (int) extent.getMinX(); i < (extent.getMaxX() + gridSize);
|
|
115 |
i += gridSize) { |
|
135 |
for (int i = (int) extent.getMinX(); i < (extent.getMaxX()); |
|
136 |
i += gridSizeX) {
|
|
116 | 137 |
for (int j = (int) extent.getMinY(); |
117 |
j < (extent.getMaxY() + gridSize); j += gridSize) {
|
|
138 |
j < (extent.getMaxY() ); j += gridSizeY) {
|
|
118 | 139 |
Point2D po = new Point2D.Double(i, j); |
119 |
Point2D point = viewport.fromMapPoint(po); |
|
120 |
double x = ((po.getX() + gridSize) % gridSize) -
|
|
121 |
((auxp.getX()) % gridSize); |
|
122 |
double y = ((po.getY() + gridSize) % gridSize) -
|
|
123 |
((auxp.getY()) % gridSize); |
|
124 |
x = (int) (point.getX() - viewport.fromMapDistance(x));
|
|
125 |
y = (int) (point.getY() + viewport.fromMapDistance(y));
|
|
126 |
if (viewport.fromMapDistance(gridSize)>3){
|
|
140 |
Point2D point = cta.fromPoint(po);//viewport.fromMapPoint(po);
|
|
141 |
double x = ((po.getX() + gridSizeX) % gridSizeX) -
|
|
142 |
((auxp.getX()) % gridSizeX);
|
|
143 |
double y = ((po.getY() + gridSizeY) % gridSizeY) -
|
|
144 |
((auxp.getY()) % gridSizeY);
|
|
145 |
x = (int) (point.getX() - cta.fromDistance(x));
|
|
146 |
y = (int) (point.getY() + cta.fromDistance(y));
|
|
147 |
if (cta.fromDistance(gridSizeX)>5 && cta.fromDistance(gridSizeY)>5){
|
|
127 | 148 |
g.drawOval((int) x, (int) y, 1, 1); |
128 | 149 |
} |
129 | 150 |
} |
Also available in: Unified diff