public void normalize() { float m = mag(); if (m != 0 && m != 1) { div(m); } }
@Override public void mouseDragged(MouseEvent e) { if (!previewController.sendMouseEvent(buildPreviewMouseEvent(e, PreviewMouseEvent.Type.DRAGGED))) { setMoving(true); Vector trans = target.getTranslate(); trans.set(e.getX(), e.getY()); trans.sub(ref); trans.mult(isRetina ? 2f : 1f); trans.div(target.getScaling()); // ensure const. moving speed whatever the zoom is trans.add(lastMove); refreshLoop.refreshSketch(); } }
@Override public void mouseDragged(MouseEvent e) { if (!previewController.sendMouseEvent(buildPreviewMouseEvent(e, PreviewMouseEvent.Type.DRAGGED))) { setMoving(true); Vector trans = target.getTranslate(); trans.set(e.getX(), e.getY()); trans.sub(ref); trans.mult(isRetina ? 2f : 1f); trans.div(target.getScaling()); // ensure const. moving speed whatever the zoom is trans.add(lastMove); refreshLoop.refreshSketch(); } }
private void fit(CanvasSize cs) { Vector box = new Vector(cs.getWidth(), cs.getHeight()); Vector semiBox = Vector.div(box, 2F); Vector topLeft = new Vector(cs.getX(), cs.getY()); Vector center = new Vector(width / 2F, height / 2F); Vector scaledCenter = Vector.add(topLeft, semiBox); trans.set(center); trans.sub(scaledCenter); } }
private Vector screenPositionToModelPosition(Vector screenPos) { Vector center = new Vector(getWidth() / 2f, getHeight() / 2f); Vector scaledCenter = Vector.mult(center, target.getScaling()); Vector scaledTrans = Vector.sub(center, scaledCenter); Vector modelPos = new Vector(screenPos.x, screenPos.y); modelPos.sub(scaledTrans); modelPos.div(target.getScaling()); modelPos.sub(target.getTranslate()); return modelPos; }
private Vector screenPositionToModelPosition(Vector screenPos) { Vector center = new Vector(getWidth() / 2f, getHeight() / 2f); Vector scaledCenter = Vector.mult(center, target.getScaling()); Vector scaledTrans = Vector.sub(center, scaledCenter); Vector modelPos = new Vector(screenPos.x, screenPos.y); modelPos.sub(scaledTrans); modelPos.div(target.getScaling()); modelPos.sub(target.getTranslate()); return modelPos; }