/** {@inheritDoc} */ @Override public AffineTransform getWorldToScreenTransform() { paramsLock.readLock().lock(); try { if (mapContent != null) { return mapContent.getViewport().getWorldToScreen(); } else { return null; } } finally { paramsLock.readLock().unlock(); } }
/** * Creates a new rendering task. * * @param mapContent * @param renderer * @param graphics */ public RenderingTask( MapContent mapContent, Graphics2D destinationGraphics, GTRenderer renderer) { if (mapContent == null) { throw new IllegalArgumentException("mapContent must not be null"); } if (renderer == null) { throw new IllegalArgumentException("renderer must not be null"); } if (destinationGraphics == null) { throw new IllegalArgumentException("graphics must not be null"); } this.destinationGraphics = destinationGraphics; this.deviceArea = mapContent.getViewport().getScreenArea(); this.worldArea = mapContent.getViewport().getBounds(); this.worldToScreenTransform = mapContent.getViewport().getWorldToScreen(); this.renderer = renderer; running = new AtomicBoolean(false); failed = new AtomicBoolean(false); cancelled = new AtomicBoolean(false); }
@Override public void draw(Graphics2D graphics, MapContent map, MapViewport theViewport) { LOGGER.fine("Started drawing"); final MapViewport viewport = new MapViewport(theViewport); final ReferencedEnvelope viewportExtent = viewport.getBounds(); int scale = calculateScale(viewportExtent, viewport.getScreenArea()); Collection<Tile> tiles = service.findTilesInExtent(viewportExtent, scale, false, 128); BufferedImage mosaickedImage = createImage(viewport.getScreenArea()); Graphics2D g2d = mosaickedImage.createGraphics(); renderTiles(tiles, g2d, viewportExtent, viewport.getWorldToScreen()); this.coverage = gridFactory.create("GridCoverage", mosaickedImage, viewportExtent); graphics.drawImage(mosaickedImage, 0, 0, null); LOGGER.fine("Drawing done"); }
@Test public void boundsCtorSetsNullWorldToScreen() { MapViewport vp = new MapViewport(WORLD_1_1); assertNull(vp.getWorldToScreen()); }
@Test public void noArgCtorThenSetBoundsGivesNullWorldToScreen() { MapViewport vp = new MapViewport(); vp.setBounds(WORLD_1_1); assertNull(vp.getWorldToScreen()); }
@Test public void noArgCtorThenSetBoundsGivesNullScreenToWorld() { MapViewport vp = new MapViewport(); vp.setBounds(WORLD_1_1); assertNull(vp.getWorldToScreen()); }
/** * {@inheritDoc} */ @Override public AffineTransform getWorldToScreenTransform() { paramsLock.readLock().lock(); try { if (mapContent != null) { return mapContent.getViewport().getWorldToScreen(); } else { return null; } } finally { paramsLock.readLock().unlock(); } }
this.deviceArea = mapContent.getViewport().getScreenArea(); this.worldArea = mapContent.getViewport().getBounds(); this.worldToScreenTransform = mapContent.getViewport().getWorldToScreen(); this.renderer = renderer;
@Override public void draw(Graphics2D graphics, MapContent map, MapViewport theViewport) { LOGGER.fine("Started drawing"); final MapViewport viewport = new MapViewport(theViewport); final ReferencedEnvelope viewportExtent = viewport.getBounds(); int scale = calculateScale(viewportExtent, viewport.getScreenArea()); Collection<Tile> tiles = service.findTilesInExtent(viewportExtent, scale, false, 128); BufferedImage mosaickedImage = createImage(viewport.getScreenArea()); Graphics2D g2d = mosaickedImage.createGraphics(); long t = System.currentTimeMillis(); renderTiles(tiles, g2d, viewportExtent, viewport.getWorldToScreen()); this.coverage = gridFactory.create("GridCoverage", mosaickedImage, viewportExtent); graphics.drawImage(mosaickedImage, 0, 0, null); LOGGER.fine("Drawing done"); }