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

package com.hypixel.hytale.math.iterator;

import javax.annotation.Nonnull;
import com.hypixel.hytale.math.util.TrigMathUtil;
import com.hypixel.hytale.math.vector.Vector3d;
import java.util.Iterator;

public class CircleIterator implements Iterator<Vector3d>
{
    private final Vector3d origin;
    private final int pointTotal;
    private final double radius;
    private final float angleOffset;
    private int pointIndex;
    
    public CircleIterator(final Vector3d origin, final double radius, final int pointTotal) {
        this(origin, radius, pointTotal, 0.0f);
    }
    
    public CircleIterator(final Vector3d origin, final double radius, final int pointTotal, final float angleOffset) {
        this.origin = origin;
        this.pointTotal = pointTotal;
        this.angleOffset = angleOffset;
        this.pointIndex = 0;
        this.radius = radius;
    }
    
    @Override
    public boolean hasNext() {
        return this.pointIndex < this.pointTotal;
    }
    
    @Nonnull
    @Override
    public Vector3d next() {
        ++this.pointIndex;
        final float angle = this.pointIndex / (float)this.pointTotal * 6.2831855f + this.angleOffset;
        return new Vector3d(TrigMathUtil.cos(angle) * this.radius + this.origin.getX(), this.origin.getY(), TrigMathUtil.sin(angle) * this.radius + this.origin.getZ());
    }
}
