private void translate() { Matrix matrix = viewPort.getTransformationMatrix(RenderSpace.WORLD, RenderSpace.SCREEN); for (Transformable transformable : display.getWorldTransformables()) { transformable.setTranslation(matrix.getDx(), matrix.getDy()); } }
public void onViewPortChanged(ViewPortChangedEvent event) { Matrix matrix = viewPort.getTransformationMatrix(RenderSpace.WORLD, RenderSpace.SCREEN); display.scheduleTransform(matrix.getXx(), matrix.getYy(), matrix.getDx(), matrix.getDy(), getAnimationMillis()); }
public void onViewPortScaled(ViewPortScaledEvent event) { Matrix matrix = viewPort.getTransformationMatrix(RenderSpace.WORLD, RenderSpace.SCREEN); // We must translate as well because zooming and keeping the same center point // also involves a translation (scale origin != center point) !!! display.scheduleTransform(matrix.getXx(), matrix.getYy(), matrix.getDx(), matrix.getDy(), getAnimationMillis()); }
@Override public CanvasContainer addWorldCanvas() { CanvasContainer container = display.getNewWorldCanvas(); // set transform parameters once, after that all is handled by WorldContainerRenderer Matrix matrix = viewPort.getTransformationMatrix(RenderSpace.WORLD, RenderSpace.SCREEN); container.setScale(matrix.getXx(), matrix.getYy()); container.setTranslation(matrix.getDx(), matrix.getDy()); return container; }
@Override public VectorContainer addWorldContainer() { VectorContainer container = display.getNewWorldContainer(); // set transform parameters once, after that all is handled by WorldContainerRenderer Matrix matrix = viewPort.getTransformationMatrix(RenderSpace.WORLD, RenderSpace.SCREEN); container.setScale(matrix.getXx(), matrix.getYy()); container.setTranslation(matrix.getDx(), matrix.getDy()); return container; }
/** Clear everything and completely redraw the edited geometry. */ public void redraw() { previousDx = mapPresenter.getViewPort().getTransformationMatrix(RenderSpace.WORLD, RenderSpace.SCREEN).getDx(); previousDy = mapPresenter.getViewPort().getTransformationMatrix(RenderSpace.WORLD, RenderSpace.SCREEN).getDy(); shapes.clear(); if (container != null) { container.setTranslation(0, 0); container.clear(); try { tentativeMoveLine = new Path(-5, -5); tentativeMoveLine.lineTo(-5, -5); FeatureStyleInfo style = styleProvider.getEdgeTentativeMoveStyle(); gfxUtil.applyStroke(tentativeMoveLine, style.getStrokeColor(), style.getStrokeOpacity(), style.getStrokeWidth(), style.getDashArray()); container.add(tentativeMoveLine); draw(); } catch (GeometryIndexNotFoundException e) { // Happens when creating new geometries...can't render points that don't exist yet. } } }