public VectorDataFigureEditor(ProductSceneView productSceneView) { super(productSceneView.getLayerCanvas(), productSceneView.getLayerCanvas().getViewport(), productSceneView.getUndoContext(), ProductSceneView.NullFigureCollection.INSTANCE, null); this.productSceneView = productSceneView; }
private void clearPsvOverlayMap() { for (Map.Entry<ProductSceneView, ImageCursorOverlay> entry : psvOverlayMap.entrySet()) { final ProductSceneView view = entry.getKey(); view.getLayerCanvas().removeOverlay(entry.getValue()); } psvOverlayMap.clear(); }
private void removeOverlay() { overlay.view.getLayerCanvas().removeOverlay(overlay); overlay = null; }
void repaint() { view.getLayerCanvas().repaint(); }
private void clearPsvOverlayMap() { for (Map.Entry<ProductSceneView, ImageCursorOverlay> entry : psvOverlayMap.entrySet()) { final ProductSceneView view = entry.getKey(); removePPL(view); view.getLayerCanvas().removeOverlay(entry.getValue()); } psvOverlayMap.clear(); }
@Override public void resultChanged(LookupEvent ev) { ProductSceneView newView = SnapApp.getDefault().getSelectedProductSceneView(); if (lastView != newView) { final ProductSceneView oldView = lastView; if (oldView != null) { if (oldView.getLayerCanvas() != null) { oldView.getLayerCanvas().getModel().removeChangeListener(layerCanvasModelChangeHandler); } } lastView = newView; if (lastView != null) { syncImageViews(lastView); if (lastView.getLayerCanvas() != null) { lastView.getLayerCanvas().getModel().addChangeListener(layerCanvasModelChangeHandler); } } } }
private void drawPixelBorder(final Graphics g, final int x, final int y, final int l) { if (g instanceof Graphics2D) { Graphics2D g2d = (Graphics2D) g; AffineTransform i2m = getBaseImageLayer().getImageToModelTransform(l); AffineTransform m2v = getLayerCanvas().getViewport().getModelToViewTransform(); Rectangle imageRect = new Rectangle(x, y, 1, 1); Shape modelRect = i2m.createTransformedShape(imageRect); Shape transformedShape = m2v.createTransformedShape(modelRect); g2d.draw(transformedShape); } }
private void createOverlay(ProductSceneView view) { overlay = new RangeFinderOverlay(view); view.getLayerCanvas().addOverlay(overlay); }
public void updateCursorOverlays(GeoPos geoPos) { if (!isEnabled()) { return; } for (Map.Entry<ProductSceneView, ImageCursorOverlay> entry : psvOverlayMap.entrySet()) { final ProductSceneView view = entry.getKey(); ImageCursorOverlay overlay = entry.getValue(); if (overlay == null) { overlay = new ImageCursorOverlay(view, geoPos); psvOverlayMap.put(view, overlay); view.getLayerCanvas().addOverlay(overlay); } else { overlay.setGeoPosition(geoPos); view.getLayerCanvas().repaint(); } } }
private boolean isPixelBorderDisplayEnabled() { return pixelBorderShown && getLayerCanvas().getViewport().getZoomFactor() >= pixelBorderViewScale; }
static RenderedImage createImage(ProductSceneView view, boolean fullScene, Dimension dimension, boolean alphaChannel, boolean geoReferenced) { final int imageType = alphaChannel ? BufferedImage.TYPE_4BYTE_ABGR : BufferedImage.TYPE_3BYTE_BGR; final BufferedImage bufferedImage = new BufferedImage(dimension.width, dimension.height, imageType); final BufferedImageRendering imageRendering = createRendering(view, fullScene, geoReferenced, bufferedImage); if (!alphaChannel) { final Graphics2D graphics = imageRendering.getGraphics(); graphics.setColor(view.getLayerCanvas().getBackground()); graphics.fillRect(0, 0, dimension.width, dimension.height); } view.getRootLayer().render(imageRendering); return bufferedImage; }
public void zoomAll() { final ProductSceneView view = getCurrentView(); if (view != null) { view.getLayerCanvas().zoomAll(); maybeSynchronizeCompatibleProductViews(); } }
@Override public void actionPerformed(ActionEvent e) { final ProductSceneView sceneView = SnapApp.getDefault().getSelectedProductSceneView(); final Layer selectedLayer = sceneView.getSelectedLayer(); Rectangle2D modelBounds = selectedLayer.getModelBounds(); if (modelBounds != null) { final Viewport viewport = sceneView.getLayerCanvas().getViewport(); final AffineTransform m2vTransform = viewport.getModelToViewTransform(); final AffineTransform v2mTransform = viewport.getViewToModelTransform(); final Rectangle2D viewBounds = m2vTransform.createTransformedShape(modelBounds).getBounds2D(); viewBounds.setFrameFromDiagonal(viewBounds.getMinX() - 10, viewBounds.getMinY() - 10, viewBounds.getMaxX() + 10, viewBounds.getMaxY() + 10); final Shape transformedModelBounds = v2mTransform.createTransformedShape(viewBounds); sceneView.zoom(transformedModelBounds.getBounds2D()); } }
public void zoom(final double zoomFactor) { final ProductSceneView view = getCurrentView(); if (view != null && zoomFactor > 0) { view.getLayerCanvas().getViewport().setZoomFactor(zoomFactor); maybeSynchronizeCompatibleProductViews(); } }
/** * @param zf a value between min and max zoom factor of the AdjustableView * @return a value between MIN_SLIDER_VALUE and MAX_SLIDER_VALUE */ private int zoomFactorToSliderValue(final double zf) { AdjustableView adjustableView = getCurrentView().getLayerCanvas(); double f1 = scaleExp2Min(adjustableView); double f2 = scaleExp2Max(adjustableView); double s1 = zoomSlider.getMinimum(); double s2 = zoomSlider.getMaximum(); double v2 = log2(zf); double v1 = max(0.0, min(1.0, (v2 - f1) / (f2 - f1))); return (int) ((s1 + v1 * (s2 - s1)) + 0.5); }
public void setModelOffset(final double modelOffsetX, final double modelOffsetY) { final ProductSceneView view = getCurrentView(); if (view != null) { view.getLayerCanvas().getViewport().setOffset(modelOffsetX, modelOffsetY); maybeSynchronizeCompatibleProductViews(); } }
private void rotate(Double rotationAngle) { final ProductSceneView view = getCurrentView(); if (view != null) { view.getLayerCanvas().getViewport().setOrientation(rotationAngle * MathUtils.DTOR); maybeSynchronizeCompatibleProductViews(); } }
private void zoomToPixelResolution() { final ProductSceneView view = getCurrentView(); if (view != null) { final LayerCanvas layerCanvas = view.getLayerCanvas(); layerCanvas.getViewport().setZoomFactor(layerCanvas.getDefaultZoomFactor()); maybeSynchronizeCompatibleProductViews(); } }
/** * @param sv a value between MIN_SLIDER_VALUE and MAX_SLIDER_VALUE * @return a value between min and max zoom factor of the AdjustableView */ private double sliderValueToZoomFactor(final int sv) { AdjustableView adjustableView = getCurrentView().getLayerCanvas(); double f1 = scaleExp2Min(adjustableView); double f2 = scaleExp2Max(adjustableView); double s1 = zoomSlider.getMinimum(); double s2 = zoomSlider.getMaximum(); double v1 = (sv - s1) / (s2 - s1); double v2 = f1 + v1 * (f2 - f1); return exp2(v2); }
private AdjustableViewScrollPane createScrollPane() { AbstractButton zoomAllButton = ToolButtonFactory.createButton(UIUtils.loadImageIcon("icons/ZoomAll13.gif"), false); zoomAllButton.setFocusable(false); zoomAllButton.setFocusPainted(false); zoomAllButton.addActionListener(e -> getLayerCanvas().zoomAll()); AdjustableViewScrollPane scrollPane = new AdjustableViewScrollPane(layerCanvas); // todo - use sceneImage.getConfiguration() (nf, 18.09.2008) scrollPane.setBackground(DEFAULT_IMAGE_BACKGROUND_COLOR); scrollPane.setCornerComponent(zoomAllButton); return scrollPane; }