Revision 18321 trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/georeferencing/ui/zoom/ViewRasterRequestManager.java
ViewRasterRequestManager.java | ||
---|---|---|
29 | 29 |
import org.gvsig.raster.dataset.io.RasterDriverException; |
30 | 30 |
import org.gvsig.raster.datastruct.Extent; |
31 | 31 |
import org.gvsig.raster.datastruct.ViewPortData; |
32 |
import org.gvsig.raster.util.RasterUtilities; |
|
33 | 32 |
import org.gvsig.rastertools.georeferencing.view.BaseZoomView; |
34 | 33 |
|
35 | 34 |
/** |
... | ... | |
99 | 98 |
|
100 | 99 |
//Ajustamos el extent al del raster |
101 | 100 |
Extent ext = new Extent(extent);//.getX(), extent.getY(), extent.getX() + extent.getWidth(), extent.getY() - extent.getHeight()); |
102 |
Extent extSelection = RasterUtilities.calculateAdjustedView(ext, lyr.getFullRasterExtent());
|
|
101 |
Extent extSelection = calculateAdjustedView(ext, lyr.getFullRasterExtent()); |
|
103 | 102 |
|
104 | 103 |
//Obtenemos el viewport y calculamos la matriz de transformaci?n |
105 | 104 |
ViewPortData vp = new ViewPortData( null, ext, new Dimension(view.getCanvasWidth(), view.getCanvasHeight())); |
106 | 105 |
vp.calculateAffineTransform(); |
107 | 106 |
|
108 | 107 |
//Calculamos el punto del canvas de la vista donde se empieza a dibujar el buffer de la imagen |
109 |
Point2D pt = new Point2D.Double(extSelection.getULX(), extSelection.getLRY());
|
|
108 |
Point2D pt = new Point2D.Double(extSelection.getULX(), extSelection.getULY());
|
|
110 | 109 |
vp.mat.transform(pt, pt); |
111 | 110 |
|
112 | 111 |
try { |
... | ... | |
126 | 125 |
return extent; |
127 | 126 |
} |
128 | 127 |
|
128 |
/** |
|
129 |
* Ajusta la extensi?n del primer par?metro a los l?mites de la segunda |
|
130 |
* @param extToAdj |
|
131 |
* @param imgExt |
|
132 |
* @return |
|
133 |
*/ |
|
134 |
private Extent calculateAdjustedView(Extent extToAdj, Extent imgExt) { |
|
135 |
double vx = extToAdj.minX(); |
|
136 |
double vy = extToAdj.minY(); |
|
137 |
double vx2 = extToAdj.maxX(); |
|
138 |
double vy2 = extToAdj.maxY(); |
|
139 |
|
|
140 |
if (extToAdj.minX() < imgExt.minX()) |
|
141 |
vx = imgExt.minX(); |
|
142 |
if (extToAdj.minY() < imgExt.minY()) |
|
143 |
vy = imgExt.minY(); |
|
144 |
if (extToAdj.maxX() > imgExt.maxX()) |
|
145 |
vx2 = imgExt.maxX(); |
|
146 |
if (extToAdj.maxY() > imgExt.maxY()) |
|
147 |
vy2 = imgExt.maxY(); |
|
148 |
|
|
149 |
return new Extent(vx, vy2, vx2, vy); |
|
150 |
} |
|
151 |
|
|
129 | 152 |
/* |
130 | 153 |
* (non-Javadoc) |
131 | 154 |
* @see org.gvsig.rastertools.georeferencing.ui.zoom.IExtensionRequest#fullExtent(java.awt.Dimension) |
Also available in: Unified diff