001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.gui.layer.geoimage.viewers.projections; 003 004import java.awt.Component; 005import java.awt.Graphics; 006import java.awt.Image; 007import java.awt.Rectangle; 008import java.awt.event.ComponentAdapter; 009import java.awt.image.BufferedImage; 010import java.util.EnumSet; 011import java.util.Set; 012 013import org.openstreetmap.josm.data.imagery.street_level.Projections; 014import org.openstreetmap.josm.gui.layer.geoimage.ImageDisplay; 015 016/** 017 * The default perspective image viewer class. 018 * This also handles (by default) unknown projections. 019 * @since 18246 020 */ 021public class Perspective extends ComponentAdapter implements IImageViewer { 022 023 @Override 024 public Set<Projections> getSupportedProjections() { 025 return EnumSet.of(Projections.PERSPECTIVE); 026 } 027 028 @Override 029 public void paintImage(Graphics g, BufferedImage image, Rectangle target, Rectangle r) { 030 g.drawImage(image, 031 target.x, target.y, target.x + target.width, target.y + target.height, 032 r.x, r.y, r.x + r.width, r.y + r.height, null); 033 } 034 035 @Override 036 public ImageDisplay.VisRect getDefaultVisibleRectangle(Component component, Image image) { 037 return new ImageDisplay.VisRect(0, 0, image.getWidth(null), image.getHeight(null)); 038 } 039}