KDTree

public class KDTree

Class KDTree. Provides kdtree functionality for the Hytale server.

java.lang.Object > KDTree

Field Summary

nodePoolIndex

private int nodePoolIndex

Field nodePoolIndex.

dataListPoolIndex

private int dataListPoolIndex

Field dataListPoolIndex.

size

private int size

Field size.

root

private Node root

Field root.

spatialDataSize

final int spatialDataSize

Field spatialDataSize.

mid

final int mid

Field mid.

sortedIndex

final int sortedIndex

Field sortedIndex.

vector

final Vector3d vector

Field vector.

data

final T data

Field data.

list

final List list

Field list.

leftSortedIndex

final int leftSortedIndex

Field leftSortedIndex.

leftVector

final Vector3d leftVector

Field leftVector.

leftData

final T leftData

Field leftData.

rightSortedIndex

final int rightSortedIndex

Field rightSortedIndex.

rightVector

final Vector3d rightVector

Field rightVector.

rightData

final T rightData

Field rightData.

closestState

final ClosestState closestState

Field closestState.

distanceSq

final double distanceSq

Field distanceSq.

radiusSq

final double radiusSq

Field radiusSq.

halfHeight

final double halfHeight

Field halfHeight.

entryResults

final ObjectArrayList> entryResults

Field entryResults.

node

final Node node

Field node.

set

final ObjectArrayList set

Field set.

axis

final int axis

Field axis.

compare

final int compare

Field compare.

newDepth

final int newDepth

Field newDepth.

plane

final double plane

Field plane.

component

final double component

Field component.

planeDistance

final double planeDistance

Field planeDistance.

nodeDistanceSq

final double nodeDistanceSq

Field nodeDistanceSq.

dy

final double dy

Field dy.

dx

final double dx

Field dx.

dz

final double dz

Field dz.

xzDistanceSq

final double xzDistanceSq

Field xzDistanceSq.

axisRadius

final double axisRadius

Field axisRadius.

minComponent

final double minComponent

Field minComponent.

maxComponent

final double maxComponent

Field maxComponent.

inCuboid

final boolean inCuboid

Field inCuboid.

primary

final Node primary

Field primary.

secondary

final Node secondary

Field secondary.

radius

final double radius

Field radius.

one

private Node one

Field one.

two

private Node two

Field two.

nextDepth

final int nextDepth

Field nextDepth.

Method Detail

KDTree

public public KDTree (@Nonnull final Predicate collectionFilter)

Method KDTree.

Parameters:
@Nonnull final Predicate collectionFilter

size

public int size ()

Method size.

rebuild

public void rebuild (@Nonnull final SpatialData spatialData)

Method rebuild.

Parameters:
@Nonnull final SpatialData spatialData

closest

public T closest (@Nonnull final Vector3d point)

Method closest.

Parameters:
@Nonnull final Vector3d point

collect

public void collect (@Nonnull final Vector3d center, final double radius, @Nonnull final List results)

Method collect.

Parameters:
@Nonnull final Vector3d center
final double radius
@Nonnull final List results

collectCylinder

public void collectCylinder (@Nonnull final Vector3d center, final double radius, final double height, @Nonnull final List results)

Method collectCylinder.

Parameters:
@Nonnull final Vector3d center
final double radius
final double height
@Nonnull final List results

collectBox

public void collectBox (@Nonnull final Vector3d min, @Nonnull final Vector3d max, @Nonnull final List results)

Method collectBox.

Parameters:
@Nonnull final Vector3d min
@Nonnull final Vector3d max
@Nonnull final List results

ordered

public void ordered (@Nonnull final Vector3d center, final double radius, @Nonnull final List results)

Method ordered.

Parameters:
@Nonnull final Vector3d center
final double radius
@Nonnull final List results

ordered3DAxis

public void ordered3DAxis (@Nonnull final Vector3d center, final double xSearchRadius, final double YSearchRadius, final double zSearchRadius, @Nonnull final List results)

Method ordered3DAxis.

Parameters:
@Nonnull final Vector3d center
final double xSearchRadius
final double YSearchRadius
final double zSearchRadius
@Nonnull final List results

dump

public String dump ()

Method dump.

getPooledNode

private Node getPooledNode (final Vector3d vector, final List data)

Method getPooledNode.

Parameters:
final Vector3d vector
final List data

getPooledDataList

private List getPooledDataList ()

Method getPooledDataList.

build0

private void build0 (@Nonnull final SpatialData spatialData, final int start, final int end)

Method build0.

Parameters:
@Nonnull final SpatialData spatialData
final int start
final int end

put0

private void put0 (@Nonnull final Node node, @Nonnull final Vector3d vector, @Nonnull final List list, final int axis)

Method put0.

Parameters:
@Nonnull final Node node
@Nonnull final Vector3d vector
@Nonnull final List list
final int axis

if

public else if (node.two == null)

Method if.

Parameters:
node.two == null

closest0

private void closest0 (@Nonnull final ClosestState closestState, @Nullable final Node node, @Nonnull final Vector3d vector, final int depth)

Method closest0.

Parameters:
@Nonnull final ClosestState closestState
@Nullable final Node node
@Nonnull final Vector3d vector
final int depth

collect0

private void collect0 (@Nonnull final List results, @Nullable final Node node, @Nonnull final Vector3d vector, final double distanceSq, final int depth)

Method collect0.

Parameters:
@Nonnull final List results
@Nullable final Node node
@Nonnull final Vector3d vector
final double distanceSq
final int depth

collectCylinder0

private void collectCylinder0 (@Nonnull final List results, @Nullable final Node node, @Nonnull final Vector3d center, final double radiusSq, final double halfHeight, final double radius, final int depth)

Method collectCylinder0.

Parameters:
@Nonnull final List results
@Nullable final Node node
@Nonnull final Vector3d center
final double radiusSq
final double halfHeight
final double radius
final int depth

collectBox0

private void collectBox0 (@Nonnull final List results, @Nullable final Node node, @Nonnull final Vector3d min, @Nonnull final Vector3d max, final int depth)

Method collectBox0.

Parameters:
@Nonnull final List results
@Nullable final Node node
@Nonnull final Vector3d min
@Nonnull final Vector3d max
final int depth

ordered0

private void ordered0 (@Nonnull final List> results, @Nullable final Node node, @Nonnull final Vector3d vector, final double distanceSq, final int depth)

Method ordered0.

Parameters:
@Nonnull final List> results
@Nullable final Node node
@Nonnull final Vector3d vector
final double distanceSq
final int depth

_internal_ordered3DAxis

private void _internal_ordered3DAxis (@Nonnull final List> results, @Nullable final Node node, @Nonnull final Vector3d center, final double xSearchRadius, final double ySearchRadius, final double zSearchRadius, final int depth)

Method _internal_ordered3DAxis.

Parameters:
@Nonnull final List> results
@Nullable final Node node
@Nonnull final Vector3d center
final double xSearchRadius
final double ySearchRadius
final double zSearchRadius
final int depth

compare

static int compare (@Nonnull final Vector3d v1, @Nonnull final Vector3d v2, final int axis)

Method compare.

Parameters:
@Nonnull final Vector3d v1
@Nonnull final Vector3d v2
final int axis

switch

public return switch (axis)

Method switch.

Parameters:
axis axis

get

static double get (@Nonnull final Vector3d v, final int axis)

Method get.

Parameters:
@Nonnull final Vector3d v
final int axis

Node

public public Node (final Vector3d vector, final List data)

Method Node.

Parameters:
final Vector3d vector
final List data

reset

public void reset (final Vector3d vector, final List data)

Method reset.

Parameters:
final Vector3d vector
final List data

ClosestState

public public ClosestState (final Node node, final double distanceSq)

Method ClosestState.

Parameters:
final Node node
final double distanceSq

OrderedEntry

public public OrderedEntry (final double distanceSq, final List values)

Method OrderedEntry.

Parameters:
final double distanceSq
final List values