Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ZCurve<T>

Z-Curve encoder/decoder and optimized bbox range extraction for arbitrary dimensions (>= 2). Supports max. 32bit per-component value range and resulting Morton codes encoded as BigInt.

Type parameters

Hierarchy

Index

Constructors

constructor

  • new ZCurve(dim: T, bits: Range1_32, order?: ArrayLike<RangeValueMap[T]>): ZCurve
  • Parameters

    • dim: T

      dimensions

    • bits: Range1_32

      number of bits per component

    • Optional order: ArrayLike<RangeValueMap[T]>

      component ordering

    Returns ZCurve

Properties

bits

bits: number

dim

dim: T

masks

masks: bigint[]

order

order: ArrayLike<number>

wipeMasks

wipeMasks: bigint[]

Methods

bigMin

  • bigMin(zcurr: bigint, zmin: bigint, zmax: bigint): bigint

decode

  • decode(z: bigint, out?: NumericArray): NumericArray
  • Decodes given Z index into point coordinates.

    Parameters

    • z: bigint

      Z index

    • Default value out: NumericArray = []

      optional result array

    Returns NumericArray

encode

  • encode(p: ArrayLike<number>): bigint
  • Encodes given nD point as Z index.

    Parameters

    • p: ArrayLike<number>

      point to encode

    Returns bigint

Protected initMasks

  • initMasks(): void

Protected loadBits

  • loadBits(mask: number, bitPos: number, z: bigint): bigint
  • Parameters

    • mask: number
    • bitPos: number
    • z: bigint

    Returns bigint

merge

  • merge(zparts: bigint[]): bigint

pointInBox

  • pointInBox(p: ArrayLike<number>, rmin: ArrayLike<number>, rmax: ArrayLike<number>): boolean
  • Parameters

    • p: ArrayLike<number>
    • rmin: ArrayLike<number>
    • rmax: ArrayLike<number>

    Returns boolean

range

  • range(rmin: ArrayLike<number>, rmax: ArrayLike<number>): Generator<bigint, void, unknown>

split

  • split(z: bigint, out?: bigint[]): bigint[]
  • Decomposes given Z index into individual bit patterns, one per dimension.

    remarks

    Parameters

    • z: bigint

      -

    • Default value out: bigint[] = []

      -

    Returns bigint[]

Static decodeComponent

  • decodeComponent(z: bigint, bits: number, dims: number, offset: number): number
  • Decodes a single nD component from given Z index.

    Parameters

    • z: bigint

      Z index

    • bits: number

      bits per component

    • dims: number

      number of dimensions

    • offset: number

      bit offset (for curr dimension)

    Returns number

Static encodeComponent

  • encodeComponent(x: number, bits: number, dims: number, offset: number, out?: bigint): bigint
  • Encodes a single nD point component as partial Z index.

    Parameters

    • x: number

      component value

    • bits: number

      bits per component

    • dims: number

      number of dimensions

    • offset: number

      bit offset (for curr dimension)

    • Default value out: bigint = ZERO

      existing partial Z result

    Returns bigint

Generated using TypeDoc