Package org.joshy.sketch.canvas

Source Code of org.joshy.sketch.canvas.DocumentCanvas

package org.joshy.sketch.canvas;

import org.joshy.gfx.node.Bounds;
import org.joshy.gfx.node.control.Control;
import org.joshy.gfx.node.control.Focusable;

import java.awt.geom.Point2D;

/**
* Created by IntelliJ IDEA.
* User: joshmarinacci
* Date: Jul 8, 2010
* Time: 5:10:47 PM
* To change this template use File | Settings | File Templates.
*/
public abstract class DocumentCanvas extends Control implements Focusable {
    protected double scale = 1;
    protected double panX;
    protected double panY;

    public void setPanX(double panX) {
        this.panX = panX;
    }

    public void setPanY(double panY) {
        this.panY = panY;
    }

    public double getPanX() {
        return panX;
    }

    public double getPanY() {
        return panY;
    }

    public double getScale() {
        return scale;
    }

    public void setScale(double scale) {
        this.scale = scale;
        setLayoutDirty();
        setDrawingDirty();
    }

    @Override
    public void setLayoutDirty() {
        super.setLayoutDirty();
    }

    public void redraw() {
        setDrawingDirty();
    }


    public Point2D.Double transformToCanvas(double x, double y) {
        return new Point2D.Double(
                (x-panX)/scale,
                (y-panY)/scale);
    }

    public Point2D.Double transformToCanvas(Point2D point) {
        return new Point2D.Double(
                (point.getX()-panX)/scale,
                (point.getY()-panY)/scale);
    }

    public Point2D.Double transformToDrawing(double x, double y) {
        return new Point2D.Double(
                x*scale+panX,
                y*scale+panY);
    }

    public Bounds transformToDrawing(Bounds bounds) {
        return new Bounds(
                bounds.getX()*scale+panX,
                bounds.getY()*scale+panY,
                bounds.getWidth()*scale,
                bounds.getHeight()*scale);
    }

    public Point2D.Double transformToDrawing(Point2D point) {
        return new Point2D.Double(
                point.getX()*scale+panX,
                point.getY()*scale+panY
        );
    }
}
TOP

Related Classes of org.joshy.sketch.canvas.DocumentCanvas

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.