// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.procedurallib.random;

import javax.annotation.Nonnull;

public class CoordinateOriginRotator extends CoordinateRotator
{
    private final double originX;
    private final double originY;
    private final double originZ;
    
    public CoordinateOriginRotator(final double pitch, final double yaw, final double originX, final double originY, final double originZ) {
        super(pitch, yaw);
        this.originX = originX;
        this.originY = originY;
        this.originZ = originZ;
    }
    
    @Override
    public double randomDoubleX(final int seed, double x, double y) {
        x -= this.originX;
        y -= this.originY;
        return this.originX + this.rotateX(x, y);
    }
    
    @Override
    public double randomDoubleY(final int seed, double x, double y) {
        x -= this.originX;
        y -= this.originY;
        return this.originY + this.rotateY(x, y);
    }
    
    @Override
    public double randomDoubleX(final int seed, double x, double y, double z) {
        x -= this.originX;
        y -= this.originY;
        z -= this.originZ;
        return this.originX + this.rotateX(x, y, z);
    }
    
    @Override
    public double randomDoubleY(final int seed, double x, double y, double z) {
        x -= this.originX;
        y -= this.originY;
        z -= this.originZ;
        return this.originY + this.rotateY(x, y, z);
    }
    
    @Override
    public double randomDoubleZ(final int seed, double x, double y, double z) {
        x -= this.originX;
        y -= this.originY;
        z -= this.originZ;
        return this.originZ + this.rotateZ(x, y, z);
    }
    
    @Nonnull
    @Override
    public String toString() {
        return "CoordinateOriginRotator{pitch=" + this.pitch + ", yaw=" + this.yaw + ", originX=" + this.originX + ", originY=" + this.originY + ", originZ=" + this.originZ;
    }
}
