object
DeterministicSkipOctree
Type Members
-
sealed
trait
Branch[S <: Base[S], D <: Space[D], A] extends Child[S, D, A] with NonEmpty[S, D]
-
sealed
trait
Child[+S, +D, +A] extends Writable
-
sealed
trait
ChildBranch[S <: Base[S], D <: Space[D], A] extends Branch[S, D, A] with NonEmptyChild[S, D, A]
-
-
sealed
trait
LeafOrEmpty[+S, +D, +A] extends LeftChild[S, D, A]
-
sealed
trait
Left extends AnyRef
-
sealed
trait
LeftBranch[S <: Base[S], D <: Space[D], A] extends Branch[S, D, A] with LeftNonEmpty[S, D]
-
sealed
trait
LeftChild[+S, +D, +A] extends Left with Child[S, D, A]
-
-
sealed
trait
LeftNonEmpty[S <: Base[S], D <: Space[D]] extends Left with NonEmpty[S, D]
-
sealed
trait
LeftNonEmptyChild[S <: Base[S], D <: Space[D], A] extends LeftNonEmpty[S, D] with NonEmptyChild[S, D, A] with LeftChild[S, D, A] with Writable
-
sealed
trait
LeftTopBranch[S <: Base[S], D <: Space[D], A] extends LeftBranch[S, D, A] with TopBranch[S, D, A] with Disposable[DeterministicSkipOctree.LeftTopBranch.S.Tx]
-
sealed
trait
Next[+S, +D, +A] extends Child[S, D, A]
-
sealed
trait
NonEmpty[S <: Base[S], D <: Space[D]] extends Identifiable[DeterministicSkipOctree.NonEmpty.S.Id]
-
sealed
trait
NonEmptyChild[S <: Base[S], D <: Space[D], A] extends NonEmpty[S, D] with Child[S, D, A]
-
sealed
trait
RightBranch[S <: Base[S], D <: Space[D], A] extends Next[S, D, A] with Branch[S, D, A]
-
sealed
trait
RightChild[+S, +D, +A] extends Child[S, D, A]
-
-
sealed
trait
RightNonEmptyChild[S <: Base[S], D <: Space[D], A] extends RightChild[S, D, A] with NonEmptyChild[S, D, A] with Writable
-
sealed
trait
RightTopBranch[S <: Base[S], D <: Space[D], A] extends RightBranch[S, D, A] with TopBranch[S, D, A]
-
sealed
trait
TopBranch[S <: Base[S], D <: Space[D], A] extends Branch[S, D, A]
Value Members
-
final
def
!=(arg0: Any): Boolean
-
final
def
##(): Int
-
final
def
==(arg0: Any): Boolean
-
object
Empty extends LeftChild[Nothing, Nothing, Nothing] with RightChild[Nothing, Nothing, Nothing] with Next[Nothing, Nothing, Nothing] with LeafOrEmpty[Nothing, Nothing, Nothing] with Product with Serializable
-
final
def
asInstanceOf[T0]: T0
-
def
clone(): AnyRef
-
def
empty[S <: Base[S], D <: Space[D], A](hyperCube: DeterministicSkipOctree.empty.D.HyperCube, skipGap: Int = 2)(implicit view: (A, DeterministicSkipOctree.empty.S.Tx) ⇒ DeterministicSkipOctree.empty.D.PointLike, tx: DeterministicSkipOctree.empty.S.Tx, space: D, keySerializer: Serializer[DeterministicSkipOctree.empty.S.Tx, DeterministicSkipOctree.empty.S.Acc, A]): DeterministicSkipOctree[S, D, A]
-
final
def
eq(arg0: AnyRef): Boolean
-
def
equals(arg0: Any): Boolean
-
def
finalize(): Unit
-
final
def
getClass(): Class[_]
-
def
hashCode(): Int
-
final
def
isInstanceOf[T0]: Boolean
-
final
def
ne(arg0: AnyRef): Boolean
-
final
def
notify(): Unit
-
final
def
notifyAll(): Unit
-
def
read[S <: Base[S], D <: Space[D], A](in: DataInput, access: DeterministicSkipOctree.read.S.Acc)(implicit tx: DeterministicSkipOctree.read.S.Tx, view: (A, DeterministicSkipOctree.read.S.Tx) ⇒ DeterministicSkipOctree.read.D.PointLike, space: D, keySerializer: Serializer[DeterministicSkipOctree.read.S.Tx, DeterministicSkipOctree.read.S.Acc, A]): DeterministicSkipOctree[S, D, A]
-
implicit
def
serializer[S <: Base[S], D <: Space[D], A](implicit view: (A, DeterministicSkipOctree.serializer.S.Tx) ⇒ DeterministicSkipOctree.serializer.D.PointLike, space: D, keySerializer: Serializer[DeterministicSkipOctree.serializer.S.Tx, DeterministicSkipOctree.serializer.S.Acc, A]): Serializer[DeterministicSkipOctree.serializer.S.Tx, DeterministicSkipOctree.serializer.S.Acc, DeterministicSkipOctree[S, D, A]]
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
-
def
toString(): String
-
final
def
wait(): Unit
-
final
def
wait(arg0: Long, arg1: Int): Unit
-
final
def
wait(arg0: Long): Unit
Inherited from AnyRef
Inherited from Any
A transactional deterministic skip octree as outlined in the paper by Eppstein et al. It is constructed from a given space (dimensions) and a skip-gap parameter which determines the kind of skip list which is used to govern the level decimation.
The tree is a mutable data structure which supports lookup, insertion and removal in O(log n), as well as efficient range queries and nearest neighbour search.
The current implementation, backed by
impl.SkipOctreeImpl, uses the types of thegeompackage, assuming that coordinates are integers, with the maximum root hyper-cube given by a span from0to0x7FFFFFFF(e.g. inSpace.IntTwoDim, this isIntSquare( 0x40000000, 0x40000000, 0x40000000 ).