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);
      }
   }
}