MortonCode class
Пакет: com.hypixel.hytale.component.spatial
Файл: com/hypixel/hytale/component/spatial/MortonCode.java
Поля (14)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
int |
BITS_PER_AXIS |
|
|
var0 |
|
|
var0 |
|
|
var0 |
|
|
var0 |
|
|
var0 |
|
double |
var18 |
|
|
var2 |
|
double |
var20 |
|
double |
var22 |
|
long |
var24 |
|
long |
var26 |
|
long |
var28 |
|
|
var4 |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
static |
long |
encodelong encode(double var0, double var2, double var4, double var6, double var8, double var10, double var12, double var14, double var16) |
static |
long |
expandBitslong expandBits(long var0) |
static |
long |
interleaveBitslong interleaveBits(long var0, long var2, long var4) |
abstract |
return |
interleaveBitsreturn interleaveBits(var24, var26, var28) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.component.spatial;
class="kw">public class MortonCode {
class="kw">private class="kw">static class="kw">final int BITS_PER_AXIS = 21;
class="kw">private class="kw">static class="kw">final long MAX_COORD = 2097151L;
class="kw">public MortonCode() {
}
class="kw">public class="kw">static long encode(double var0, double var2, double var4, double var6, double var8, double var10, double var12, double var14, double var16) {
double var18 = (var0 - var6) / (var12 - var6);
double var20 = (var2 - var8) / (var14 - var8);
double var22 = (var4 - var10) / (var16 - var10);
long var24 = Math.min(Math.max((long)(var18 * 2097151.0), 0L), 2097151L);
long var26 = Math.min(Math.max((long)(var20 * 2097151.0), 0L), 2097151L);
long var28 = Math.min(Math.max((long)(var22 * 2097151.0), 0L), 2097151L);
class="kw">return interleaveBits(var24, var26, var28);
}
class="kw">private class="kw">static long interleaveBits(long var0, long var2, long var4) {
var0 = expandBits(var0);
var2 = expandBits(var2);
var4 = expandBits(var4);
class="kw">return var0 | var2 << 1 | var4 << 2;
}
class="kw">private class="kw">static long expandBits(long var0) {
var0 &= 2097151L;
var0 = (var0 | var0 << 32) & 8725724278095871L;
var0 = (var0 | var0 << 16) & 8725728556220671L;
var0 = (var0 | var0 << 8) & 1157144660301377551L;
var0 = (var0 | var0 << 4) & 1207822528635744451L;
class="kw">return (var0 | var0 << 2) & 1317624576693539401L;
}
}