Package cds.healpix.fillingcurve

# Interface FillingCurve3D

All Known Implementing Classes:
  `ZOrderCurve3D`

public interface FillingCurve3D
Interface defining a 3-dimensional space-filling curve. It provides method to transform 3d-coordinates in a single index in the curve. The index value is here called hash value since the intput parameters are discritized coordinates, and information is lost during the discretization.

Author:
  F.-X. Pineau

## Method Summary

Modifier and Type
Method
Description
`long`
`hash2i00(long hash)`
Special case of `hash2ijk(long)` in which the discretized coordinate along the vertical axis equals zero.
`long`
`hash2ijk(long hash)`
Transforms the given space filling curve index (or hash value) into a single value from which it is straightforward to extract the associated 3d-coordinates using methods `ijk2i(long)`, `ijk2j(long)` and `ijk2k(long)`.
`long`
`i002hash(int i)`
Special case of `ijk2hash(int, int, int)` in which the discretized coordinate along the vertical axis equals zero.
`long`
`ijk2hash(int i, int j, int k)`
Transforms coordinates in a discretized 2d-space into a space filling curve index.
`int`
`ijk2i(long ijk)`
Extract the discretized horizontal coordinates from the result of the method `hash2ijk(long)`.
`int`
`ijk2j(long ijk)`
Extract the discretized vertical coordinates from the result of the method `hash2ijk(long)`.
`int`
`ijk2k(long ijk)`
Extract the discretized depth coordinates from the result of the method `hash2ijk(long)`.

## Method Details

### ijk2hash

long ijk2hash(int i, int j, int k)
Transforms coordinates in a discretized 2d-space into a space filling curve index. This can be thought of as computing a hash value from 3d-coordinates.

Parameters:
  `i` - discretized coordinate along the horizontal axis
  `j` - discretized coordinate along the vertical axis
  `k` - discretized coordinate along the depth axis
Returns:
  the space filling curve index (or hash value) associated to the given discretized 3d-coordinates.

### i002hash

long i002hash(int i)
Special case of `ijk2hash(int, int, int)` in which the discretized coordinate along the vertical axis equals zero.

Parameters:
  `i` - discretized coordinate along the horizontal axis
Returns:
  the space filling curve index (or hash value) associated to the given discretized horizontal coordinate, assuming the discretized vertical coordinate equal zero.

### hash2ijk

long hash2ijk(long hash)
Transforms the given space filling curve index (or hash value) into a single value from which it is straightforward to extract the associated 3d-coordinates using methods `ijk2i(long)`, `ijk2j(long)` and `ijk2k(long)`.

Parameters:
  `hash` - the space filling curve index (or hash value)
Returns:
  a single value from which it is straightforward to extract the associated 3d-coordinates using methods `ijk2i(long)`, `ijk2j(long)` and `ijk2k(long)`.

### hash2i00

long hash2i00(long hash)
Special case of `hash2ijk(long)` in which the discretized coordinate along the vertical axis equals zero.

Parameters:
  `hash` - the space filling curve index (or hash value)
Returns:
  a single value, knowing the vertical coordinate equals zero, from which it is straightforward to extract the associated horizontal coordinate using method `ijk2i(long)`.

### ijk2i

int ijk2i(long ijk)
Extract the discretized horizontal coordinates from the result of the method `hash2ijk(long)`.

Parameters:
  `ijk` - result of the method `hash2ijk(long)`
Returns:
  the discretized horizontal coordinate stored in the given parameter `ijk`

### ijk2j

int ijk2j(long ijk)
Extract the discretized vertical coordinates from the result of the method `hash2ijk(long)`.

Parameters:
  `ijk` - result of the method `hash2ijk(long)`
Returns:
  the discretized horizontal coordinate stored in the given parameter `ijk`

### ijk2k

int ijk2k(long ijk)
Extract the discretized depth coordinates from the result of the method `hash2ijk(long)`.

Parameters:
  `ijk` - result of the method `hash2ijk(long)`
Returns:
  the discretized horizontal coordinate stored in the given parameter `ijk`