CircleIterator class
Пакет: com.hypixel.hytale.math.iterator
Файл: com/hypixel/hytale/math/iterator/CircleIterator.java
implements: Iterator<Vector3d>
Поля (2)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
Vector3dc |
origin |
|
float |
var1 |
Методы (1)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
|
this this(var1, var2, var4, 0.0F) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.math.iterator;
class="kw">import com.hypixel.hytale.math.util.TrigMathUtil;
class="kw">import java.util.Iterator;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3dc;
class="kw">public class CircleIterator class="kw">implements Iterator<Vector3d> {
class="kw">private class="kw">final Vector3dc origin;
class="kw">private class="kw">final int pointTotal;
class="kw">private class="kw">final double radius;
class="kw">private class="kw">final float angleOffset;
class="kw">private int pointIndex;
class="kw">public CircleIterator(Vector3dc var1, double var2, int var4) {
this(var1, var2, var4, 0.0F);
}
class="kw">public CircleIterator(Vector3dc var1, double var2, int var4, float var5) {
this.origin = var1;
this.pointTotal = var4;
this.angleOffset = var5;
this.pointIndex = 0;
this.radius = var2;
}
@Override
class="kw">public boolean hasNext() {
class="kw">return this.pointIndex < this.pointTotal;
}
@Nonnull
class="kw">public Vector3d next() {
this.pointIndex++;
float var1 = (float)this.pointIndex / this.pointTotal * (float) (Math.PI * 2) + this.angleOffset;
class="kw">return new Vector3d(TrigMathUtil.cos(var1) * this.radius + this.origin.x(), this.origin.y(), TrigMathUtil.sin(var1) * this.radius + this.origin.z());
}
}