Revision 12768 trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/geolocation/behavior/ScaleBehavior.java

View differences:

ScaleBehavior.java
28 28
import java.awt.geom.AffineTransform;
29 29
import java.awt.geom.NoninvertibleTransformException;
30 30
import java.awt.geom.Point2D;
31
import java.awt.geom.Rectangle2D;
32 31

  
33 32
import javax.swing.ImageIcon;
34 33
import javax.swing.JOptionPane;
35 34

  
35
import org.gvsig.raster.datastruct.Extent;
36

  
36 37
import com.iver.andami.PluginServices;
37 38
import com.iver.cit.gvsig.fmap.ViewPort;
38 39
import com.iver.cit.gvsig.fmap.tools.BehaviorException;
......
349 350
	 * Cuando movemos el rat?n detecta si estamos en el marco de la 
350 351
	 * imagen y pone el icono del cursor del rat?n adecuado.
351 352
	 */
352
	public boolean mouseMoved(MouseEvent e) throws BehaviorException {
353
	public boolean mouseMoved(MouseEvent ev) throws BehaviorException {
353 354
		ViewPort vp = grBehavior.getMapControl().getMapContext().getViewPort();
354 355
		resetBorderSelected();
355 356
		
......
359 360
			return false;
360 361
		}
361 362
		
362
		Rectangle2D ext = lyr.getFullExtent();
363
		/*Point2D a = new Point2D.Double(ext.getMinX(), ext.getMaxY());
364
		Point2D b = new Point2D.Double(ext.getMaxX(), ext.getMinY());
365
		try {
366
			lyr.getAffineTransform().inverseTransform(a, a);
367
			lyr.getAffineTransform().inverseTransform(b, b);
368
			AffineTransform at = new AffineTransform(1, 0, 0, 1, lyr.getAffineTransform().getTranslateX(), lyr.getAffineTransform().getTranslateY());
369
			at.transform(a, a);
370
			at.transform(b, b);
371
		} catch (NoninvertibleTransformException ex) {
372
			return false;
373
		}
363
		Extent ext = lyr.getMultiRasterDataset().getExtent();
364
		AffineTransform at = lyr.getAffineTransform();
374 365
		
375
		Point2D p1 = vp.fromMapPoint(a.getX(), a.getY());
376
		Point2D p2 = vp.fromMapPoint(b.getX(), b.getY());*/
366
		//Establecer una escala entre las coordenadas de la vista y las coordenadas pixel
367
		//Escalar PX_SELEC y LONG_CORNER para tenerlo en coordenadas pixel
368
		//Pasar coordenadas del punto a coordenadas reales y luego a coordenadas pixel
369
		//Comprobar si est? dentro del raster
377 370
		
378
		Point2D p1 = vp.fromMapPoint(ext.getMinX(), ext.getMaxY());
379
		Point2D p2 = vp.fromMapPoint(ext.getMaxX(), ext.getMinY());
371
		Point2D p1 = vp.fromMapPoint(ext.minX(), ext.maxY());
372
		Point2D p2 = vp.fromMapPoint(ext.maxX(), ext.minY());
373
		Point2D e = new Point2D.Double(ev.getX(), ev.getY());
374
		
380 375
		//Fuera del raster
381 376
		if(e.getX() < p1.getX() || e.getX() > p2.getX() || e.getY() < p1.getY() || e.getY() > p2.getY() ) {
382 377
			setActiveTool(false);

Also available in: Unified diff