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

package com.hypixel.hytale.builtin.hytalegenerator.density.nodes;

import com.hypixel.hytale.builtin.hytalegenerator.VectorUtil;
import com.hypixel.hytale.math.vector.Vector3d;
import javax.annotation.Nonnull;
import com.hypixel.hytale.builtin.hytalegenerator.vectorproviders.VectorProvider;
import com.hypixel.hytale.builtin.hytalegenerator.density.Density;

public class AngleDensity extends Density
{
    private static final double HALF_PI = 1.5707963267948966;
    @Nonnull
    private VectorProvider vectorProvider;
    @Nonnull
    private final Vector3d vector;
    private final boolean toAxis;
    
    public AngleDensity(@Nonnull final VectorProvider vectorProvider, @Nonnull final Vector3d vector, final boolean toAxis) {
        this.vector = vector.clone();
        this.vectorProvider = vectorProvider;
        this.toAxis = toAxis;
    }
    
    @Override
    public double process(@Nonnull final Context context) {
        final Vector3d otherVector = this.vectorProvider.process(new VectorProvider.Context(context));
        double slopeAngle = VectorUtil.angle(this.vector, otherVector);
        if (this.toAxis && slopeAngle > 1.5707963267948966) {
            slopeAngle = 3.141592653589793 - slopeAngle;
        }
        slopeAngle /= 3.141592653589793;
        slopeAngle *= 180.0;
        return slopeAngle;
    }
    
    @Override
    public void setInputs(@Nonnull final Density[] inputs) {
    }
}
