Nodes are defined by a hyperCube area as well as a list of children,
as well as a pointer next to the corresponding node in the
next highest tree.
Utility trait which elements the rightward search findPN.
A leaf in the octree, carrying a map entry in the form of a point and associated value.
A left tree node implementation provides more specialized child nodes
of type LeftChild.
A tree element in Q0 has markers for the in-order traversal.
A common trait used in pattern matching, comprised of Leaf and LeftChildBranch.
A node is an object that can be stored in a orthant of a branch.
An inner non empty tree element has a mutable parent node.
A right tree node implementation provides more specialized child nodes
of type RightChild.
A common trait used in pattern matching, comprised of Leaf and RightChildBranch.
Adds an element to the tree (or replaces a given element with the same point location).
Adds an element to the tree (or replaces a given element with the same point location).
the element to add
true if the element is new in the tree. If a previous entry with the
same point view is overwritten, this is true if the elements were
not equal, false if they were equal
An Iterator which iterates over the points stored
in the octree, using an in-order traversal directed
by the orthant indices of the nodes of the tree.
An Iterator which iterates over the points stored
in the octree, using an in-order traversal directed
by the orthant indices of the nodes of the tree.
Great care has to be taken as the iterator might be corrupted if the tree is successively changed before the iterator is exhausted.
Reports the nearest neighbor entry with respect to a given point.
Reports the nearest neighbor entry with respect to a given point.
Note: There is a potential numeric overflow if the
squared distance of the query point towards the
furthest corner of the tree's root hyper-cube exceeds 63 bits.
For a root Square( 0x40000000, 0x40000000, 0x40000000 ), this
happens for example for any point going more towards north-west
than Point2DLike( -1572067139, -1572067139 ).
the point of which the nearest neighbor is to be found
(description missing)
if the tree is empty
The number of orthants in each hyperCube.
The number of orthants in each hyperCube. This is equal
to 1 << numDimensions and gives the upper bound
of the index to QNode.child().
Removes an element from the tree
Removes an element from the tree
the element to remove
true if the element had been found in the tree and thus been removed.
Removes the element stored under a given point view.
Removes the element stored under a given point view.
the location of the element to remove
the element removed, wrapped as Some, or None if no element was
found for the given point.
Queries the number of leaves in the tree.
Queries the number of leaves in the tree. This may be a very costly action, so it is recommended to only use it for debugging purposes.
Converts the tree into a linearized indexed sequence.
Converts the tree into a linearized indexed sequence. This is not necessarily a very efficient method, and should usually just be used for debugging.
Converts the tree into a linearized list.
Converts the tree into a linearized list. This is not necessarily a very efficient method, and should usually just be used for debugging.
Converts the tree into a linearized sequence.
Converts the tree into a linearized sequence. This is not necessarily a
very efficient method, and should usually just be used for debugging.
To avoid surprises, this does not call iterator.toSeq because that would
produce a Stream and thus subject to further changes to the tree while
traversing. The returned seq instead is 'forced' and thus stable.
Converts the tree into a non-transactional set.
Converts the tree into a non-transactional set. This is not necessarily a very efficient method, and should usually just be used for debugging.
Adds an element to the tree (or replaces a given element with the same point location).
Adds an element to the tree (or replaces a given element with the same point location).
the element to add to the tree
the old element stored for the same point view, if it existed