BorderDistanceFunction class
Пакет: com.hypixel.hytale.procedurallib.logic.cell
Файл: com/hypixel/hytale/procedurallib/logic/cell/BorderDistanceFunction.java
implements: CellDistanceFunction
Поля (5)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
CellDistanceFunction |
distanceFunction |
|
int |
var10 |
|
int |
var11 |
|
|
var6 |
|
|
var7 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
UnsupportedOperationExceptionthrow new UnsupportedOperationException() |
|
|
for for(int var12 = var7 - var11; var12 <= var7 + var11; var12++) |
|
|
for for(int var13 = var6 - var10; var13 <= var6 + var10; var13++) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.procedurallib.logic.cell;
class="kw">import com.hypixel.hytale.procedurallib.condition.IDoubleCondition;
class="kw">import com.hypixel.hytale.procedurallib.condition.IIntCondition;
class="kw">import com.hypixel.hytale.procedurallib.logic.ResultBuffer;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.evaluator.DensityPointEvaluator;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.evaluator.JitterPointEvaluator;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.evaluator.NormalPointEvaluator;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.evaluator.PointEvaluator;
class="kw">import com.hypixel.hytale.procedurallib.logic.point.PointConsumer;
class="kw">import javax.annotation.Nonnull;
class="kw">public class BorderDistanceFunction class="kw">implements CellDistanceFunction {
class="kw">protected class="kw">final CellDistanceFunction distanceFunction;
@Nonnull
class="kw">protected class="kw">final PointEvaluator cellEvaluator;
@Nonnull
class="kw">protected class="kw">final PointEvaluator borderEvaluator;
@Nonnull
class="kw">protected class="kw">final IIntCondition density;
class="kw">public BorderDistanceFunction(CellDistanceFunction var1, @Nonnull PointEvaluator var2, IDoubleCondition var3) {
this.distanceFunction = var1;
this.borderEvaluator = var2;
this.cellEvaluator = new JitterPointEvaluator(NormalPointEvaluator.EUCLIDEAN, var2.getJitter());
this.density = DensityPointEvaluator.getDensityCondition(var3);
}
@Override
class="kw">public double scale(double var1) {
class="kw">return this.distanceFunction.scale(var1);
}
@Override
class="kw">public double invScale(double var1) {
class="kw">return this.distanceFunction.invScale(var1);
}
@Override
class="kw">public int getCellX(double var1, double var3) {
class="kw">return this.distanceFunction.getCellX(var1, var3);
}
@Override
class="kw">public int getCellY(double var1, double var3) {
class="kw">return this.distanceFunction.getCellY(var1, var3);
}
@Override
class="kw">public void nearest2D(int var1, double var2, double var4, int var6, int var7, @Nonnull ResultBuffer.ResultBuffer2d var8, PointEvaluator var9) {
this.transition2D(var1, var2, var4, var6, var7, var8, var9);
}
@Override
class="kw">public void transition2D(int var1, double var2, double var4, int var6, int var7, @Nonnull ResultBuffer.ResultBuffer2d var8, PointEvaluator var9) {
this.distanceFunction.nearest2D(var1, var2, var4, var6, var7, var8, this.cellEvaluator);
if (!this.density.eval(var8.hash)) {
var8.distance = 0.0;
} else {
var6 = var8.ix;
var7 = var8.iy;
var8.ix2 = var6;
var8.iy2 = var7;
var8.x2 = var8.x;
var8.y2 = var8.y;
var8.distance = Double.POSITIVE_INFINITY;
var8.distance2 = Double.POSITIVE_INFINITY;
int var10 = this.borderEvaluator.getJitter().getMaxX() > 0.5 ? 2 : 1;
int var11 = this.borderEvaluator.getJitter().getMaxY() > 0.5 ? 2 : 1;
for (int var12 = var7 - var11; var12 <= var7 + var11; var12++) {
for (int var13 = var6 - var10; var13 <= var6 + var10; var13++) {
this.distanceFunction.evalPoint2(var1, var2, var4, var13, var12, var8, this.borderEvaluator);
}
}
}
}
@Override
class="kw">public void nearest3D(
int var1, double var2, double var4, double var6, int var8, int var9, int var10, ResultBuffer.ResultBuffer3d var11, PointEvaluator var12
) {
throw new UnsupportedOperationException();
}
@Override
class="kw">public void transition3D(
int var1, double var2, double var4, double var6, int var8, int var9, int var10, ResultBuffer.ResultBuffer3d var11, PointEvaluator var12
) {
throw new UnsupportedOperationException();
}
@Override
class="kw">public void evalPoint(int var1, double var2, double var4, int var6, int var7, ResultBuffer.ResultBuffer2d var8, PointEvaluator var9) {
throw new UnsupportedOperationException();
}
@Override
class="kw">public void evalPoint2(int var1, double var2, double var4, int var6, int var7, ResultBuffer.ResultBuffer2d var8, PointEvaluator var9) {
throw new UnsupportedOperationException();
}
@Override
class="kw">public void evalPoint(
int var1, double var2, double var4, double var6, int var8, int var9, int var10, ResultBuffer.ResultBuffer3d var11, PointEvaluator var12
) {
throw new UnsupportedOperationException();
}
@Override
class="kw">public void evalPoint2(
int var1, double var2, double var4, double var6, int var8, int var9, int var10, ResultBuffer.ResultBuffer3d var11, PointEvaluator var12
) {
throw new UnsupportedOperationException();
}
@Override
class="kw">public <T> void collect(
int var1, int var2, int var3, int var4, int var5, int var6, ResultBuffer.Bounds2d var7, T var8, PointConsumer<T> var9, PointEvaluator var10
) {
this.distanceFunction.collect(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10);
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "BorderDistanceFunction{distanceFunction="
+ this.distanceFunction
+ ", cellEvaluator="
+ this.cellEvaluator
+ ", borderEvaluator="
+ this.borderEvaluator
+ ", density="
+ this.density
+ "}";
}
}