package org.jzy3d.plot3d.primitives.axes.layout;

import org.jzy3d.colors.Color;
import org.jzy3d.plot3d.primitives.axes.layout.providers.ITickProvider;
import org.jzy3d.plot3d.primitives.axes.layout.providers.SmartTickProvider;
import org.jzy3d.plot3d.primitives.axes.layout.renderers.DefaultDecimalTickRenderer;
import org.jzy3d.plot3d.primitives.axes.layout.renderers.ITickRenderer;


public class AxeBoxLayout implements IAxeLayout{
	/** Default AxeBox layout */
	public AxeBoxLayout(){
		setXAxeLabel("X");
		setYAxeLabel("Y");
		setZAxeLabel("Z");

		setXAxeLabelDisplayed(true);
		setYAxeLabelDisplayed(true);
		setZAxeLabelDisplayed(true);

		setXTickProvider(new SmartTickProvider(5));
		setYTickProvider(new SmartTickProvider(5));
		setZTickProvider(new SmartTickProvider(6));
		
		setXTickRenderer(new DefaultDecimalTickRenderer(4));
		setYTickRenderer(new DefaultDecimalTickRenderer(4));
		setZTickRenderer(new DefaultDecimalTickRenderer(6));
		
		setFaceDisplayed(false);
		setXTickLabelDisplayed(true);
		setYTickLabelDisplayed(true);
		setZTickLabelDisplayed(true);
		
		setMainColor(Color.BLACK);
	}
	
	@Override
	public void setMainColor(Color color) {
		mainColor = color;
		setXTickColor(color);
		setYTickColor(color);
		setZTickColor(color);
		setGridColor(color);
        setQuadColor(color.negative());
	}
	
	@Override
	public Color getMainColor() {
		return mainColor;
	}
	
	@Override
	public double[] getXTicks(double min, double max) {
		lastXmin = min;
		lastXmax = max;
		xTicks = xTickProvider.generateTicks(min, max);
		return xTicks;
	}

	@Override
	public double[] getYTicks(double min, double max) {
		lastYmin = min;
		lastYmax = max;
		yTicks = yTickProvider.generateTicks(min, max);
		return yTicks;
	}

	@Override
	public double[] getZTicks(double min, double max) {
		lastZmin = min;
		lastZmax = max;
		zTicks = zTickProvider.generateTicks(min, max);
		return zTicks;
	}
	
	@Override
    public String getXAxeLabel() {
		return xAxeLabel;
	}

	@Override
    public void setXAxeLabel(String axeLabel) {
		xAxeLabel = axeLabel;
	}

	@Override
    public String getYAxeLabel() {
		return yAxeLabel;
	}

	@Override
    public void setYAxeLabel(String axeLabel) {
		yAxeLabel = axeLabel;
	}

	@Override
    public String getZAxeLabel() {
		return zAxeLabel;
	}

	@Override
    public void setZAxeLabel(String axeLabel) {
		zAxeLabel = axeLabel;
	}

	@Override
    public double[] getXTicks() {
		return xTicks;
	}

	@Override
    public double[] getYTicks() {
		return yTicks;
	}

	@Override
    public double[] getZTicks() {
		return zTicks;
	}

	@Override
    public ITickProvider getXTickProvider() {
		return xTickProvider;
	}

	@Override
    public void setXTickProvider(ITickProvider tickProvider) {
		xTickProvider = tickProvider;
		
		if(lastXmin!=Float.NaN) // update ticks if we can
			getXTicks(lastXmin, lastXmax);
	}

	@Override
    public ITickProvider getYTickProvider() {
		return yTickProvider;
	}

	@Override
    public void setYTickProvider(ITickProvider tickProvider) {
		yTickProvider = tickProvider;
		
		if(lastYmin!=Float.NaN) // update ticks if we can
			getYTicks(lastYmin, lastYmax);
	}

	@Override
    public ITickProvider getZTickProvider() {
		return zTickProvider;
	}

	@Override
    public void setZTickProvider(ITickProvider tickProvider) {
		zTickProvider = tickProvider;
		
		if(lastZmin!=Float.NaN)  // update ticks if we can
			getZTicks(lastZmin, lastZmax);
	}

	@Override
    public ITickRenderer getXTickRenderer() {
		return xTickRenderer;
	}

	@Override
    public void setXTickRenderer(ITickRenderer tickRenderer) {
		xTickRenderer = tickRenderer;
	}

	@Override
    public ITickRenderer getYTickRenderer() {
		return yTickRenderer;
	}

	@Override
    public void setYTickRenderer(ITickRenderer tickRenderer) {
		yTickRenderer = tickRenderer;
	}

	@Override
    public ITickRenderer getZTickRenderer() {
		return zTickRenderer;
	}

	@Override
    public void setZTickRenderer(ITickRenderer tickRenderer) {
		zTickRenderer = tickRenderer;
	}

	@Override
    public Color getXTickColor() {
		return xTickColor;
	}

	@Override
    public void setXTickColor(Color tickColor) {
		xTickColor = tickColor;
	}

	@Override
    public Color getYTickColor() {
		return yTickColor;
	}

	@Override
    public void setYTickColor(Color tickColor) {
		yTickColor = tickColor;
	}

	@Override
    public Color getZTickColor() {
		return zTickColor;
	}

	@Override
    public void setZTickColor(Color tickColor) {
		zTickColor = tickColor;
	}
	
	@Override
    public boolean isFaceDisplayed() {
		return faceDisplayed;
	}

	@Override
    public void setFaceDisplayed(boolean faceDisplayed) {
		this.faceDisplayed = faceDisplayed;
	}
	
	@Override
    public Color getQuadColor() {
		return quadColor;
	}

	@Override
    public void setQuadColor(Color quadColor) {
		this.quadColor = quadColor;
	}

	@Override
    public Color getGridColor() {
		return gridColor;
	}

	@Override
    public void setGridColor(Color gridColor) {
		this.gridColor = gridColor;
	}

	@Override
    public boolean isXAxeLabelDisplayed() {
		return xAxeLabelDisplayed;
	}

	@Override
    public void setXAxeLabelDisplayed(boolean axeLabelDisplayed) {
		xAxeLabelDisplayed = axeLabelDisplayed;
	}

	@Override
    public boolean isYAxeLabelDisplayed() {
		return yAxeLabelDisplayed;
	}

	@Override
    public void setYAxeLabelDisplayed(boolean axeLabelDisplayed) {
		yAxeLabelDisplayed = axeLabelDisplayed;
	}

	@Override
    public boolean isZAxeLabelDisplayed() {
		return zAxeLabelDisplayed;
	}

	@Override
    public void setZAxeLabelDisplayed(boolean axeLabelDisplayed) {
		zAxeLabelDisplayed = axeLabelDisplayed;
	}
	
	@Override
    public boolean isXTickLabelDisplayed() {
		return xTickLabelDisplayed;
	}

	@Override
    public void setXTickLabelDisplayed(boolean tickLabelDisplayed) {
		xTickLabelDisplayed = tickLabelDisplayed;
	}

	@Override
    public boolean isYTickLabelDisplayed() {
		return yTickLabelDisplayed;
	}

	@Override
    public void setYTickLabelDisplayed(boolean tickLabelDisplayed) {
		yTickLabelDisplayed = tickLabelDisplayed;
	}

	@Override
    public boolean isZTickLabelDisplayed() {
		return zTickLabelDisplayed;
	}

	@Override
    public void setZTickLabelDisplayed(boolean tickLabelDisplayed) {
		zTickLabelDisplayed = tickLabelDisplayed;
	}
	
	@Override
    public boolean isTickLineDisplayed() {
        return tickLineDisplayed;
    }

    @Override
    public void setTickLineDisplayed(boolean tickLineDisplayed) {
        this.tickLineDisplayed = tickLineDisplayed;
    }





    /**********************************************************/
	
	protected boolean tickLineDisplayed = true;
	
	protected String xAxeLabel;
	protected String yAxeLabel;
	protected String zAxeLabel;
	protected boolean xAxeLabelDisplayed;
	protected boolean yAxeLabelDisplayed;
	protected boolean zAxeLabelDisplayed;

	protected double  xTicks[];
	protected double  yTicks[];
	protected double  zTicks[];
	
	protected ITickProvider xTickProvider;
	protected ITickProvider yTickProvider;
	protected ITickProvider zTickProvider;

	protected ITickRenderer xTickRenderer;
	protected ITickRenderer yTickRenderer;
	protected ITickRenderer zTickRenderer;
	
	protected Color   xTickColor;
	protected Color   yTickColor;
	protected Color   zTickColor;

	protected boolean xTickLabelDisplayed;
	protected boolean yTickLabelDisplayed;
	protected boolean zTickLabelDisplayed;

	protected boolean faceDisplayed;

	protected Color   quadColor;
	protected Color   gridColor;
	
	protected double lastXmin = Float.NaN;
	protected double lastXmax = Float.NaN;
	protected double lastYmin = Float.NaN;
	protected double lastYmax = Float.NaN;
	protected double lastZmin = Float.NaN;
	protected double lastZmax = Float.NaN;
	
	protected Color mainColor;
}

 

Ads help maintain this website.