private void updateVisibleBounds() { final Viewport viewport = getViewport(); Transform transform = viewport.getTransform(); if (transform == null) { viewport.setTransform(transform = new Transform()); } final double x = (PADDING - transform.getTranslateX()) / transform.getScaleX(); final double y = (PADDING - transform.getTranslateY()) / transform.getScaleY(); bounds.setX(x); bounds.setY(y); bounds.setHeight(Math.max(0, (viewport.getHeight() - PADDING * 2) / transform.getScaleX())); bounds.setWidth(Math.max(0, (viewport.getWidth() - PADDING * 2) / transform.getScaleY())); }
private void adjustViewportTransform(final Viewport vp, final Point2D delta) { final Transform transform = vp.getTransform(); final Transform t = transform.copy().getInverse(); final Point2D translation = new Point2D(t.getTranslateX(), t.getTranslateY()).mul(-1.0); final double scaleX = transform.getScaleX(); final double scaleY = transform.getScaleY(); transform.reset(); final Point2D frameLocation = translation.add(delta); transform.scale(scaleX, scaleY).translate(frameLocation.getX(), frameLocation.getY()); } }
private Point2D getViewportTranslation() { final Viewport vp = gridWidget.getViewport(); final Transform transform = vp.getTransform(); final Transform t = transform.copy().getInverse(); final Point2D p = new Point2D(t.getTranslateX(), t.getTranslateY()); return p; }
void updateGridLienzoTransform(final Double currentXPosition, final Double currentYPosition) { final Transform oldTransform = getViewport().getTransform(); final Double dx = currentXPosition - (oldTransform.getTranslateX() / oldTransform.getScaleX()); final Double dy = currentYPosition - (oldTransform.getTranslateY() / oldTransform.getScaleY()); final Transform newTransform = oldTransform.copy().translate(dx, dy); getViewport().setTransform(newTransform); getDefaultGridLayer().batch(); }
@Override public void onFrame(final IAnimation animation, final IAnimationHandle handle) { final double pct = assertPct(animation.getPercent()); final Viewport vp = gridWidget.getViewport(); final Transform transform = vp.getTransform(); final double scaleX = transform.getScaleX(); final double scaleY = transform.getScaleY(); transform.reset(); final Point2D frameLocation = startTranslation.add(delta.mul(pct)); transform.scale(scaleX, scaleY).translate(frameLocation.getX(), frameLocation.getY()); gridWidget.getLayer().batch(); }
protected void onMouseDown(final NodeMouseDownEvent event) { m_start = new Point2D(event.getX(), event.getY()); m_dragging = true; m_dragLayer = getViewport().getDragLayer(); Transform transform = m_dragLayer.isTransformable() ? getViewport().getTransform() : null; if (transform == null) { transform = new Transform(); } m_rectangle.setStrokeWidth(1 / transform.getScaleX()); m_inverseTransform = transform.getInverse(); m_inverseTransform.transform(m_start, m_start); m_addedRectangle = false; }
protected void onMouseDown(final NodeMouseDownEvent event) { m_last = new Point2D(event.getX(), event.getY()); m_dragging = true; Transform transform = getTransform(); if (transform == null) { setTransform(transform = new Transform()); } m_inverseTransform = transform.getInverse(); m_inverseTransform.transform(m_last, m_last); }
protected void onMouseMove(final NodeMouseMoveEvent event) { final Point2D curr = new Point2D(event.getX(), event.getY()); m_inverseTransform.transform(curr, curr); setTransform(getTransform().copy().translate(curr.getX() - m_last.getX(), curr.getY() - m_last.getY())); m_last = curr; if (isBatchDraw()) { getViewport().getScene().batch(); } else { getViewport().getScene().draw(); } }
public static final IPrimitive<?> setScaleToFit(final IPrimitive<?> prim, final double wide, final double high) { final Point2D scale = prim.getScale(); final BoundingBox bbox = prim.getBoundingBox(); if (null != scale) { final double sx = scale.getX(); final double sy = scale.getY(); if ((sx != 1) || (sy != 1)) { return setScaleToFit(prim, wide, high, new BoundingPoints(bbox).transform(new Transform().scale(sx, sy)).getBoundingBox()); } } return setScaleToFit(prim, wide, high, bbox); }
/** * Starts a drag operation for the specified node. * * @param event the first drag event * @param prim the node that is being dragged */ public DragContext(final INodeXYEvent event, final IPrimitive<?> prim) { this(event, prim, new Transform()); }
@Override public void onFrame(final IAnimation animation, final IAnimationHandle handle) { final double pct = assertPct(animation.getPercent()); final Viewport vp = gridWidget.getViewport(); final Transform transform = vp.getTransform(); transform.reset(); final Point2D frameLocation = startTranslation.add(delta.mul(pct)); final double frameScaleX = startScaleX + (endScaleX - startScaleX) * pct; final double frameScaleY = startScaleY + (endScaleY - startScaleY) * pct; transform.scale(frameScaleX, frameScaleY).translate(frameLocation.getX(), frameLocation.getY()); hideGridWidgets(pct); hideGridWidgetConnectors(pct); gridWidget.getLayer().batch(); }
int relativeX(final int x) { final Double relativeX = ((x) - getViewportTransform().getTranslateX()) / getViewportTransform().getScaleX(); return relativeX.intValue(); }
int relativeY(final int y) { final Double relativeY = ((y) - getViewportTransform().getTranslateY()) / getViewportTransform().getScaleY(); return relativeY.intValue(); }
@Test public void testConvertDOMToGridCoordinateWithParentWithTransformMoveAndRotate() throws Exception { final Viewport viewport = mock(Viewport.class); final Transform transform = new Transform(); transform.translate(10D, 10D); transform.rotate(Math.PI); point = new Point2D(15D, 20D); setupGridWidget(); when(view.getViewport()).thenReturn(viewport); when(viewport.getTransform()).thenReturn(transform); convertedPoint = CoordinateUtilities.convertDOMToGridCoordinate(view, point); Assertions.assertThat(convertedPoint).isNotNull(); Assertions.assertThat(Double.valueOf(convertedPoint.getX()).intValue()).isEqualTo(-5); Assertions.assertThat(Double.valueOf(convertedPoint.getY()).intValue()).isEqualTo(-10); }
@Test public void testConvertDOMToGridCoordinateWithParentWithTransformMove() throws Exception { final Viewport viewport = mock(Viewport.class); final Transform transform = new Transform(); transform.translate(10D, 10D); point = new Point2D(15D, 20D); setupGridWidget(); when(view.getViewport()).thenReturn(viewport); when(viewport.getTransform()).thenReturn(transform); convertedPoint = CoordinateUtilities.convertDOMToGridCoordinate(view, point); Assertions.assertThat(convertedPoint).isNotNull(); Assertions.assertThat(convertedPoint.getX()).isEqualTo(5D); Assertions.assertThat(convertedPoint.getY()).isEqualTo(10D); }
protected Point2D getTranslate() { return new Point2D( layer.getAbsoluteTransform().getTranslateX(), layer.getAbsoluteTransform().getTranslateY() ); }
public Point2D getUntransformedPoint(final Point2D point2D) { final Transform transform = getViewportTransform(); final Point2D untransformed = new Point2D(); if (transform != null) { transform.getInverse().transform(point2D, untransformed); return untransformed; } return point2D; }