package org.jzy3d.plot3d.transform.space;

import org.jzy3d.maths.Coord2d;
import org.jzy3d.maths.Coord3d;

/**
 * A helper to apply 3 {@link SpaceTransform} on each dimension of a {@link Coord3d}.
 * 
 * @author 
 *
 */
public class SpaceTransformer {
    protected SpaceTransform x;
    protected SpaceTransform y;
    protected SpaceTransform z;

    public SpaceTransformer(SpaceTransform x, SpaceTransform y, SpaceTransform z) {
        this.x = x != null ? x : new SpaceTransformNone();
        this.y = y != null ? y : new SpaceTransformNone();
        this.z = z != null ? z : new SpaceTransformNone();
    }

    public SpaceTransformer() {
        this.x = new SpaceTransformNone();
        this.y = new SpaceTransformNone();
        this.z = new SpaceTransformNone();
    }

    public SpaceTransform getX() {
        return x;
    }

    public void setX(SpaceTransform x) {
        this.x = x;
    }

    public SpaceTransform getY() {
        return y;
    }

    public void setY(SpaceTransform y) {
        this.y = y;
    }

    public SpaceTransform getZ() {
        return z;
    }

    public void setZ(SpaceTransform z) {
        this.z = z;
    }

    public Coord3d compute(Coord3d point) {
        return new Coord3d(getX().compute(point.x), getY().compute(point.y), getZ().compute(point.z));
    }

    public Coord2d compute(Coord2d point) {
        return new Coord2d(getX().compute(point.x), getY().compute(point.y));
    }
}

 

Ads help maintain this website.