PointSpatialIndex class
Пакет: com.hypixel.hytale.builtin.points.system
Файл: com/hypixel/hytale/builtin/points/system/PointSpatialIndex.java
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
|
int |
var2 |
Методы (6)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(PointEntry var4 : var1) |
|
|
for for(PointEntry var6 : var1) |
|
|
if if(this.dirty) |
public |
void |
markDirtyvoid markDirty() |
public |
void |
queryRadiusvoid queryRadius(@Nonnull Vector3d var1, double var2, @Nonnull List<PointEntry> var4) |
public |
void |
rebuildIfDirtyvoid rebuildIfDirty(@Nonnull Collection<PointEntry> var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.points.system;
class="kw">import com.hypixel.hytale.builtin.points.manager.PointEntry;
class="kw">import com.hypixel.hytale.component.spatial.KDTree;
class="kw">import com.hypixel.hytale.component.spatial.SpatialData;
class="kw">import java.util.Collection;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">public class PointSpatialIndex {
@Nonnull
class="kw">private class="kw">final KDTree<PointEntry> tree = new KDTree<>(PointEntry::isEnabled);
@Nonnull
class="kw">private class="kw">final SpatialData<PointEntry> data = new SpatialData<>();
class="kw">private class="kw">volatile boolean dirty;
class="kw">public PointSpatialIndex() {
}
class="kw">public void markDirty() {
this.dirty = true;
}
class="kw">public void rebuildIfDirty(@Nonnull Collection<PointEntry> var1) {
if (this.dirty) {
this.dirty = false;
this.data.clear();
int var2 = 0;
for (PointEntry var4 : var1) {
if (var4.isEnabled()) {
var2++;
}
}
this.data.addCapacity(var2);
for (PointEntry var6 : var1) {
if (var6.isEnabled()) {
this.data.append(var6.getPosition(), var6);
}
}
this.tree.rebuild(this.data);
}
}
class="kw">public void queryRadius(@Nonnull Vector3d var1, double var2, @Nonnull List<PointEntry> var4) {
if (this.tree.size() != 0) {
this.tree.collect(var1, var2, var4);
}
}
}