FastNoiseLite class

Пакет: com.hypixel.hytale.builtin.hytalegenerator.noise

Файл: com/hypixel/hytale/builtin/hytalegenerator/noise/FastNoiseLite.java

Поля (737)

МодификаторыТипИмя
OpenSimplex2, OpenSimplex2Reduced, BasicGrid
public static final Codec<FastNoiseLite.CellularReturnType> CODEC
None, ImproveXYPlanes, ImproveXZPlanes, DefaultOpenSimplex2
CellValue, Distance, Distance2, Distance2Add, Distance2Sub, Distance2Mul, Distance2Div
None, FBm, Ridged, PingPong, DomainWarpProgressive, DomainWarpIndependent
Euclidean, EuclideanSq, Manhattan, Hybrid
None, ImproveXYPlanes, ImproveXZPlanes
OpenSimplex2, OpenSimplex2S, Cellular, Perlin, ValueCubic, Value
break
break
break
break
break
break
break
break
break
break
break
break
break
break
break
break
break
break
break
break
break
break
break
break
break
break
private int mSeed
return
var1
float var1
var1
float var10
float var10
int var10
int var10
int var10
int var10
int var10
int var10
var10
var10
var10
int var10
float var10
int var10
int var10
int var10
int var10
int var10
double var10
double var10
var10
double var10
double var10
float var10
float var11
float var11
float var11
float var11
float var11
var11
int var11
float var11
int var11
int var11
float var11
float var11
var11
var11
var11
var11
float var11
float var11
int var11
float var11
int var11
float var11
double var11
double var11
double var11
double var11
float var11
float var12
float var12
var12
float var12
float var12
int var12
double var12
int var12
float var12
var12
var12
var12
var12
float var12
float var12
int var12
float var12
float var12
float var12
double var12
double var12
int var12
int var12
int var12
float var13
float var13
var13
float var13
float var13
int var13
int var13
int var13
var13
var13
var13
float var13
float var13
int var13
float var13
float var13
float var13
double var13
double var13
float var13
int var13
double var13
int var13
int var13
float var14
int var14
var14
int var14
int var14
int var14
double var14
float var14
int var14
float var14
int var14
int var14
int var14
double var14
double var14
double var14
int var14
float var14
int var14
float var15
var15
var15
int var15
var15
int var15
int var15
double var15
int var15
int var15
int var15
float var15
int var15
int var15
int var15
double var15
float var15
double var15
float var15
float var15
var15
double var16
float var16
var16
var16
var16
var16
int var16
var16
float var16
int var16
int var16
float var16
float var16
int var16
int var16
int var16
float var16
float var16
float var16
var16
double var17
float var17
var17
var17
float var17
var17
float var17
int var17
double var17
int var17
int var17
float var17
float var17
int var17
float var17
double var17
double var17
int var17
int var17
float var17
float var17
var17
double var18
float var18
float var18
var18
float var18
float var18
int var18
float var18
int var18
float var18
double var18
double var18
double var18
int var18
int var18
float var18
int var18
var18
double var19
float var19
float var19
var19
float var19
float var19
double var19
float var19
int var19
float var19
int var19
float var19
double var19
double var19
float var19
int var19
var19
int var19
float var19
int var19
var19
float var2
int var2
int var2
int var2
int var2
double var2
double var2
var2
float var20
float var20
float var20
float var20
float var20
int var20
int var20
float var20
double var20
double var20
int var20
var20
float var20
float var20
int var20
var20
float var21
float var21
float var21
float var21
float var21
int var21
int var21
int var21
float var21
double var21
float var21
float var21
float var21
float var21
var21
float var22
int var22
float var22
float var22
int var22
int var22
float var22
float var22
float var22
float var22
float var22
var22
float var23
float var23
float var23
int var23
float var23
float var23
int var23
float var23
var23
var23
float var23
var23
float var24
float var24
int var24
int var24
float var24
float var24
int var24
float var24
var24
var24
float var24
float var25
float var25
float var25
int var25
float var25
float var25
int var25
int var25
float var25
float var26
float var26
float var26
float var26
float var26
int var26
var26
var26
var26
int var26
float var26
float var27
float var27
float var27
float var27
float var27
int var27
var27
var27
var27
int var27
float var27
float var28
float var28
float var28
int var28
float var28
float var28
float var28
var28
float var28
int var28
float var29
float var29
int var29
float var29
var29
float var29
float var29
var3
var3
float var3
int var3
int var3
float var3
float var3
float var3
float var3
float var30
float var30
int var30
float var30
var30
float var30
float var30
var30
var30
float var31
float var31
int var31
int var31
float var31
var31
float var31
float var31
var31
var31
float var32
float var32
float var32
int var32
float var32
var32
float var32
float var32
var32
var32
float var33
boolean var33
var33
float var33
float var33
var33
float var33
int var33
float var34
float var34
float var34
float var34
float var34
int var34
float var35
float var35
float var35
int var35
float var35
float var35
int var35
float var36
float var36
float var36
int var36
float var36
float var36
float var36
float var37
float var37
float var37
float var37
float var38
float var38
float var38
float var39
float var39
int var39
float var39
int var4
int var4
float var4
float var4
float var4
float var4
double var4
double var4
var4
var4
float var40
float var40
int var40
float var40
float var41
float var41
int var41
float var41
float var41
float var42
float var42
int var42
float var42
float var42
float var43
float var43
float var43
float var43
float var43
float var44
float var44
float var44
float var44
float var45
float var45
float var45
float var45
float var46
float var46
float var46
float var46
float var47
float var47
float var47
float var47
float var48
float var48
float var48
int var48
float var48
float var49
boolean var49
var49
float var49
float var49
float var49
double var5
var5
float var5
int var5
int var5
int var5
int var5
double var5
double var5
var5
float var50
float var50
float var50
float var50
float var51
float var51
float var51
float var52
float var52
var52
var52
float var53
float var53
float var54
float var54
float var55
float var55
var55
var55
float var56
float var56
var56
var56
float var56
var56
var56
var56
boolean var57
var57
float var57
var57
var57
float var58
int var58
float var59
int var59
int var59
float var6
float var6
float var6
float var6
float var6
double var6
int var6
int var6
int var6
int var6
int var6
double var6
double var6
var6
double var6
double var6
var6
float var60
float var60
var60
var60
int var60
float var61
float var61
var61
var61
int var61
float var62
int var62
int var62
float var63
int var63
float var63
float var64
int var64
float var64
float var65
int var65
float var65
float var66
int var66
float var66
float var67
int var67
float var67
var67
var67
float var68
int var68
float var68
var68
var68
float var69
int var69
float var69
var69
var69
double var7
double var7
float var7
int var7
float var7
int var7
float var7
int var7
float var7
int var7
float var7
int var7
int var7
int var7
int var7
int var7
double var7
double var7
var7
var7
float var7
float var70
float var70
int var70
float var71
int var71
int var71
float var72
int var72
int var72
float var73
float var73
int var73
float var74
float var74
float var75
float var75
float var76
float var76
float var77
float var77
float var78
float var78
float var79
float var79
float var8
float var8
float var8
float var8
int var8
int var8
double var8
int var8
int var8
int var8
float var8
var8
var8
var8
var8
int var8
float var8
int var8
float var8
int var8
float var8
int var8
double var8
double var8
var8
var8
double var8
double var8
float var80
float var80
float var81
float var81
float var82
float var82
float var83
float var84
float var85
float var86
float var87
double var9
double var9
float var9
float var9
float var9
float var9
float var9
float var9
float var9
int var9
int var9
int var9
int var9
float var9
var9
var9
var9
var9
int var9
float var9
int var9
float var9
int var9
float var9
int var9
double var9
double var9
var9
float var9
double var9
public double x
public double x
public double y
public double y
public double z

Методы (202)

МодификаторыВозвратСигнатура
private void CalculateFractalBoundingvoid CalculateFractalBounding()
CellularDistanceFunction CellularDistanceFunction()
CellularReturnType CellularReturnType()
static float CubicLerpfloat CubicLerp(float var0, float var1, float var2, float var3, float var4)
private void DoSingleDomainWarpvoid DoSingleDomainWarp(int var1, float var2, float var3, double var4, double var6, @Nonnull FastNoiseLite.Vector2 var8)
private void DoSingleDomainWarpvoid DoSingleDomainWarp(int var1, float var2, float var3, double var4, double var6, double var8, @Nonnull FastNoiseLite.Vector3 var10)
public void DomainWarpvoid DomainWarp(@Nonnull FastNoiseLite.Vector2 var1)
public void DomainWarpvoid DomainWarp(@Nonnull FastNoiseLite.Vector3 var1)
private void DomainWarpFractalIndependentvoid DomainWarpFractalIndependent(@Nonnull FastNoiseLite.Vector2 var1)
private void DomainWarpFractalIndependentvoid DomainWarpFractalIndependent(@Nonnull FastNoiseLite.Vector3 var1)
public void DomainWarpFractalProgressivevoid DomainWarpFractalProgressive(@Nonnull FastNoiseLite.Vector2 var1)
public void DomainWarpFractalProgressivevoid DomainWarpFractalProgressive(@Nonnull FastNoiseLite.Vector3 var1)
private void DomainWarpSinglevoid DomainWarpSingle(@Nonnull FastNoiseLite.Vector2 var1)
public void DomainWarpSinglevoid DomainWarpSingle(@Nonnull FastNoiseLite.Vector3 var1)
DomainWarpType DomainWarpType()
static float FastAbsfloat FastAbs(float var0)
static int FastFloorint FastFloor(double var0)
static float FastMaxfloat FastMax(float var0, float var1)
static float FastMinfloat FastMin(float var0, float var1)
static float FastSqrtfloat FastSqrt(float var0)
FractalType FractalType()
private float GenFractalFBmfloat GenFractalFBm(double var1, double var3)
private float GenFractalFBmfloat GenFractalFBm(double var1, double var3, double var5)
private float GenFractalPingPongfloat GenFractalPingPong(double var1, double var3)
private float GenFractalPingPongfloat GenFractalPingPong(double var1, double var3, double var5)
private float GenFractalRidgedfloat GenFractalRidged(double var1, double var3)
private float GenFractalRidgedfloat GenFractalRidged(double var1, double var3, double var5)
private float GenNoiseSinglefloat GenNoiseSingle(int var1, double var2, double var4)
private float GenNoiseSinglefloat GenNoiseSingle(int var1, double var2, double var4, double var6)
static float GradCoordfloat GradCoord(int var0, int var1, int var2, float var3, float var4)
static float GradCoordfloat GradCoord(int var0, int var1, int var2, int var3, float var4, float var5, float var6)
static float InterpHermitefloat InterpHermite(float var0)
static float InterpQuinticfloat InterpQuintic(float var0)
static float Lerpfloat Lerp(float var0, float var1, float var2)
abstract return Lerpreturn Lerp(var12, var13, var9)
abstract return Lerpreturn Lerp(var21, var22, var13)
NoiseType NoiseType()
static float PingPongfloat PingPong(float var0)
RotationType3D RotationType3D()
public void SetFractalGainvoid SetFractalGain(float var1)
public void SetFractalLacunarityvoid SetFractalLacunarity(float var1)
public void SetFractalPingPongStrengthvoid SetFractalPingPongStrength(float var1)
public void SetFractalWeightedStrengthvoid SetFractalWeightedStrength(float var1)
public void SetRotationType3Dvoid SetRotationType3D(FastNoiseLite.RotationType3D var1)
public float SingleCellularfloat SingleCellular(int var1, double var2, double var4)
private float SingleCellularfloat SingleCellular(int var1, double var2, double var4, double var6)
private void SingleDomainWarpBasicGridvoid SingleDomainWarpBasicGrid(int var1, float var2, float var3, double var4, double var6, @Nonnull FastNoiseLite.Vector2 var8)
private void SingleDomainWarpBasicGridvoid SingleDomainWarpBasicGrid(int var1, float var2, float var3, double var4, double var6, double var8, @Nonnull FastNoiseLite.Vector3 var10)
private void SingleDomainWarpOpenSimplex2Gradientvoid SingleDomainWarpOpenSimplex2Gradient(int var1, float var2, float var3, double var4, double var6, double var8, @Nonnull FastNoiseLite.Vector3 var10, boolean var11)
private void SingleDomainWarpSimplexGradientvoid SingleDomainWarpSimplexGradient(int var1, float var2, float var3, double var4, double var6, @Nonnull FastNoiseLite.Vector2 var8, boolean var9)
private float SingleOpenSimplex2float SingleOpenSimplex2(int var1, double var2, double var4, double var6)
private float SingleOpenSimplex2Sfloat SingleOpenSimplex2S(int var1, double var2, double var4)
private float SingleOpenSimplex2Sfloat SingleOpenSimplex2S(int var1, double var2, double var4, double var6)
private float SinglePerlinfloat SinglePerlin(int var1, double var2, double var4)
private float SinglePerlinfloat SinglePerlin(int var1, double var2, double var4, double var6)
private float SingleSimplexfloat SingleSimplex(int var1, double var2, double var4)
private float SingleValuefloat SingleValue(int var1, double var2, double var4)
private float SingleValuefloat SingleValue(int var1, double var2, double var4, double var6)
private float SingleValueCubicfloat SingleValueCubic(int var1, double var2, double var4)
private float SingleValueCubicfloat SingleValueCubic(int var1, double var2, double var4, double var6)
TransformType3D TransformType3D()
private void UpdateTransformType3Dvoid UpdateTransformType3D()
private void UpdateWarpTransformType3Dvoid UpdateWarpTransformType3D()
static float ValCoordfloat ValCoord(int var0, int var1, int var2)
static float ValCoordfloat ValCoord(int var0, int var1, int var2, int var3)
public Vector2public Vector2(double var1, double var3)
abstract return new Vector2dreturn new Vector2d(var12, var14)
public Vector3public Vector3(double var1, double var3, double var5)
abstract return new Vector3dreturn new Vector3d(var15, var17, var19)
static int fastRoundint fastRound(double var0)
for for(int var4 = 1; var4 < this.mOctaves; var4++)
for for(int var8 = 0; var8 < this.mOctaves; var8++)
for for(int var10 = 0; var10 < this.mOctaves; var10++)
for for(int var8 = 0; var8 < this.mOctaves; var8++)
for for(int var10 = 0; var10 < this.mOctaves; var10++)
for for(int var8 = 0; var8 < this.mOctaves; var8++)
for for(int var10 = 0; var10 < this.mOctaves; var10++)
for for(int var23 = var6 - 1; var23 <= var6 + 1; var23++)
for for(int var27 = var7 - 1; var27 <= var7 + 1; var27++)
for for(int var22 = var6 - 1; var22 <= var6 + 1; var22++)
for for(int var26 = var7 - 1; var26 <= var7 + 1; var26++)
for for(int var14 = var6 - 1; var14 <= var6 + 1; var14++)
for for(int var16 = var7 - 1; var16 <= var7 + 1; var16++)
for for(int var30 = var8 - 1; var30 <= var8 + 1; var30++)
for for(int var34 = var9 - 1; var34 <= var9 + 1; var34++)
for for(int var38 = var10 - 1; var38 <= var10 + 1; var38++)
for for(int var29 = var8 - 1; var29 <= var8 + 1; var29++)
for for(int var33 = var9 - 1; var33 <= var9 + 1; var33++)
for for(int var37 = var10 - 1; var37 <= var10 + 1; var37++)
for for(int var18 = var8 - 1; var18 <= var8 + 1; var18++)
for for(int var20 = var9 - 1; var20 <= var9 + 1; var20++)
for for(int var22 = var10 - 1; var22 <= var10 + 1; var22++)
for for(int var5 = 0; var5 < this.mOctaves; var5++)
for for(int var5 = 0; var5 < this.mOctaves; var5++)
for for(int var9 = 0; var9 < this.mOctaves; var9++)
for for(int var11 = 0; var11 < this.mOctaves; var11++)
public float getNoisefloat getNoise(double var1, double var3)
public float getNoisefloat getNoise(double var1, double var3, double var5)
static int hashint hash(int var0, int var1, int var2)
static int hashint hash(int var0, int var1, int var2, int var3)
if if(var18 <= 0.0F)
if if(var19 <= 0.0F)
if if(var14 > var13)
if if(var22 <= 0.0F)
if if(var29 <= 0.0F)
if if(var21 > 0.0F)
if if(var17 >= var18 && var17 >= var19)
if if(var30 > 1.0F)
if if(var28 > 1.0F)
if if(var23 > 1.0F)
if if(var22 == 1)
if if(var16 > 0.21132486540518713)
if if(var12 + var24 > 1.0F)
if if(var27 > 0.0F)
if if(var45 > 0.0F)
if if(var13 - var24 > 1.0F)
if if(var46 > 0.0F)
if if(var47 > 0.0F)
if if(var12 + var24 < 0.0F)
if if(var48 > 0.0F)
if if(var49 > 0.0F)
if if(var13 < var24)
if if(var50 > 0.0F)
if if(var51 > 0.0F)
if if(var34 > 0.0F)
if if(var48 > 0.0F)
if if(var51 > 0.0F)
if if(var52 > 0.0F)
if if(var56 > 0.0F)
if if(var61 > 0.0F)
if if(var62 > 0.0F)
if if(var67 > 0.0F)
if if(var74 > 0.0F)
if if(!var33)
if if(var68 > 0.0F)
if if(!var49)
if if(var69 > 0.0F)
if if(!var57)
if if(var70 > 0.0F)
if if(var37 < var8)
if if(var36 < var8)
if if(var21 < var8)
if if(this.mCellularDistanceFunction == FastNoiseLite.CellularDistanceFunction.Euclidean && this.mCellularReturnType != FastNoiseLite.CellularReturnType.CellValue)
if if(this.mCellularReturnType != FastNoiseLite.CellularReturnType.Distance)
if if(var50 < var11)
if if(var49 < var11)
if if(var28 < var11)
if if(this.mCellularDistanceFunction == FastNoiseLite.CellularDistanceFunction.Euclidean && this.mCellularReturnType != FastNoiseLite.CellularReturnType.CellValue)
if if(this.mCellularReturnType != FastNoiseLite.CellularReturnType.Distance)
if if(var21 > 0.0F)
if if(var9)
if if(var41 > 0.0F)
if if(var9)
if if(var18 > var17)
if if(var50 > 0.0F)
if if(var9)
if if(var51 > 0.0F)
if if(var9)
if if(var27 > 0.0F)
if if(var11)
if if(var21 >= var22 && var21 >= var23)
if if(var56 > 1.0F)
if if(var11)
if if(var28 == 1)
public double pointFordouble pointFor(int var1, double var2, double var4)
public void setCellularDistanceFunctionvoid setCellularDistanceFunction(FastNoiseLite.CellularDistanceFunction var1)
public void setCellularJittervoid setCellularJitter(float var1)
public void setCellularReturnTypevoid setCellularReturnType(FastNoiseLite.CellularReturnType var1)
public void setDomainWarpAmpvoid setDomainWarpAmp(float var1)
public void setDomainWarpFreqvoid setDomainWarpFreq(float var1)
public void setDomainWarpTypevoid setDomainWarpType(FastNoiseLite.DomainWarpType var1)
public void setFractalOctavesvoid setFractalOctaves(int var1)
public void setFractalTypevoid setFractalType(FastNoiseLite.FractalType var1)
public void setFrequencyvoid setFrequency(float var1)
public void setNoiseTypevoid setNoiseType(FastNoiseLite.NoiseType var1)
public void setSeedvoid setSeed(int var1)
switch switch(this.mNoiseType)
return switchreturn switch(this.mFractalType)
switch switch(this.mTransformType3D)
return switchreturn switch(this.mFractalType)
switch switch(this.mFractalType)
switch switch(this.mFractalType)
return switchreturn switch(this.mNoiseType)
return switchreturn switch(this.mNoiseType)
switch switch(this.mRotationType3D)
switch switch(this.mNoiseType)
switch switch(this.mRotationType3D)
switch switch(this.mDomainWarpType)
switch switch(this.mCellularDistanceFunction)
return switchreturn switch(this.mCellularReturnType)
switch switch(this.mCellularDistanceFunction)
return switchreturn switch(this.mCellularReturnType)
switch switch(this.mDomainWarpType)
switch switch(this.mDomainWarpType)
switch switch(this.mDomainWarpType)
switch switch(this.mWarpTransformType3D)
switch switch(this.mDomainWarpType)
switch switch(this.mWarpTransformType3D)
switch switch(this.mDomainWarpType)
switch switch(this.mWarpTransformType3D)
while while(true)
while while(true)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.noise;

class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.codecs.EnumCodec;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector2d;
class="kw">import org.joml.Vector3d;

class="kw">public class FastNoiseLite {
   class="kw">private int mSeed = 1337;
   class="kw">private float mFrequency = 0.01F;
   class="kw">private FastNoiseLite.NoiseType mNoiseType = FastNoiseLite.NoiseType.OpenSimplex2;
   class="kw">private FastNoiseLite.RotationType3D mRotationType3D = FastNoiseLite.RotationType3D.None;
   @Nonnull
   class="kw">private FastNoiseLite.TransformType3D mTransformType3D = FastNoiseLite.TransformType3D.DefaultOpenSimplex2;
   class="kw">private FastNoiseLite.FractalType mFractalType = FastNoiseLite.FractalType.None;
   class="kw">private int mOctaves = 3;
   class="kw">private float mLacunarity = 2.0F;
   class="kw">private float mGain = 0.5F;
   class="kw">private float mWeightedStrength = 0.0F;
   class="kw">private float mPingPongStrength = 2.0F;
   class="kw">private float mFractalBounding = 0.5714286F;
   class="kw">private FastNoiseLite.CellularDistanceFunction mCellularDistanceFunction = FastNoiseLite.CellularDistanceFunction.EuclideanSq;
   class="kw">private FastNoiseLite.CellularReturnType mCellularReturnType = FastNoiseLite.CellularReturnType.Distance;
   class="kw">private float mCellularJitterModifier = 1.0F;
   class="kw">private FastNoiseLite.DomainWarpType mDomainWarpType = FastNoiseLite.DomainWarpType.OpenSimplex2;
   @Nonnull
   class="kw">private FastNoiseLite.TransformType3D mWarpTransformType3D = FastNoiseLite.TransformType3D.DefaultOpenSimplex2;
   class="kw">private float mDomainWarpAmp = 1.0F;
   class="kw">private float mDomainWarpFreq = 1.0F;
   @Nonnull
   class="kw">private class="kw">static class="kw">final float[] Gradients2D = new float[]{
      0.13052619F,
      0.9914449F,
      0.38268343F,
      0.9238795F,
      0.6087614F,
      0.7933533F,
      0.7933533F,
      0.6087614F,
      0.9238795F,
      0.38268343F,
      0.9914449F,
      0.13052619F,
      0.9914449F,
      -0.13052619F,
      0.9238795F,
      -0.38268343F,
      0.7933533F,
      -0.6087614F,
      0.6087614F,
      -0.7933533F,
      0.38268343F,
      -0.9238795F,
      0.13052619F,
      -0.9914449F,
      -0.13052619F,
      -0.9914449F,
      -0.38268343F,
      -0.9238795F,
      -0.6087614F,
      -0.7933533F,
      -0.7933533F,
      -0.6087614F,
      -0.9238795F,
      -0.38268343F,
      -0.9914449F,
      -0.13052619F,
      -0.9914449F,
      0.13052619F,
      -0.9238795F,
      0.38268343F,
      -0.7933533F,
      0.6087614F,
      -0.6087614F,
      0.7933533F,
      -0.38268343F,
      0.9238795F,
      -0.13052619F,
      0.9914449F,
      0.13052619F,
      0.9914449F,
      0.38268343F,
      0.9238795F,
      0.6087614F,
      0.7933533F,
      0.7933533F,
      0.6087614F,
      0.9238795F,
      0.38268343F,
      0.9914449F,
      0.13052619F,
      0.9914449F,
      -0.13052619F,
      0.9238795F,
      -0.38268343F,
      0.7933533F,
      -0.6087614F,
      0.6087614F,
      -0.7933533F,
      0.38268343F,
      -0.9238795F,
      0.13052619F,
      -0.9914449F,
      -0.13052619F,
      -0.9914449F,
      -0.38268343F,
      -0.9238795F,
      -0.6087614F,
      -0.7933533F,
      -0.7933533F,
      -0.6087614F,
      -0.9238795F,
      -0.38268343F,
      -0.9914449F,
      -0.13052619F,
      -0.9914449F,
      0.13052619F,
      -0.9238795F,
      0.38268343F,
      -0.7933533F,
      0.6087614F,
      -0.6087614F,
      0.7933533F,
      -0.38268343F,
      0.9238795F,
      -0.13052619F,
      0.9914449F,
      0.13052619F,
      0.9914449F,
      0.38268343F,
      0.9238795F,
      0.6087614F,
      0.7933533F,
      0.7933533F,
      0.6087614F,
      0.9238795F,
      0.38268343F,
      0.9914449F,
      0.13052619F,
      0.9914449F,
      -0.13052619F,
      0.9238795F,
      -0.38268343F,
      0.7933533F,
      -0.6087614F,
      0.6087614F,
      -0.7933533F,
      0.38268343F,
      -0.9238795F,
      0.13052619F,
      -0.9914449F,
      -0.13052619F,
      -0.9914449F,
      -0.38268343F,
      -0.9238795F,
      -0.6087614F,
      -0.7933533F,
      -0.7933533F,
      -0.6087614F,
      -0.9238795F,
      -0.38268343F,
      -0.9914449F,
      -0.13052619F,
      -0.9914449F,
      0.13052619F,
      -0.9238795F,
      0.38268343F,
      -0.7933533F,
      0.6087614F,
      -0.6087614F,
      0.7933533F,
      -0.38268343F,
      0.9238795F,
      -0.13052619F,
      0.9914449F,
      0.13052619F,
      0.9914449F,
      0.38268343F,
      0.9238795F,
      0.6087614F,
      0.7933533F,
      0.7933533F,
      0.6087614F,
      0.9238795F,
      0.38268343F,
      0.9914449F,
      0.13052619F,
      0.9914449F,
      -0.13052619F,
      0.9238795F,
      -0.38268343F,
      0.7933533F,
      -0.6087614F,
      0.6087614F,
      -0.7933533F,
      0.38268343F,
      -0.9238795F,
      0.13052619F,
      -0.9914449F,
      -0.13052619F,
      -0.9914449F,
      -0.38268343F,
      -0.9238795F,
      -0.6087614F,
      -0.7933533F,
      -0.7933533F,
      -0.6087614F,
      -0.9238795F,
      -0.38268343F,
      -0.9914449F,
      -0.13052619F,
      -0.9914449F,
      0.13052619F,
      -0.9238795F,
      0.38268343F,
      -0.7933533F,
      0.6087614F,
      -0.6087614F,
      0.7933533F,
      -0.38268343F,
      0.9238795F,
      -0.13052619F,
      0.9914449F,
      0.13052619F,
      0.9914449F,
      0.38268343F,
      0.9238795F,
      0.6087614F,
      0.7933533F,
      0.7933533F,
      0.6087614F,
      0.9238795F,
      0.38268343F,
      0.9914449F,
      0.13052619F,
      0.9914449F,
      -0.13052619F,
      0.9238795F,
      -0.38268343F,
      0.7933533F,
      -0.6087614F,
      0.6087614F,
      -0.7933533F,
      0.38268343F,
      -0.9238795F,
      0.13052619F,
      -0.9914449F,
      -0.13052619F,
      -0.9914449F,
      -0.38268343F,
      -0.9238795F,
      -0.6087614F,
      -0.7933533F,
      -0.7933533F,
      -0.6087614F,
      -0.9238795F,
      -0.38268343F,
      -0.9914449F,
      -0.13052619F,
      -0.9914449F,
      0.13052619F,
      -0.9238795F,
      0.38268343F,
      -0.7933533F,
      0.6087614F,
      -0.6087614F,
      0.7933533F,
      -0.38268343F,
      0.9238795F,
      -0.13052619F,
      0.9914449F,
      0.38268343F,
      0.9238795F,
      0.9238795F,
      0.38268343F,
      0.9238795F,
      -0.38268343F,
      0.38268343F,
      -0.9238795F,
      -0.38268343F,
      -0.9238795F,
      -0.9238795F,
      -0.38268343F,
      -0.9238795F,
      0.38268343F,
      -0.38268343F,
      0.9238795F
   };
   @Nonnull
   class="kw">private class="kw">static class="kw">final float[] RandVecs2D = new float[]{
      -0.2700222F,
      -0.9628541F,
      0.38630927F,
      -0.9223693F,
      0.04444859F,
      -0.9990117F,
      -0.59925234F,
      -0.80056024F,
      -0.781928F,
      0.62336874F,
      0.9464672F,
      0.32279992F,
      -0.6514147F,
      -0.7587219F,
      0.93784726F,
      0.34704837F,
      -0.8497876F,
      -0.52712524F,
      -0.87904257F,
      0.47674325F,
      -0.8923003F,
      -0.45144236F,
      -0.37984443F,
      -0.9250504F,
      -0.9951651F,
      0.09821638F,
      0.7724398F,
      -0.635088F,
      0.75732833F,
      -0.6530343F,
      -0.9928005F,
      -0.119780056F,
      -0.05326657F,
      0.99858034F,
      0.97542536F,
      -0.22033007F,
      -0.76650184F,
      0.64224213F,
      0.9916367F,
      0.12906061F,
      -0.99469686F,
      0.10285038F,
      -0.53792053F,
      -0.8429955F,
      0.50228155F,
      -0.86470413F,
      0.45598215F,
      -0.8899889F,
      -0.8659131F,
      -0.50019443F,
      0.08794584F,
      -0.9961253F,
      -0.5051685F,
      0.8630207F,
      0.7753185F,
      -0.6315704F,
      -0.69219446F,
      0.72171104F,
      -0.51916593F,
      -0.85467345F,
      0.8978623F,
      -0.4402764F,
      -0.17067741F,
      0.98532695F,
      -0.935343F,
      -0.35374206F,
      -0.99924046F,
      0.038967468F,
      -0.2882064F,
      -0.9575683F,
      -0.96638113F,
      0.2571138F,
      -0.87597144F,
      -0.48236302F,
      -0.8303123F,
      -0.55729836F,
      0.051101338F,
      -0.99869347F,
      -0.85583735F,
      -0.51724505F,
      0.098870255F,
      0.9951003F,
      0.9189016F,
      0.39448678F,
      -0.24393758F,
      -0.96979094F,
      -0.81214094F,
      -0.5834613F,
      -0.99104315F,
      0.13354214F,
      0.8492424F,
      -0.52800316F,
      -0.9717839F,
      -0.23587295F,
      0.9949457F,
      0.10041421F,
      0.6241065F,
      -0.7813392F,
      0.6629103F,
      0.74869883F,
      -0.7197418F,
      0.6942418F,
      -0.8143371F,
      -0.58039224F,
      0.10452105F,
      -0.9945227F,
      -0.10659261F,
      -0.99430275F,
      0.44579968F,
      -0.8951328F,
      0.105547406F,
      0.99441427F,
      -0.9927903F,
      0.11986445F,
      -0.83343667F,
      0.55261505F,
      0.9115562F,
      -0.4111756F,
      0.8285545F,
      -0.55990845F,
      0.7217098F,
      -0.6921958F,
      0.49404928F,
      -0.8694339F,
      -0.36523214F,
      -0.9309165F,
      -0.9696607F,
      0.24445485F,
      0.089255095F,
      -0.9960088F,
      0.5354071F,
      -0.8445941F,
      -0.10535762F,
      0.9944344F,
      -0.98902845F,
      0.1477251F,
      0.004856105F,
      0.9999882F,
      0.98855984F,
      0.15082914F,
      0.92861295F,
      -0.37104982F,
      -0.5832394F,
      -0.8123003F,
      0.30152076F,
      0.9534596F,
      -0.95751107F,
      0.28839657F,
      0.9715802F,
      -0.23671055F,
      0.2299818F,
      0.97319496F,
      0.9557638F,
      -0.2941352F,
      0.7409561F,
      0.67155343F,
      -0.9971514F,
      -0.07542631F,
      0.69057107F,
      -0.7232645F,
      -0.2907137F,
      -0.9568101F,
      0.5912778F,
      -0.80646795F,
      -0.94545925F,
      -0.3257405F,
      0.66644555F,
      0.7455537F,
      0.6236135F,
      0.78173286F,
      0.9126994F,
      -0.40863165F,
      -0.8191762F,
      0.57354194F,
      -0.8812746F,
      -0.4726046F,
      0.99533135F,
      0.09651673F,
      0.98556507F,
      -0.16929697F,
      -0.8495981F,
      0.52743065F,
      0.6174854F,
      -0.78658235F,
      0.85081565F,
      0.5254643F,
      0.99850327F,
      -0.0546925F,
      0.19713716F,
      -0.98037595F,
      0.66078556F,
      -0.7505747F,
      -0.030974941F,
      0.9995202F,
      -0.6731661F,
      0.73949134F,
      -0.71950185F,
      -0.69449055F,
      0.97275114F,
      0.2318516F,
      0.9997059F,
      -0.02425069F,
      0.44217876F,
      -0.89692694F,
      0.9981351F,
      -0.061043672F,
      -0.9173661F,
      -0.39804456F,
      -0.81500566F,
      -0.579453F,
      -0.87893313F,
      0.476945F,
      0.015860584F,
      0.99987423F,
      -0.8095465F,
      0.5870558F,
      -0.9165899F,
      -0.39982867F,
      -0.8023543F,
      0.5968481F,
      -0.5176738F,
      0.85557806F,
      -0.8154407F,
      -0.57884055F,
      0.40220103F,
      -0.91555136F,
      -0.9052557F,
      -0.4248672F,
      0.7317446F,
      0.681579F,
      -0.56476325F,
      -0.825253F,
      -0.8403276F,
      -0.54207885F,
      -0.93142813F,
      0.36392525F,
      0.52381986F,
      0.85182905F,
      0.7432804F,
      -0.66898F,
      -0.9853716F,
      -0.17041974F,
      0.46014687F,
      0.88784283F,
      0.8258554F,
      0.56388193F,
      0.6182366F,
      0.785992F,
      0.83315027F,
      -0.55304664F,
      0.15003075F,
      0.9886813F,
      -0.6623304F,
      -0.7492119F,
      -0.66859865F,
      0.74362344F,
      0.7025606F,
      0.7116239F,
      -0.54193896F,
      -0.84041786F,
      -0.33886164F,
      0.9408362F,
      0.833153F,
      0.55304253F,
      -0.29897207F,
      -0.95426184F,
      0.2638523F,
      0.9645631F,
      0.12410874F,
      -0.9922686F,
      -0.7282649F,
      -0.6852957F,
      0.69625F,
      0.71779937F,
      -0.91835356F,
      0.395761F,
      -0.6326102F,
      -0.7744703F,
      -0.9331892F,
      -0.35938552F,
      -0.11537793F,
      -0.99332166F,
      0.9514975F,
      -0.30765656F,
      -0.08987977F,
      -0.9959526F,
      0.6678497F,
      0.7442962F,
      0.79524004F,
      -0.6062947F,
      -0.6462007F,
      -0.7631675F,
      -0.27335986F,
      0.96191186F,
      0.966959F,
      -0.25493184F,
      -0.9792895F,
      0.20246519F,
      -0.5369503F,
      -0.84361386F,
      -0.27003646F,
      -0.9628501F,
      -0.6400277F,
      0.76835185F,
      -0.78545374F,
      -0.6189204F,
      0.060059056F,
      -0.9981948F,
      -0.024557704F,
      0.9996984F,
      -0.65983623F,
      0.7514095F,
      -0.62538946F,
      -0.7803128F,
      -0.6210409F,
      -0.7837782F,
      0.8348889F,
      0.55041856F,
      -0.15922752F,
      0.9872419F,
      0.83676225F,
      0.54756635F,
      -0.8675754F,
      -0.4973057F,
      -0.20226626F,
      -0.97933054F,
      0.939919F,
      0.34139755F,
      0.98774046F,
      -0.1561049F,
      -0.90344554F,
      0.42870283F,
      0.12698042F,
      -0.9919052F,
      -0.3819601F,
      0.92417884F,
      0.9754626F,
      0.22016525F,
      -0.32040158F,
      -0.94728184F,
      -0.9874761F,
      0.15776874F,
      0.025353484F,
      -0.99967855F,
      0.4835131F,
      -0.8753371F,
      -0.28508F,
      -0.9585037F,
      -0.06805516F,
      -0.99768156F,
      -0.7885244F,
      -0.61500347F,
      0.3185392F,
      -0.9479097F,
      0.8880043F,
      0.45983514F,
      0.64769214F,
      -0.76190215F,
      0.98202413F,
      0.18875542F,
      0.93572754F,
      -0.35272372F,
      -0.88948953F,
      0.45695552F,
      0.7922791F,
      0.6101588F,
      0.74838185F,
      0.66326815F,
      -0.728893F,
      -0.68462765F,
      0.8729033F,
      -0.48789328F,
      0.8288346F,
      0.5594937F,
      0.08074567F,
      0.99673474F,
      0.97991484F,
      -0.1994165F,
      -0.5807307F,
      -0.81409574F,
      -0.47000498F,
      -0.8826638F,
      0.2409493F,
      0.9705377F,
      0.9437817F,
      -0.33056942F,
      -0.89279985F,
      -0.45045355F,
      -0.80696225F,
      0.59060305F,
      0.062589735F,
      0.99803936F,
      -0.93125975F,
      0.36435598F,
      0.57774496F,
      0.81621736F,
      -0.3360096F,
      -0.9418586F,
      0.69793206F,
      -0.71616393F,
      -0.0020081573F,
      -0.999998F,
      -0.18272944F,
      -0.98316324F,
      -0.6523912F,
      0.7578824F,
      -0.43026268F,
      -0.9027037F,
      -0.9985126F,
      -0.054520912F,
      -0.010281022F,
      -0.99994713F,
      -0.49460712F,
      0.86911666F,
      -0.299935F,
      0.95395964F,
      0.8165472F,
      0.5772787F,
      0.26974604F,
      0.9629315F,
      -0.7306287F,
      -0.68277496F,
      -0.7590952F,
      -0.65097964F,
      -0.9070538F,
      0.4210146F,
      -0.5104861F,
      -0.859886F,
      0.86133504F,
      0.5080373F,
      0.50078815F,
      -0.8655699F,
      -0.6541582F,
      0.7563578F,
      -0.83827555F,
      -0.54524684F,
      0.6940071F,
      0.7199682F,
      0.06950936F,
      0.9975813F,
      0.17029423F,
      -0.9853933F,
      0.26959732F,
      0.9629731F,
      0.55196124F,
      -0.83386976F,
      0.2256575F,
      -0.9742067F,
      0.42152628F,
      -0.9068162F,
      0.48818734F,
      -0.87273884F,
      -0.3683855F,
      -0.92967314F,
      -0.98253906F,
      0.18605645F,
      0.81256473F,
      0.582871F,
      0.3196461F,
      -0.947537F,
      0.9570914F,
      0.28978625F,
      -0.6876655F,
      -0.7260276F,
      -0.9988771F,
      -0.04737673F,
      -0.1250179F,
      0.9921545F,
      -0.82801336F,
      0.56070834F,
      0.93248636F,
      -0.36120513F,
      0.63946533F,
      0.7688199F,
      -0.016238471F,
      -0.99986815F,
      -0.99550146F,
      -0.094746135F,
      -0.8145332F,
      0.580117F,
      0.4037328F,
      -0.91487694F,
      0.9944263F,
      0.10543368F,
      -0.16247116F,
      0.9867133F,
      -0.9949488F,
      -0.10038388F,
      -0.69953024F,
      0.714603F,
      0.5263415F,
      -0.85027325F,
      -0.5395222F,
      0.8419714F,
      0.65793705F,
      0.7530729F,
      0.014267588F,
      -0.9998982F,
      -0.6734384F,
      0.7392433F,
      0.6394121F,
      -0.7688642F,
      0.9211571F,
      0.38919085F,
      -0.14663722F,
      -0.98919034F,
      -0.7823181F,
      0.6228791F,
      -0.5039611F,
      -0.8637264F,
      -0.774312F,
      -0.632804F
   };
   @Nonnull
   class="kw">private class="kw">static class="kw">final float[] Gradients3D = new float[]{
      0.0F,
      1.0F,
      1.0F,
      0.0F,
      0.0F,
      -1.0F,
      1.0F,
      0.0F,
      0.0F,
      1.0F,
      -1.0F,
      0.0F,
      0.0F,
      -1.0F,
      -1.0F,
      0.0F,
      1.0F,
      0.0F,
      1.0F,
      0.0F,
      -1.0F,
      0.0F,
      1.0F,
      0.0F,
      1.0F,
      0.0F,
      -1.0F,
      0.0F,
      -1.0F,
      0.0F,
      -1.0F,
      0.0F,
      1.0F,
      1.0F,
      0.0F,
      0.0F,
      -1.0F,
      1.0F,
      0.0F,
      0.0F,
      1.0F,
      -1.0F,
      0.0F,
      0.0F,
      -1.0F,
      -1.0F,
      0.0F,
      0.0F,
      0.0F,
      1.0F,
      1.0F,
      0.0F,
      0.0F,
      -1.0F,
      1.0F,
      0.0F,
      0.0F,
      1.0F,
      -1.0F,
      0.0F,
      0.0F,
      -1.0F,
      -1.0F,
      0.0F,
      1.0F,
      0.0F,
      1.0F,
      0.0F,
      -1.0F,
      0.0F,
      1.0F,
      0.0F,
      1.0F,
      0.0F,
      -1.0F,
      0.0F,
      -1.0F,
      0.0F,
      -1.0F,
      0.0F,
      1.0F,
      1.0F,
      0.0F,
      0.0F,
      -1.0F,
      1.0F,
      0.0F,
      0.0F,
      1.0F,
      -1.0F,
      0.0F,
      0.0F,
      -1.0F,
      -1.0F,
      0.0F,
      0.0F,
      0.0F,
      1.0F,
      1.0F,
      0.0F,
      0.0F,
      -1.0F,
      1.0F,
      0.0F,
      0.0F,
      1.0F,
      -1.0F,
      0.0F,
      0.0F,
      -1.0F,
      -1.0F,
      0.0F,
      1.0F,
      0.0F,
      1.0F,
      0.0F,
      -1.0F,
      0.0F,
      1.0F,
      0.0F,
      1.0F,
      0.0F,
      -1.0F,
      0.0F,
      -1.0F,
      0.0F,
      -1.0F,
      0.0F,
      1.0F,
      1.0F,
      0.0F,
      0.0F,
      -1.0F,
      1.0F,
      0.0F,
      0.0F,
      1.0F,
      -1.0F,
      0.0F,
      0.0F,
      -1.0F,
      -1.0F,
      0.0F,
      0.0F,
      0.0F,
      1.0F,
      1.0F,
      0.0F,
      0.0F,
      -1.0F,
      1.0F,
      0.0F,
      0.0F,
      1.0F,
      -1.0F,
      0.0F,
      0.0F,
      -1.0F,
      -1.0F,
      0.0F,
      1.0F,
      0.0F,
      1.0F,
      0.0F,
      -1.0F,
      0.0F,
      1.0F,
      0.0F,
      1.0F,
      0.0F,
      -1.0F,
      0.0F,
      -1.0F,
      0.0F,
      -1.0F,
      0.0F,
      1.0F,
      1.0F,
      0.0F,
      0.0F,
      -1.0F,
      1.0F,
      0.0F,
      0.0F,
      1.0F,
      -1.0F,
      0.0F,
      0.0F,
      -1.0F,
      -1.0F,
      0.0F,
      0.0F,
      0.0F,
      1.0F,
      1.0F,
      0.0F,
      0.0F,
      -1.0F,
      1.0F,
      0.0F,
      0.0F,
      1.0F,
      -1.0F,
      0.0F,
      0.0F,
      -1.0F,
      -1.0F,
      0.0F,
      1.0F,
      0.0F,
      1.0F,
      0.0F,
      -1.0F,
      0.0F,
      1.0F,
      0.0F,
      1.0F,
      0.0F,
      -1.0F,
      0.0F,
      -1.0F,
      0.0F,
      -1.0F,
      0.0F,
      1.0F,
      1.0F,
      0.0F,
      0.0F,
      -1.0F,
      1.0F,
      0.0F,
      0.0F,
      1.0F,
      -1.0F,
      0.0F,
      0.0F,
      -1.0F,
      -1.0F,
      0.0F,
      0.0F,
      1.0F,
      1.0F,
      0.0F,
      0.0F,
      0.0F,
      -1.0F,
      1.0F,
      0.0F,
      -1.0F,
      1.0F,
      0.0F,
      0.0F,
      0.0F,
      -1.0F,
      -1.0F,
      0.0F
   };
   @Nonnull
   class="kw">private class="kw">static class="kw">final float[] randVecs3D = new float[]{
      -0.7292737F,
      -0.66184396F,
      0.17355819F,
      0.0F,
      0.7902921F,
      -0.5480887F,
      -0.2739291F,
      0.0F,
      0.7217579F,
      0.62262124F,
      -0.3023381F,
      0.0F,
      0.5656831F,
      -0.8208298F,
      -0.079000026F,
      0.0F,
      0.76004905F,
      -0.55559796F,
      -0.33709997F,
      0.0F,
      0.37139457F,
      0.50112647F,
      0.78162545F,
      0.0F,
      -0.12770624F,
      -0.4254439F,
      -0.8959289F,
      0.0F,
      -0.2881561F,
      -0.5815839F,
      0.7607406F,
      0.0F,
      0.5849561F,
      -0.6628202F,
      -0.4674352F,
      0.0F,
      0.33071712F,
      0.039165374F,
      0.94291687F,
      0.0F,
      0.8712122F,
      -0.41133744F,
      -0.26793817F,
      0.0F,
      0.580981F,
      0.7021916F,
      0.41156778F,
      0.0F,
      0.5037569F,
      0.6330057F,
      -0.5878204F,
      0.0F,
      0.44937122F,
      0.6013902F,
      0.6606023F,
      0.0F,
      -0.6878404F,
      0.090188906F,
      -0.7202372F,
      0.0F,
      -0.59589565F,
      -0.64693505F,
      0.47579765F,
      0.0F,
      -0.5127052F,
      0.1946922F,
      -0.83619875F,
      0.0F,
      -0.99115074F,
      -0.054102764F,
      -0.12121531F,
      0.0F,
      -0.21497211F,
      0.9720882F,
      -0.09397608F,
      0.0F,
      -0.7518651F,
      -0.54280573F,
      0.37424695F,
      0.0F,
      0.5237069F,
      0.8516377F,
      -0.021078179F,
      0.0F,
      0.6333505F,
      0.19261672F,
      -0.74951047F,
      0.0F,
      -0.06788242F,
      0.39983058F,
      0.9140719F,
      0.0F,
      -0.55386287F,
      -0.47298968F,
      -0.6852129F,
      0.0F,
      -0.72614557F,
      -0.5911991F,
      0.35099334F,
      0.0F,
      -0.9229275F,
      -0.17828088F,
      0.34120494F,
      0.0F,
      -0.6968815F,
      0.65112746F,
      0.30064803F,
      0.0F,
      0.96080446F,
      -0.20983632F,
      -0.18117249F,
      0.0F,
      0.068171464F,
      -0.9743405F,
      0.21450691F,
      0.0F,
      -0.3577285F,
      -0.6697087F,
      -0.65078455F,
      0.0F,
      -0.18686211F,
      0.7648617F,
      -0.61649746F,
      0.0F,
      -0.65416974F,
      0.3967915F,
      0.64390874F,
      0.0F,
      0.699334F,
      -0.6164538F,
      0.36182392F,
      0.0F,
      -0.15466657F,
      0.6291284F,
      0.7617583F,
      0.0F,
      -0.6841613F,
      -0.2580482F,
      -0.68215424F,
      0.0F,
      0.5383981F,
      0.4258655F,
      0.727163F,
      0.0F,
      -0.5026988F,
      -0.7939833F,
      -0.3418837F,
      0.0F,
      0.32029718F,
      0.28344154F,
      0.9039196F,
      0.0F,
      0.86832273F,
      -3.7626564E-4F,
      -0.49599952F,
      0.0F,
      0.79112005F,
      -0.085110456F,
      0.60571057F,
      0.0F,
      -0.04011016F,
      -0.43972486F,
      0.8972364F,
      0.0F,
      0.914512F,
      0.35793462F,
      -0.18854876F,
      0.0F,
      -0.96120393F,
      -0.27564842F,
      0.010246669F,
      0.0F,
      0.65103614F,
      -0.28777993F,
      -0.70237786F,
      0.0F,
      -0.20417863F,
      0.73652375F,
      0.6448596F,
      0.0F,
      -0.7718264F,
      0.37906268F,
      0.5104856F,
      0.0F,
      -0.30600828F,
      -0.7692988F,
      0.56083715F,
      0.0F,
      0.45400733F,
      -0.5024843F,
      0.73578995F,
      0.0F,
      0.48167956F,
      0.6021208F,
      -0.636738F,
      0.0F,
      0.69619805F,
      -0.32221973F,
      0.6414692F,
      0.0F,
      -0.65321606F,
      -0.6781149F,
      0.33685157F,
      0.0F,
      0.50893015F,
      -0.61546624F,
      -0.60182345F,
      0.0F,
      -0.16359198F,
      -0.9133605F,
      -0.37284088F,
      0.0F,
      0.5240802F,
      -0.8437664F,
      0.11575059F,
      0.0F,
      0.5902587F,
      0.4983818F,
      -0.63498837F,
      0.0F,
      0.5863228F,
      0.49476475F,
      0.6414308F,
      0.0F,
      0.6779335F,
      0.23413453F,
      0.6968409F,
      0.0F,
      0.7177054F,
      -0.68589795F,
      0.12017863F,
      0.0F,
      -0.532882F,
      -0.5205125F,
      0.6671608F,
      0.0F,
      -0.8654874F,
      -0.07007271F,
      -0.4960054F,
      0.0F,
      -0.286181F,
      0.79520893F,
      0.53454953F,
      0.0F,
      -0.048495296F,
      0.98108363F,
      -0.18741156F,
      0.0F,
      -0.63585216F,
      0.60583484F,
      0.47818002F,
      0.0F,
      0.62547946F,
      -0.28616196F,
      0.72586966F,
      0.0F,
      -0.258526F,
      0.50619495F,
      -0.8227582F,
      0.0F,
      0.021363068F,
      0.50640166F,
      -0.862033F,
      0.0F,
      0.20011178F,
      0.85992634F,
      0.46955505F,
      0.0F,
      0.47435614F,
      0.6014985F,
      -0.6427953F,
      0.0F,
      0.6622994F,
      -0.52024746F,
      -0.539168F,
      0.0F,
      0.08084973F,
      -0.65327203F,
      0.7527941F,
      0.0F,
      -0.6893687F,
      0.059286036F,
      0.7219805F,
      0.0F,
      -0.11218871F,
      -0.96731853F,
      0.22739525F,
      0.0F,
      0.7344116F,
      0.59796685F,
      -0.3210533F,
      0.0F,
      0.5789393F,
      -0.24888498F,
      0.776457F,
      0.0F,
      0.69881827F,
      0.35571697F,
      -0.6205791F,
      0.0F,
      -0.86368454F,
      -0.27487713F,
      -0.4224826F,
      0.0F,
      -0.4247028F,
      -0.46408808F,
      0.77733505F,
      0.0F,
      0.5257723F,
      -0.84270173F,
      0.11583299F,
      0.0F,
      0.93438303F,
      0.31630248F,
      -0.16395439F,
      0.0F,
      -0.10168364F,
      -0.8057303F,
      -0.58348876F,
      0.0F,
      -0.6529239F,
      0.50602126F,
      -0.5635893F,
      0.0F,
      -0.24652861F,
      -0.9668206F,
      -0.06694497F,
      0.0F,
      -0.9776897F,
      -0.20992506F,
      -0.0073688254F,
      0.0F,
      0.7736893F,
      0.57342446F,
      0.2694238F,
      0.0F,
      -0.6095088F,
      0.4995679F,
      0.6155737F,
      0.0F,
      0.5794535F,
      0.7434547F,
      0.33392924F,
      0.0F,
      -0.8226211F,
      0.081425816F,
      0.56272936F,
      0.0F,
      -0.51038545F,
      0.47036678F,
      0.719904F,
      0.0F,
      -0.5764972F,
      -0.072316565F,
      -0.81389266F,
      0.0F,
      0.7250629F,
      0.39499715F,
      -0.56414634F,
      0.0F,
      -0.1525424F,
      0.48608407F,
      -0.8604958F,
      0.0F,
      -0.55509764F,
      -0.49578208F,
      0.6678823F,
      0.0F,
      -0.18836144F,
      0.91458696F,
      0.35784173F,
      0.0F,
      0.76255566F,
      -0.54144084F,
      -0.35404897F,
      0.0F,
      -0.5870232F,
      -0.3226498F,
      -0.7424964F,
      0.0F,
      0.30511242F,
      0.2262544F,
      -0.9250488F,
      0.0F,
      0.63795763F,
      0.57724243F,
      -0.50970703F,
      0.0F,
      -0.5966776F,
      0.14548524F,
      -0.7891831F,
      0.0F,
      -0.65833056F,
      0.65554875F,
      -0.36994147F,
      0.0F,
      0.74348927F,
      0.23510846F,
      0.6260573F,
      0.0F,
      0.5562114F,
      0.82643604F,
      -0.08736329F,
      0.0F,
      -0.302894F,
      -0.8251527F,
      0.47684193F,
      0.0F,
      0.11293438F,
      -0.9858884F,
      -0.123571075F,
      0.0F,
      0.5937653F,
      -0.5896814F,
      0.5474657F,
      0.0F,
      0.6757964F,
      -0.58357584F,
      -0.45026484F,
      0.0F,
      0.7242303F,
      -0.11527198F,
      0.67985505F,
      0.0F,
      -0.9511914F,
      0.0753624F,
      -0.29925808F,
      0.0F,
      0.2539471F,
      -0.18863393F,
      0.9486454F,
      0.0F,
      0.5714336F,
      -0.16794509F,
      -0.8032796F,
      0.0F,
      -0.06778235F,
      0.39782694F,
      0.9149532F,
      0.0F,
      0.6074973F,
      0.73306F,
      -0.30589226F,
      0.0F,
      -0.54354787F,
      0.16758224F,
      0.8224791F,
      0.0F,
      -0.5876678F,
      -0.3380045F,
      -0.7351187F,
      0.0F,
      -0.79675627F,
      0.040978227F,
      -0.60290986F,
      0.0F,
      -0.19963509F,
      0.8706295F,
      0.4496111F,
      0.0F,
      -0.027876602F,
      -0.91062325F,
      -0.4122962F,
      0.0F,
      -0.7797626F,
      -0.6257635F,
      0.019757755F,
      0.0F,
      -0.5211233F,
      0.74016446F,
      -0.42495546F,
      0.0F,
      0.8575425F,
      0.4053273F,
      -0.31675017F,
      0.0F,
      0.10452233F,
      0.8390196F,
      -0.53396744F,
      0.0F,
      0.3501823F,
      0.9242524F,
      -0.15208502F,
      0.0F,
      0.19878499F,
      0.076476134F,
      0.9770547F,
      0.0F,
      0.78459966F,
      0.6066257F,
      -0.12809642F,
      0.0F,
      0.09006737F,
      -0.97509897F,
      -0.20265691F,
      0.0F,
      -0.82743436F,
      -0.54229957F,
      0.14582036F,
      0.0F,
      -0.34857976F,
      -0.41580227F,
      0.8400004F,
      0.0F,
      -0.2471779F,
      -0.730482F,
      -0.6366311F,
      0.0F,
      -0.3700155F,
      0.8577948F,
      0.35675845F,
      0.0F,
      0.59133947F,
      -0.54831195F,
      -0.59133035F,
      0.0F,
      0.120487355F,
      -0.7626472F,
      -0.6354935F,
      0.0F,
      0.6169593F,
      0.03079648F,
      0.7863923F,
      0.0F,
      0.12581569F,
      -0.664083F,
      -0.73699677F,
      0.0F,
      -0.6477565F,
      -0.17401473F,
      -0.74170774F,
      0.0F,
      0.6217889F,
      -0.7804431F,
      -0.06547655F,
      0.0F,
      0.6589943F,
      -0.6096988F,
      0.44044736F,
      0.0F,
      -0.26898375F,
      -0.6732403F,
      -0.68876356F,
      0.0F,
      -0.38497752F,
      0.56765425F,
      0.7277094F,
      0.0F,
      0.57544446F,
      0.81104714F,
      -0.10519635F,
      0.0F,
      0.91415936F,
      0.3832948F,
      0.13190056F,
      0.0F,
      -0.10792532F,
      0.9245494F,
      0.36545935F,
      0.0F,
      0.3779771F,
      0.30431488F,
      0.87437165F,
      0.0F,
      -0.21428852F,
      -0.8259286F,
      0.5214617F,
      0.0F,
      0.58025444F,
      0.41480985F,
      -0.7008834F,
      0.0F,
      -0.19826609F,
      0.85671616F,
      -0.47615966F,
      0.0F,
      -0.033815537F,
      0.37731808F,
      -0.9254661F,
      0.0F,
      -0.68679225F,
      -0.6656598F,
      0.29191336F,
      0.0F,
      0.7731743F,
      -0.28757936F,
      -0.565243F,
      0.0F,
      -0.09655942F,
      0.91937083F,
      -0.3813575F,
      0.0F,
      0.27157024F,
      -0.957791F,
      -0.09426606F,
      0.0F,
      0.24510157F,
      -0.6917999F,
      -0.6792188F,
      0.0F,
      0.97770077F,
      -0.17538553F,
      0.115503654F,
      0.0F,
      -0.522474F,
      0.8521607F,
      0.029036159F,
      0.0F,
      -0.77348804F,
      -0.52612925F,
      0.35341796F,
      0.0F,
      -0.71344924F,
      -0.26954725F,
      0.6467878F,
      0.0F,
      0.16440372F,
      0.5105846F,
      -0.84396374F,
      0.0F,
      0.6494636F,
      0.055856112F,
      0.7583384F,
      0.0F,
      -0.4711971F,
      0.50172806F,
      -0.7254256F,
      0.0F,
      -0.63357645F,
      -0.23816863F,
      -0.7361091F,
      0.0F,
      -0.9021533F,
      -0.2709478F,
      -0.33571818F,
      0.0F,
      -0.3793711F,
      0.8722581F,
      0.3086152F,
      0.0F,
      -0.68555987F,
      -0.32501432F,
      0.6514394F,
      0.0F,
      0.29009423F,
      -0.7799058F,
      -0.5546101F,
      0.0F,
      -0.20983194F,
      0.8503707F,
      0.48253515F,
      0.0F,
      -0.45926037F,
      0.6598504F,
      -0.5947077F,
      0.0F,
      0.87159455F,
      0.09616365F,
      -0.48070312F,
      0.0F,
      -0.6776666F,
      0.71185046F,
      -0.1844907F,
      0.0F,
      0.7044378F,
      0.3124276F,
      0.637304F,
      0.0F,
      -0.7052319F,
      -0.24010932F,
      -0.6670798F,
      0.0F,
      0.081921004F,
      -0.72073364F,
      -0.68835455F,
      0.0F,
      -0.6993681F,
      -0.5875763F,
      -0.4069869F,
      0.0F,
      -0.12814544F,
      0.6419896F,
      0.75592864F,
      0.0F,
      -0.6337388F,
      -0.67854714F,
      -0.3714147F,
      0.0F,
      0.5565052F,
      -0.21688876F,
      -0.8020357F,
      0.0F,
      -0.57915545F,
      0.7244372F,
      -0.3738579F,
      0.0F,
      0.11757791F,
      -0.7096451F,
      0.69467926F,
      0.0F,
      -0.613462F,
      0.13236311F,
      0.7785528F,
      0.0F,
      0.69846356F,
      -0.029805163F,
      -0.7150247F,
      0.0F,
      0.83180827F,
      -0.3930172F,
      0.39195976F,
      0.0F,
      0.14695764F,
      0.055416517F,
      -0.98758924F,
      0.0F,
      0.70886856F,
      -0.2690504F,
      0.65201014F,
      0.0F,
      0.27260533F,
      0.67369765F,
      -0.68688995F,
      0.0F,
      -0.65912956F,
      0.30354586F,
      -0.68804663F,
      0.0F,
      0.48151314F,
      -0.752827F,
      0.4487723F,
      0.0F,
      0.943001F,
      0.16756473F,
      -0.28752613F,
      0.0F,
      0.43480295F,
      0.7695305F,
      -0.46772778F,
      0.0F,
      0.39319962F,
      0.5944736F,
      0.70142365F,
      0.0F,
      0.72543365F,
      -0.60392565F,
      0.33018148F,
      0.0F,
      0.75902355F,
      -0.6506083F,
      0.024333132F,
      0.0F,
      -0.8552769F,
      -0.3430043F,
      0.38839358F,
      0.0F,
      -0.6139747F,
      0.6981725F,
      0.36822575F,
      0.0F,
      -0.74659055F,
      -0.575201F,
      0.33428493F,
      0.0F,
      0.5730066F,
      0.8105555F,
      -0.12109168F,
      0.0F,
      -0.92258775F,
      -0.3475211F,
      -0.16751404F,
      0.0F,
      -0.71058166F,
      -0.47196922F,
      -0.5218417F,
      0.0F,
      -0.0856461F,
      0.35830015F,
      0.9296697F,
      0.0F,
      -0.8279698F,
      -0.2043157F,
      0.5222271F,
      0.0F,
      0.42794403F,
      0.278166F,
      0.8599346F,
      0.0F,
      0.539908F,
      -0.78571206F,
      -0.3019204F,
      0.0F,
      0.5678404F,
      -0.5495414F,
      -0.61283076F,
      0.0F,
      -0.9896071F,
      0.13656391F,
      -0.045034185F,
      0.0F,
      -0.6154343F,
      -0.64408755F,
      0.45430374F,
      0.0F,
      0.10742044F,
      -0.79463404F,
      0.59750944F,
      0.0F,
      -0.359545F,
      -0.888553F,
      0.28495783F,
      0.0F,
      -0.21804053F,
      0.1529889F,
      0.9638738F,
      0.0F,
      -0.7277432F,
      -0.61640507F,
      -0.30072346F,
      0.0F,
      0.7249729F,
      -0.0066971947F,
      0.68874484F,
      0.0F,
      -0.5553659F,
      -0.5336586F,
      0.6377908F,
      0.0F,
      0.5137558F,
      0.79762083F,
      -0.316F,
      0.0F,
      -0.3794025F,
      0.92456084F,
      -0.035227515F,
      0.0F,
      0.82292485F,
      0.27453658F,
      -0.49741766F,
      0.0F,
      -0.5404114F,
      0.60911417F,
      0.5804614F,
      0.0F,
      0.8036582F,
      -0.27030295F,
      0.5301602F,
      0.0F,
      0.60443187F,
      0.68329686F,
      0.40959433F,
      0.0F,
      0.06389989F,
      0.96582085F,
      -0.2512108F,
      0.0F,
      0.10871133F,
      0.74024713F,
      -0.6634878F,
      0.0F,
      -0.7134277F,
      -0.6926784F,
      0.10591285F,
      0.0F,
      0.64588976F,
      -0.57245487F,
      -0.50509584F,
      0.0F,
      -0.6553931F,
      0.73814714F,
      0.15999562F,
      0.0F,
      0.39109614F,
      0.91888714F,
      -0.05186756F,
      0.0F,
      -0.48790225F,
      -0.5904377F,
      0.64291114F,
      0.0F,
      0.601479F,
      0.77074414F,
      -0.21018201F,
      0.0F,
      -0.5677173F,
      0.7511361F,
      0.33688518F,
      0.0F,
      0.7858574F,
      0.22667466F,
      0.5753667F,
      0.0F,
      -0.45203456F,
      -0.6042227F,
      -0.65618575F,
      0.0F,
      0.0022721163F,
      0.4132844F,
      -0.9105992F,
      0.0F,
      -0.58157516F,
      -0.5162926F,
      0.6286591F,
      0.0F,
      -0.03703705F,
      0.8273786F,
      0.5604221F,
      0.0F,
      -0.51196927F,
      0.79535437F,
      -0.324498F,
      0.0F,
      -0.26824173F,
      -0.957229F,
      -0.10843876F,
      0.0F,
      -0.23224828F,
      -0.9679131F,
      -0.09594243F,
      0.0F,
      0.3554329F,
      -0.8881506F,
      0.29130062F,
      0.0F,
      0.73465204F,
      -0.4371373F,
      0.5188423F,
      0.0F,
      0.998512F,
      0.046590112F,
      -0.028339446F,
      0.0F,
      -0.37276876F,
      -0.9082481F,
      0.19007573F,
      0.0F,
      0.9173738F,
      -0.3483642F,
      0.19252984F,
      0.0F,
      0.2714911F,
      0.41475296F,
      -0.86848867F,
      0.0F,
      0.5131763F,
      -0.71163344F,
      0.4798207F,
      0.0F,
      -0.87373537F,
      0.18886992F,
      -0.44823506F,
      0.0F,
      0.84600437F,
      -0.3725218F,
      0.38145F,
      0.0F,
      0.89787275F,
      -0.17802091F,
      -0.40265754F,
      0.0F,
      0.21780656F,
      -0.9698323F,
      -0.10947895F,
      0.0F,
      -0.15180314F,
      -0.7788918F,
      -0.6085091F,
      0.0F,
      -0.2600385F,
      -0.4755398F,
      -0.840382F,
      0.0F,
      0.5723135F,
      -0.7474341F,
      -0.33734185F,
      0.0F,
      -0.7174141F,
      0.16990171F,
      -0.67561114F,
      0.0F,
      -0.6841808F,
      0.021457076F,
      -0.72899675F,
      0.0F,
      -0.2007448F,
      0.06555606F,
      -0.9774477F,
      0.0F,
      -0.11488037F,
      -0.8044887F,
      0.5827524F,
      0.0F,
      -0.787035F,
      0.03447489F,
      0.6159443F,
      0.0F,
      -0.20155965F,
      0.68598723F,
      0.69913894F,
      0.0F,
      -0.085810825F,
      -0.10920836F,
      -0.99030805F,
      0.0F,
      0.5532693F,
      0.73252505F,
      -0.39661077F,
      0.0F,
      -0.18424894F,
      -0.9777375F,
      -0.100407675F,
      0.0F,
      0.07754738F,
      -0.9111506F,
      0.40471104F,
      0.0F,
      0.13998385F,
      0.7601631F,
      -0.63447344F,
      0.0F,
      0.44844192F,
      -0.84528923F,
      0.29049253F,
      0.0F
   };
   class="kw">private class="kw">static class="kw">final int primeX = 501125321;
   class="kw">private class="kw">static class="kw">final int primeY = 1136930381;
   class="kw">private class="kw">static class="kw">final int primeZ = 1720413743;

   class="kw">public FastNoiseLite() {
   }

   class="kw">public FastNoiseLite(int var1) {
      this.setSeed(var1);
   }

   class="kw">public void setSeed(int var1) {
      this.mSeed = var1;
   }

   class="kw">public void setFrequency(float var1) {
      this.mFrequency = var1;
   }

   class="kw">public void setNoiseType(FastNoiseLite.NoiseType var1) {
      this.mNoiseType = var1;
      this.UpdateTransformType3D();
   }

   class="kw">public void SetRotationType3D(FastNoiseLite.RotationType3D var1) {
      this.mRotationType3D = var1;
      this.UpdateTransformType3D();
      this.UpdateWarpTransformType3D();
   }

   class="kw">public void setFractalType(FastNoiseLite.FractalType var1) {
      this.mFractalType = var1;
   }

   class="kw">public void setFractalOctaves(int var1) {
      this.mOctaves = var1;
      this.CalculateFractalBounding();
   }

   class="kw">public void SetFractalLacunarity(float var1) {
      this.mLacunarity = var1;
   }

   class="kw">public void SetFractalGain(float var1) {
      this.mGain = var1;
      this.CalculateFractalBounding();
   }

   class="kw">public void SetFractalWeightedStrength(float var1) {
      this.mWeightedStrength = var1;
   }

   class="kw">public void SetFractalPingPongStrength(float var1) {
      this.mPingPongStrength = var1;
   }

   class="kw">public void setCellularDistanceFunction(FastNoiseLite.CellularDistanceFunction var1) {
      this.mCellularDistanceFunction = var1;
   }

   class="kw">public void setCellularReturnType(FastNoiseLite.CellularReturnType var1) {
      this.mCellularReturnType = var1;
   }

   class="kw">public void setCellularJitter(float var1) {
      this.mCellularJitterModifier = var1;
   }

   class="kw">public void setDomainWarpType(FastNoiseLite.DomainWarpType var1) {
      this.mDomainWarpType = var1;
      this.UpdateWarpTransformType3D();
   }

   class="kw">public void setDomainWarpAmp(float var1) {
      this.mDomainWarpAmp = var1;
   }

   class="kw">public void setDomainWarpFreq(float var1) {
      this.mDomainWarpFreq = var1;
   }

   class="kw">public float getNoise(double var1, double var3) {
      var1 *= this.mFrequency;
      var3 *= this.mFrequency;
      class="kw">switch (this.mNoiseType) {
         case OpenSimplex2:
         case OpenSimplex2S:
            double var5 = 1.7320508075688772;
            double var7 = 0.3660254037844386;
            double var9 = (var1 + var3) * 0.3660254037844386;
            var1 += var9;
            var3 += var9;
         class="kw">default:
            class="kw">return class="kw">switch (this.mFractalType) {
               case FBm -> this.GenFractalFBm(var1, var3);
               case Ridged -> this.GenFractalRidged(var1, var3);
               case PingPong -> this.GenFractalPingPong(var1, var3);
               class="kw">default -> this.GenNoiseSingle(this.mSeed, var1, var3);
            };
      }
   }

   class="kw">public float getNoise(double var1, double var3, double var5) {
      var1 *= this.mFrequency;
      var3 *= this.mFrequency;
      var5 *= this.mFrequency;
      class="kw">switch (this.mTransformType3D) {
         case ImproveXYPlanes: {
            double var17 = var1 + var3;
            double var19 = var17 * -0.211324865405187;
            var5 *= 0.577350269189626;
            var1 += var19 - var5;
            var3 = var3 + var19 - var5;
            var5 += var17 * 0.577350269189626;
            break;
         }
         case ImproveXZPlanes: {
            double var16 = var1 + var5;
            double var18 = var16 * -0.211324865405187;
            var3 *= 0.577350269189626;
            var1 += var18 - var3;
            var5 += var18 - var3;
            var3 += var16 * 0.577350269189626;
            break;
         }
         case DefaultOpenSimplex2:
            double var7 = 0.6666666666666666;
            double var9 = (var1 + var3 + var5) * 0.6666666666666666;
            var1 = var9 - var1;
            var3 = var9 - var3;
            var5 = var9 - var5;
      }
      class="kw">return class="kw">switch (this.mFractalType) {
         case FBm -> this.GenFractalFBm(var1, var3, var5);
         case Ridged -> this.GenFractalRidged(var1, var3, var5);
         case PingPong -> this.GenFractalPingPong(var1, var3, var5);
         class="kw">default -> this.GenNoiseSingle(this.mSeed, var1, var3, var5);
      };
   }

   class="kw">public void DomainWarp(@Nonnull FastNoiseLite.Vector2 var1) {
      class="kw">switch (this.mFractalType) {
         case DomainWarpProgressive:
            this.DomainWarpFractalProgressive(var1);
            break;
         case DomainWarpIndependent:
            this.DomainWarpFractalIndependent(var1);
            break;
         class="kw">default:
            this.DomainWarpSingle(var1);
      }
   }

   class="kw">public void DomainWarp(@Nonnull FastNoiseLite.Vector3 var1) {
      class="kw">switch (this.mFractalType) {
         case DomainWarpProgressive:
            this.DomainWarpFractalProgressive(var1);
            break;
         case DomainWarpIndependent:
            this.DomainWarpFractalIndependent(var1);
            break;
         class="kw">default:
            this.DomainWarpSingle(var1);
      }
   }

   class="kw">private class="kw">static float FastMin(float var0, float var1) {
      class="kw">return var0 < var1 ? var0 : var1;
   }

   class="kw">private class="kw">static float FastMax(float var0, float var1) {
      class="kw">return var0 > var1 ? var0 : var1;
   }

   class="kw">private class="kw">static float FastAbs(float var0) {
      class="kw">return var0 < 0.0F ? -var0 : var0;
   }

   class="kw">private class="kw">static float FastSqrt(float var0) {
      class="kw">return (float)Math.sqrt(var0);
   }

   class="kw">private class="kw">static int FastFloor(double var0) {
      class="kw">return var0 >= 0.0 ? (int)var0 : (int)var0 - 1;
   }

   class="kw">public class="kw">static int fastRound(double var0) {
      class="kw">return var0 >= 0.0 ? (int)(var0 + 0.5) : (int)(var0 - 0.5);
   }

   class="kw">private class="kw">static float Lerp(float var0, float var1, float var2) {
      class="kw">return var0 + var2 * (var1 - var0);
   }

   class="kw">private class="kw">static float InterpHermite(float var0) {
      class="kw">return var0 * var0 * (3.0F - 2.0F * var0);
   }

   class="kw">private class="kw">static float InterpQuintic(float var0) {
      class="kw">return var0 * var0 * var0 * (var0 * (var0 * 6.0F - 15.0F) + 10.0F);
   }

   class="kw">private class="kw">static float CubicLerp(float var0, float var1, float var2, float var3, float var4) {
      float var5 = var3 - var2 - (var0 - var1);
      class="kw">return var4 * var4 * var4 * var5 + var4 * var4 * (var0 - var1 - var5) + var4 * (var2 - var0) + var1;
   }

   class="kw">private class="kw">static float PingPong(float var0) {
      var0 -= (int)(var0 * 0.5F) * 2;
      class="kw">return var0 < 1.0F ? var0 : 2.0F - var0;
   }

   class="kw">private void CalculateFractalBounding() {
      float var1 = FastAbs(this.mGain);
      float var2 = var1;
      float var3 = 1.0F;

      for (int var4 = 1; var4 < this.mOctaves; var4++) {
         var3 += var2;
         var2 *= var1;
      }

      this.mFractalBounding = 1.0F / var3;
   }

   class="kw">private class="kw">static int hash(int var0, int var1, int var2) {
      int var3 = var0 ^ var1 ^ var2;
      class="kw">return var3 * 668265261;
   }

   class="kw">private class="kw">static int hash(int var0, int var1, int var2, int var3) {
      int var4 = var0 ^ var1 ^ var2 ^ var3;
      class="kw">return var4 * 668265261;
   }

   class="kw">private class="kw">static float ValCoord(int var0, int var1, int var2) {
      int var3 = hash(var0, var1, var2);
      var3 *= var3;
      var3 ^= var3 << 19;
      class="kw">return var3 * 4.656613E-10F;
   }

   class="kw">private class="kw">static float ValCoord(int var0, int var1, int var2, int var3) {
      int var4 = hash(var0, var1, var2, var3);
      var4 *= var4;
      var4 ^= var4 << 19;
      class="kw">return var4 * 4.656613E-10F;
   }

   class="kw">private class="kw">static float GradCoord(int var0, int var1, int var2, float var3, float var4) {
      int var5 = hash(var0, var1, var2);
      var5 ^= var5 >> 15;
      var5 &= 254;
      float var6 = Gradients2D[var5];
      float var7 = Gradients2D[var5 | 1];
      class="kw">return var3 * var6 + var4 * var7;
   }

   class="kw">private class="kw">static float GradCoord(int var0, int var1, int var2, int var3, float var4, float var5, float var6) {
      int var7 = hash(var0, var1, var2, var3);
      var7 ^= var7 >> 15;
      var7 &= 252;
      float var8 = Gradients3D[var7];
      float var9 = Gradients3D[var7 | 1];
      float var10 = Gradients3D[var7 | 2];
      class="kw">return var4 * var8 + var5 * var9 + var6 * var10;
   }

   class="kw">private float GenNoiseSingle(int var1, double var2, double var4) {
      class="kw">return class="kw">switch (this.mNoiseType) {
         case OpenSimplex2 -> this.SingleSimplex(var1, var2, var4);
         case OpenSimplex2S -> this.SingleOpenSimplex2S(var1, var2, var4);
         case Cellular -> this.SingleCellular(var1, var2, var4);
         case Perlin -> this.SinglePerlin(var1, var2, var4);
         case ValueCubic -> this.SingleValueCubic(var1, var2, var4);
         case Value -> this.SingleValue(var1, var2, var4);
      };
   }

   class="kw">private float GenNoiseSingle(int var1, double var2, double var4, double var6) {
      class="kw">return class="kw">switch (this.mNoiseType) {
         case OpenSimplex2 -> this.SingleOpenSimplex2(var1, var2, var4, var6);
         case OpenSimplex2S -> this.SingleOpenSimplex2S(var1, var2, var4, var6);
         case Cellular -> this.SingleCellular(var1, var2, var4, var6);
         case Perlin -> this.SinglePerlin(var1, var2, var4, var6);
         case ValueCubic -> this.SingleValueCubic(var1, var2, var4, var6);
         case Value -> this.SingleValue(var1, var2, var4, var6);
      };
   }

   class="kw">private void UpdateTransformType3D() {
      class="kw">switch (this.mRotationType3D) {
         case ImproveXYPlanes:
            this.mTransformType3D = FastNoiseLite.TransformType3D.ImproveXYPlanes;
            break;
         case ImproveXZPlanes:
            this.mTransformType3D = FastNoiseLite.TransformType3D.ImproveXZPlanes;
            break;
         class="kw">default:
            class="kw">switch (this.mNoiseType) {
               case OpenSimplex2:
               case OpenSimplex2S:
                  this.mTransformType3D = FastNoiseLite.TransformType3D.DefaultOpenSimplex2;
                  break;
               class="kw">default:
                  this.mTransformType3D = FastNoiseLite.TransformType3D.None;
            }
      }
   }

   class="kw">private void UpdateWarpTransformType3D() {
      class="kw">switch (this.mRotationType3D) {
         case ImproveXYPlanes:
            this.mWarpTransformType3D = FastNoiseLite.TransformType3D.ImproveXYPlanes;
            break;
         case ImproveXZPlanes:
            this.mWarpTransformType3D = FastNoiseLite.TransformType3D.ImproveXZPlanes;
            break;
         class="kw">default:
            class="kw">switch (this.mDomainWarpType) {
               case OpenSimplex2:
               case OpenSimplex2Reduced:
                  this.mWarpTransformType3D = FastNoiseLite.TransformType3D.DefaultOpenSimplex2;
                  break;
               class="kw">default:
                  this.mWarpTransformType3D = FastNoiseLite.TransformType3D.None;
            }
      }
   }

   class="kw">private float GenFractalFBm(double var1, double var3) {
      int var5 = this.mSeed;
      float var6 = 0.0F;
      float var7 = this.mFractalBounding;

      for (int var8 = 0; var8 < this.mOctaves; var8++) {
         float var9 = this.GenNoiseSingle(var5++, var1, var3);
         var6 += var9 * var7;
         var7 *= Lerp(1.0F, FastMin(var9 + 1.0F, 2.0F) * 0.5F, this.mWeightedStrength);
         var1 *= this.mLacunarity;
         var3 *= this.mLacunarity;
         var7 *= this.mGain;
      }

      class="kw">return var6;
   }

   class="kw">private float GenFractalFBm(double var1, double var3, double var5) {
      int var7 = this.mSeed;
      float var8 = 0.0F;
      float var9 = this.mFractalBounding;

      for (int var10 = 0; var10 < this.mOctaves; var10++) {
         float var11 = this.GenNoiseSingle(var7++, var1, var3, var5);
         var8 += var11 * var9;
         var9 *= Lerp(1.0F, (var11 + 1.0F) * 0.5F, this.mWeightedStrength);
         var1 *= this.mLacunarity;
         var3 *= this.mLacunarity;
         var5 *= this.mLacunarity;
         var9 *= this.mGain;
      }

      class="kw">return var8;
   }

   class="kw">private float GenFractalRidged(double var1, double var3) {
      int var5 = this.mSeed;
      float var6 = 0.0F;
      float var7 = this.mFractalBounding;

      for (int var8 = 0; var8 < this.mOctaves; var8++) {
         float var9 = FastAbs(this.GenNoiseSingle(var5++, var1, var3));
         var6 += (var9 * -2.0F + 1.0F) * var7;
         var7 *= Lerp(1.0F, 1.0F - var9, this.mWeightedStrength);
         var1 *= this.mLacunarity;
         var3 *= this.mLacunarity;
         var7 *= this.mGain;
      }

      class="kw">return var6;
   }

   class="kw">private float GenFractalRidged(double var1, double var3, double var5) {
      int var7 = this.mSeed;
      float var8 = 0.0F;
      float var9 = this.mFractalBounding;

      for (int var10 = 0; var10 < this.mOctaves; var10++) {
         float var11 = FastAbs(this.GenNoiseSingle(var7++, var1, var3, var5));
         var8 += (var11 * -2.0F + 1.0F) * var9;
         var9 *= Lerp(1.0F, 1.0F - var11, this.mWeightedStrength);
         var1 *= this.mLacunarity;
         var3 *= this.mLacunarity;
         var5 *= this.mLacunarity;
         var9 *= this.mGain;
      }

      class="kw">return var8;
   }

   class="kw">private float GenFractalPingPong(double var1, double var3) {
      int var5 = this.mSeed;
      float var6 = 0.0F;
      float var7 = this.mFractalBounding;

      for (int var8 = 0; var8 < this.mOctaves; var8++) {
         float var9 = PingPong((this.GenNoiseSingle(var5++, var1, var3) + 1.0F) * this.mPingPongStrength);
         var6 += (var9 - 0.5F) * 2.0F * var7;
         var7 *= Lerp(1.0F, var9, this.mWeightedStrength);
         var1 *= this.mLacunarity;
         var3 *= this.mLacunarity;
         var7 *= this.mGain;
      }

      class="kw">return var6;
   }

   class="kw">private float GenFractalPingPong(double var1, double var3, double var5) {
      int var7 = this.mSeed;
      float var8 = 0.0F;
      float var9 = this.mFractalBounding;

      for (int var10 = 0; var10 < this.mOctaves; var10++) {
         float var11 = PingPong((this.GenNoiseSingle(var7++, var1, var3, var5) + 1.0F) * this.mPingPongStrength);
         var8 += (var11 - 0.5F) * 2.0F * var9;
         var9 *= Lerp(1.0F, var11, this.mWeightedStrength);
         var1 *= this.mLacunarity;
         var3 *= this.mLacunarity;
         var5 *= this.mLacunarity;
         var9 *= this.mGain;
      }

      class="kw">return var8;
   }

   class="kw">private float SingleSimplex(int var1, double var2, double var4) {
      float var6 = 1.7320508F;
      float var7 = 0.21132487F;
      int var8 = FastFloor(var2);
      int var9 = FastFloor(var4);
      float var10 = (float)(var2 - var8);
      float var11 = (float)(var4 - var9);
      float var12 = (var10 + var11) * 0.21132487F;
      float var13 = var10 - var12;
      float var14 = var11 - var12;
      var8 *= 501125321;
      var9 *= 1136930381;
      float var18 = 0.5F - var13 * var13 - var14 * var14;
      float var15;
      if (var18 <= 0.0F) {
         var15 = 0.0F;
      } else {
         var15 = var18 * var18 * (var18 * var18) * GradCoord(var1, var8, var9, var13, var14);
      }

      float var19 = 3.1547005F * var12 + (-0.6666666F + var18);
      float var17;
      if (var19 <= 0.0F) {
         var17 = 0.0F;
      } else {
         float var20 = var13 + -0.57735026F;
         float var21 = var14 + -0.57735026F;
         var17 = var19 * var19 * (var19 * var19) * GradCoord(var1, var8 + 501125321, var9 + 1136930381, var20, var21);
      }

      float var16;
      if (var14 > var13) {
         float var25 = var13 + 0.21132487F;
         float var27 = var14 + -0.7886751F;
         float var22 = 0.5F - var25 * var25 - var27 * var27;
         if (var22 <= 0.0F) {
            var16 = 0.0F;
         } else {
            var16 = var22 * var22 * (var22 * var22) * GradCoord(var1, var8, var9 + 1136930381, var25, var27);
         }
      } else {
         float var26 = var13 + -0.7886751F;
         float var28 = var14 + 0.21132487F;
         float var29 = 0.5F - var26 * var26 - var28 * var28;
         if (var29 <= 0.0F) {
            var16 = 0.0F;
         } else {
            var16 = var29 * var29 * (var29 * var29) * GradCoord(var1, var8 + 501125321, var9, var26, var28);
         }
      }

      class="kw">return (var15 + var16 + var17) * 99.83685F;
   }

   class="kw">private float SingleOpenSimplex2(int var1, double var2, double var4, double var6) {
      int var8 = fastRound(var2);
      int var9 = fastRound(var4);
      int var10 = fastRound(var6);
      float var11 = (float)(var2 - var8);
      float var12 = (float)(var4 - var9);
      float var13 = (float)(var6 - var10);
      int var14 = (int)(-1.0F - var11) | 1;
      int var15 = (int)(-1.0F - var12) | 1;
      int var16 = (int)(-1.0F - var13) | 1;
      float var17 = var14 * -var11;
      float var18 = var15 * -var12;
      float var19 = var16 * -var13;
      var8 *= 501125321;
      var9 *= 1136930381;
      var10 *= 1720413743;
      float var20 = 0.0F;
      float var21 = 0.6F - var11 * var11 - (var12 * var12 + var13 * var13);
      int var22 = 0;

      while (true) {
         if (var21 > 0.0F) {
            var20 += var21 * var21 * (var21 * var21) * GradCoord(var1, var8, var9, var10, var11, var12, var13);
         }

         if (var17 >= var18 && var17 >= var19) {
            float var30 = var21 + var17 + var17;
            if (var30 > 1.0F) {
               var20 += --var30 * var30 * (var30 * var30) * GradCoord(var1, var8 - var14 * 501125321, var9, var10, var11 + var14, var12, var13);
            }
         } else if (var18 > var17 && var18 >= var19) {
            float var28 = var21 + var18 + var18;
            if (var28 > 1.0F) {
               var20 += --var28 * var28 * (var28 * var28) * GradCoord(var1, var8, var9 - var15 * 1136930381, var10, var11, var12 + var15, var13);
            }
         } else {
            float var23 = var21 + var19 + var19;
            if (var23 > 1.0F) {
               var20 += --var23 * var23 * (var23 * var23) * GradCoord(var1, var8, var9, var10 - var16 * 1720413743, var11, var12, var13 + var16);
            }
         }

         if (var22 == 1) {
            class="kw">return var20 * 32.694283F;
         }

         var17 = 0.5F - var17;
         var18 = 0.5F - var18;
         var19 = 0.5F - var19;
         var11 = var14 * var17;
         var12 = var15 * var18;
         var13 = var16 * var19;
         var21 += 0.75F - var17 - (var18 + var19);
         var8 += var14 >> 1 & 501125321;
         var9 += var15 >> 1 & 1136930381;
         var10 += var16 >> 1 & 1720413743;
         var14 = -var14;
         var15 = -var15;
         var16 = -var16;
         var1 = ~var1;
         var22++;
      }
   }

   class="kw">private float SingleOpenSimplex2S(int var1, double var2, double var4) {
      double var6 = 1.7320508075688772;
      double var8 = 0.21132486540518713;
      int var10 = FastFloor(var2);
      int var11 = FastFloor(var4);
      float var12 = (float)(var2 - var10);
      float var13 = (float)(var4 - var11);
      var10 *= 501125321;
      var11 *= 1136930381;
      int var14 = var10 + 501125321;
      int var15 = var11 + 1136930381;
      float var16 = (var12 + var13) * 0.21132487F;
      float var17 = var12 - var16;
      float var18 = var13 - var16;
      float var19 = 0.6666667F - var17 * var17 - var18 * var18;
      float var20 = var19 * var19 * (var19 * var19) * GradCoord(var1, var10, var11, var17, var18);
      float var21 = 3.1547005F * var16 + (-0.6666667F + var19);
      float var22 = var17 - 0.57735026F;
      float var23 = var18 - 0.57735026F;
      var20 += var21 * var21 * (var21 * var21) * GradCoord(var1, var14, var15, var22, var23);
      float var24 = var12 - var13;
      if (var16 > 0.21132486540518713) {
         if (var12 + var24 > 1.0F) {
            float var25 = var17 + -1.3660254F;
            float var26 = var18 + -0.36602542F;
            float var27 = 0.6666667F - var25 * var25 - var26 * var26;
            if (var27 > 0.0F) {
               var20 += var27 * var27 * (var27 * var27) * GradCoord(var1, var10 + 1002250642, var11 + 1136930381, var25, var26);
            }
         } else {
            float var31 = var17 + 0.21132487F;
            float var38 = var18 + -0.7886751F;
            float var45 = 0.6666667F - var31 * var31 - var38 * var38;
            if (var45 > 0.0F) {
               var20 += var45 * var45 * (var45 * var45) * GradCoord(var1, var10, var11 + 1136930381, var31, var38);
            }
         }

         if (var13 - var24 > 1.0F) {
            float var32 = var17 + -0.36602542F;
            float var39 = var18 + -1.3660254F;
            float var46 = 0.6666667F - var32 * var32 - var39 * var39;
            if (var46 > 0.0F) {
               var20 += var46 * var46 * (var46 * var46) * GradCoord(var1, var10 + 501125321, var11 + -2021106534, var32, var39);
            }
         } else {
            float var33 = var17 + -0.7886751F;
            float var40 = var18 + 0.21132487F;
            float var47 = 0.6666667F - var33 * var33 - var40 * var40;
            if (var47 > 0.0F) {
               var20 += var47 * var47 * (var47 * var47) * GradCoord(var1, var10 + 501125321, var11, var33, var40);
            }
         }
      } else {
         if (var12 + var24 < 0.0F) {
            float var34 = var17 + 0.7886751F;
            float var41 = var18 - 0.21132487F;
            float var48 = 0.6666667F - var34 * var34 - var41 * var41;
            if (var48 > 0.0F) {
               var20 += var48 * var48 * (var48 * var48) * GradCoord(var1, var10 - 501125321, var11, var34, var41);
            }
         } else {
            float var35 = var17 + -0.7886751F;
            float var42 = var18 + 0.21132487F;
            float var49 = 0.6666667F - var35 * var35 - var42 * var42;
            if (var49 > 0.0F) {
               var20 += var49 * var49 * (var49 * var49) * GradCoord(var1, var10 + 501125321, var11, var35, var42);
            }
         }

         if (var13 < var24) {
            float var36 = var17 - 0.21132487F;
            float var43 = var18 - -0.7886751F;
            float var50 = 0.6666667F - var36 * var36 - var43 * var43;
            if (var50 > 0.0F) {
               var20 += var50 * var50 * (var50 * var50) * GradCoord(var1, var10, var11 - 1136930381, var36, var43);
            }
         } else {
            float var37 = var17 + 0.21132487F;
            float var44 = var18 + -0.7886751F;
            float var51 = 0.6666667F - var37 * var37 - var44 * var44;
            if (var51 > 0.0F) {
               var20 += var51 * var51 * (var51 * var51) * GradCoord(var1, var10, var11 + 1136930381, var37, var44);
            }
         }
      }

      class="kw">return var20 * 18.241962F;
   }

   class="kw">private float SingleOpenSimplex2S(int var1, double var2, double var4, double var6) {
      int var8 = FastFloor(var2);
      int var9 = FastFloor(var4);
      int var10 = FastFloor(var6);
      float var11 = (float)(var2 - var8);
      float var12 = (float)(var4 - var9);
      float var13 = (float)(var6 - var10);
      var8 *= 501125321;
      var9 *= 1136930381;
      var10 *= 1720413743;
      int var14 = var1 + 1293373;
      int var15 = (int)(-0.5F - var11);
      int var16 = (int)(-0.5F - var12);
      int var17 = (int)(-0.5F - var13);
      float var18 = var11 + var15;
      float var19 = var12 + var16;
      float var20 = var13 + var17;
      float var21 = 0.75F - var18 * var18 - var19 * var19 - var20 * var20;
      float var22 = var21
         * var21
         * (var21 * var21)
         * GradCoord(var1, var8 + (var15 & 501125321), var9 + (var16 & 1136930381), var10 + (var17 & 1720413743), var18, var19, var20);
      float var23 = var11 - 0.5F;
      float var24 = var12 - 0.5F;
      float var25 = var13 - 0.5F;
      float var26 = 0.75F - var23 * var23 - var24 * var24 - var25 * var25;
      var22 += var26 * var26 * (var26 * var26) * GradCoord(var14, var8 + 501125321, var9 + 1136930381, var10 + 1720413743, var23, var24, var25);
      float var27 = ((var15 | 1) << 1) * var23;
      float var28 = ((var16 | 1) << 1) * var24;
      float var29 = ((var17 | 1) << 1) * var25;
      float var30 = (-2 - (var15 << 2)) * var23 - 1.0F;
      float var31 = (-2 - (var16 << 2)) * var24 - 1.0F;
      float var32 = (-2 - (var17 << 2)) * var25 - 1.0F;
      boolean var33 = false;
      float var34 = var27 + var21;
      if (var34 > 0.0F) {
         float var35 = var18 - (var15 | 1);
         float var36 = var19;
         float var37 = var20;
         var22 += var34
            * var34
            * (var34 * var34)
            * GradCoord(var1, var8 + (~var15 & 501125321), var9 + (var16 & 1136930381), var10 + (var17 & 1720413743), var35, var36, var37);
      } else {
         float var48 = var28 + var29 + var21;
         if (var48 > 0.0F) {
            float var50 = var18;
            float var53 = var19 - (var16 | 1);
            float var38 = var20 - (var17 | 1);
            var22 += var48
               * var48
               * (var48 * var48)
               * GradCoord(var1, var8 + (var15 & 501125321), var9 + (~var16 & 1136930381), var10 + (~var17 & 1720413743), var50, var53, var38);
         }

         float var51 = var30 + var26;
         if (var51 > 0.0F) {
            float var54 = (var15 | 1) + var23;
            float var58 = var24;
            float var39 = var25;
            var22 += var51
               * var51
               * (var51 * var51)
               * GradCoord(var14, var8 + (var15 & 1002250642), var9 + 1136930381, var10 + 1720413743, var54, var58, var39);
            var33 = true;
         }
      }

      boolean var49 = false;
      float var52 = var28 + var21;
      if (var52 > 0.0F) {
         float var55 = var18;
         float var59 = var19 - (var16 | 1);
         float var63 = var20;
         var22 += var52
            * var52
            * (var52 * var52)
            * GradCoord(var1, var8 + (var15 & 501125321), var9 + (~var16 & 1136930381), var10 + (var17 & 1720413743), var55, var59, var63);
      } else {
         float var56 = var27 + var29 + var21;
         if (var56 > 0.0F) {
            float var60 = var18 - (var15 | 1);
            float var64 = var19;
            float var40 = var20 - (var17 | 1);
            var22 += var56
               * var56
               * (var56 * var56)
               * GradCoord(var1, var8 + (~var15 & 501125321), var9 + (var16 & 1136930381), var10 + (~var17 & 1720413743), var60, var64, var40);
         }

         float var61 = var31 + var26;
         if (var61 > 0.0F) {
            float var65 = var23;
            float var71 = (var16 | 1) + var24;
            float var41 = var25;
            var22 += var61
               * var61
               * (var61 * var61)
               * GradCoord(var14, var8 + 501125321, var9 + (var16 & -2021106534), var10 + 1720413743, var65, var71, var41);
            var49 = true;
         }
      }

      boolean var57 = false;
      float var62 = var29 + var21;
      if (var62 > 0.0F) {
         float var66 = var18;
         float var72 = var19;
         float var78 = var20 - (var17 | 1);
         var22 += var62
            * var62
            * (var62 * var62)
            * GradCoord(var1, var8 + (var15 & 501125321), var9 + (var16 & 1136930381), var10 + (~var17 & 1720413743), var66, var72, var78);
      } else {
         float var67 = var27 + var28 + var21;
         if (var67 > 0.0F) {
            float var73 = var18 - (var15 | 1);
            float var79 = var19 - (var16 | 1);
            float var42 = var20;
            var22 += var67
               * var67
               * (var67 * var67)
               * GradCoord(var1, var8 + (~var15 & 501125321), var9 + (~var16 & 1136930381), var10 + (var17 & 1720413743), var73, var79, var42);
         }

         float var74 = var32 + var26;
         if (var74 > 0.0F) {
            float var80 = var23;
            float var84 = var24;
            float var43 = (var17 | 1) + var25;
            var22 += var74 * var74 * (var74 * var74) * GradCoord(var14, var8 + 501125321, var9 + 1136930381, var10 + (var17 & -854139810), var80, var84, var43);
            var57 = true;
         }
      }

      if (!var33) {
         float var68 = var31 + var32 + var26;
         if (var68 > 0.0F) {
            float var75 = var23;
            float var81 = (var16 | 1) + var24;
            float var85 = (var17 | 1) + var25;
            var22 += var68
               * var68
               * (var68 * var68)
               * GradCoord(var14, var8 + 501125321, var9 + (var16 & -2021106534), var10 + (var17 & -854139810), var75, var81, var85);
         }
      }

      if (!var49) {
         float var69 = var30 + var32 + var26;
         if (var69 > 0.0F) {
            float var76 = (var15 | 1) + var23;
            float var82 = var24;
            float var86 = (var17 | 1) + var25;
            var22 += var69
               * var69
               * (var69 * var69)
               * GradCoord(var14, var8 + (var15 & 1002250642), var9 + 1136930381, var10 + (var17 & -854139810), var76, var82, var86);
         }
      }

      if (!var57) {
         float var70 = var30 + var31 + var26;
         if (var70 > 0.0F) {
            float var77 = (var15 | 1) + var23;
            float var83 = (var16 | 1) + var24;
            float var87 = var25;
            var22 += var70
               * var70
               * (var70 * var70)
               * GradCoord(var14, var8 + (var15 & 1002250642), var9 + (var16 & -2021106534), var10 + 1720413743, var77, var83, var87);
         }
      }

      class="kw">return var22 * 9.046026F;
   }

   @Nonnull
   class="kw">public Vector3d pointFor(int var1, double var2, double var4, double var6, double var8) {
      int var10 = fastRound(var4);
      int var11 = fastRound(var6);
      int var12 = fastRound(var8);
      int var13 = hash(var1, var10 * 501125321, var11 * 1136930381, var12 * 1720413743);
      int var14 = var13 & 1020;
      double var15 = randVecs3D[var14] * var2 + var10;
      double var17 = randVecs3D[var14 | 1] * var2 + var11;
      double var19 = randVecs3D[var14 | 2] * var2 + var12;
      class="kw">return new Vector3d(var15, var17, var19);
   }

   @Nonnull
   class="kw">public Vector2d pointFor(int var1, double var2, double var4, double var6) {
      int var8 = fastRound(var4);
      int var9 = fastRound(var6);
      int var10 = hash(var1, var8 * 501125321, var9 * 1136930381);
      int var11 = var10 & 1020;
      double var12 = randVecs3D[var11] * var2 + var8;
      double var14 = randVecs3D[var11 | 1] * var2 + var9;
      class="kw">return new Vector2d(var12, var14);
   }

   class="kw">public double pointFor(int var1, double var2, double var4) {
      int var6 = fastRound(var4);
      int var7 = hash(var1, var6 * 501125321, 0);
      int var8 = var7 & 1020;
      class="kw">return randVecs3D[var8] * var2 + var6;
   }

   class="kw">public float SingleCellular(int var1, double var2, double var4) {
      int var6 = fastRound(var2);
      int var7 = fastRound(var4);
      float var8 = Float.MAX_VALUE;
      float var9 = Float.MAX_VALUE;
      int var10 = 0;
      float var11 = 0.5F * this.mCellularJitterModifier;
      int var12 = (var6 - 1) * 501125321;
      int var13 = (var7 - 1) * 1136930381;
      class="kw">switch (this.mCellularDistanceFunction) {
         case Euclidean:
         case EuclideanSq:
         class="kw">default:
            for (int var23 = var6 - 1; var23 <= var6 + 1; var23++) {
               int var25 = var13;

               for (int var27 = var7 - 1; var27 <= var7 + 1; var27++) {
                  int var29 = hash(var1, var12, var25);
                  int var31 = var29 & 510;
                  float var33 = (float)(var23 - var2) + RandVecs2D[var31] * var11;
                  float var35 = (float)(var27 - var4) + RandVecs2D[var31 | 1] * var11;
                  float var37 = var33 * var33 + var35 * var35;
                  var9 = FastMax(FastMin(var9, var37), var8);
                  if (var37 < var8) {
                     var8 = var37;
                     var10 = var29;
                  }

                  var25 += 1136930381;
               }

               var12 += 501125321;
            }
            break;
         case Manhattan:
            for (int var22 = var6 - 1; var22 <= var6 + 1; var22++) {
               int var24 = var13;

               for (int var26 = var7 - 1; var26 <= var7 + 1; var26++) {
                  int var28 = hash(var1, var12, var24);
                  int var30 = var28 & 510;
                  float var32 = (float)(var22 - var2) + RandVecs2D[var30] * var11;
                  float var34 = (float)(var26 - var4) + RandVecs2D[var30 | 1] * var11;
                  float var36 = FastAbs(var32) + FastAbs(var34);
                  var9 = FastMax(FastMin(var9, var36), var8);
                  if (var36 < var8) {
                     var8 = var36;
                     var10 = var28;
                  }

                  var24 += 1136930381;
               }

               var12 += 501125321;
            }
            break;
         case Hybrid:
            for (int var14 = var6 - 1; var14 <= var6 + 1; var14++) {
               int var15 = var13;

               for (int var16 = var7 - 1; var16 <= var7 + 1; var16++) {
                  int var17 = hash(var1, var12, var15);
                  int var18 = var17 & 510;
                  float var19 = (float)(var14 - var2) + RandVecs2D[var18] * var11;
                  float var20 = (float)(var16 - var4) + RandVecs2D[var18 | 1] * var11;
                  float var21 = FastAbs(var19) + FastAbs(var20) + (var19 * var19 + var20 * var20);
                  var9 = FastMax(FastMin(var9, var21), var8);
                  if (var21 < var8) {
                     var8 = var21;
                     var10 = var17;
                  }

                  var15 += 1136930381;
               }

               var12 += 501125321;
            }
      }

      if (this.mCellularDistanceFunction == FastNoiseLite.CellularDistanceFunction.Euclidean
         && this.mCellularReturnType != FastNoiseLite.CellularReturnType.CellValue) {
         var8 = FastSqrt(var8);
         if (this.mCellularReturnType != FastNoiseLite.CellularReturnType.Distance) {
            var9 = FastSqrt(var9);
         }
      }
      class="kw">return class="kw">switch (this.mCellularReturnType) {
         case CellValue -> var10 * 4.656613E-10F;
         case Distance -> var8 - 1.0F;
         case Distance2 -> var9 - 1.0F;
         case Distance2Add -> (var9 + var8) * 0.5F - 1.0F;
         case Distance2Sub -> var9 - var8 - 1.0F;
         case Distance2Mul -> var9 * var8 * 0.5F - 1.0F;
         case Distance2Div -> var8 / var9 - 1.0F;
      };
   }

   class="kw">private float SingleCellular(int var1, double var2, double var4, double var6) {
      int var8 = fastRound(var2);
      int var9 = fastRound(var4);
      int var10 = fastRound(var6);
      float var11 = Float.MAX_VALUE;
      float var12 = Float.MAX_VALUE;
      int var13 = 0;
      float var14 = 0.5F * this.mCellularJitterModifier;
      int var15 = (var8 - 1) * 501125321;
      int var16 = (var9 - 1) * 1136930381;
      int var17 = (var10 - 1) * 1720413743;
      class="kw">switch (this.mCellularDistanceFunction) {
         case Euclidean:
         case EuclideanSq:
            for (int var30 = var8 - 1; var30 <= var8 + 1; var30++) {
               int var32 = var16;

               for (int var34 = var9 - 1; var34 <= var9 + 1; var34++) {
                  int var36 = var17;

                  for (int var38 = var10 - 1; var38 <= var10 + 1; var38++) {
                     int var40 = hash(var1, var15, var32, var36);
                     int var42 = var40 & 1020;
                     float var44 = (float)(var30 - var2) + randVecs3D[var42] * var14;
                     float var46 = (float)(var34 - var4) + randVecs3D[var42 | 1] * var14;
                     float var48 = (float)(var38 - var6) + randVecs3D[var42 | 2] * var14;
                     float var50 = var44 * var44 + var46 * var46 + var48 * var48;
                     var12 = FastMax(FastMin(var12, var50), var11);
                     if (var50 < var11) {
                        var11 = var50;
                        var13 = var40;
                     }

                     var36 += 1720413743;
                  }

                  var32 += 1136930381;
               }

               var15 += 501125321;
            }
            break;
         case Manhattan:
            for (int var29 = var8 - 1; var29 <= var8 + 1; var29++) {
               int var31 = var16;

               for (int var33 = var9 - 1; var33 <= var9 + 1; var33++) {
                  int var35 = var17;

                  for (int var37 = var10 - 1; var37 <= var10 + 1; var37++) {
                     int var39 = hash(var1, var15, var31, var35);
                     int var41 = var39 & 1020;
                     float var43 = (float)(var29 - var2) + randVecs3D[var41] * var14;
                     float var45 = (float)(var33 - var4) + randVecs3D[var41 | 1] * var14;
                     float var47 = (float)(var37 - var6) + randVecs3D[var41 | 2] * var14;
                     float var49 = FastAbs(var43) + FastAbs(var45) + FastAbs(var47);
                     var12 = FastMax(FastMin(var12, var49), var11);
                     if (var49 < var11) {
                        var11 = var49;
                        var13 = var39;
                     }

                     var35 += 1720413743;
                  }

                  var31 += 1136930381;
               }

               var15 += 501125321;
            }
            break;
         case Hybrid:
            for (int var18 = var8 - 1; var18 <= var8 + 1; var18++) {
               int var19 = var16;

               for (int var20 = var9 - 1; var20 <= var9 + 1; var20++) {
                  int var21 = var17;

                  for (int var22 = var10 - 1; var22 <= var10 + 1; var22++) {
                     int var23 = hash(var1, var15, var19, var21);
                     int var24 = var23 & 1020;
                     float var25 = (float)(var18 - var2) + randVecs3D[var24] * var14;
                     float var26 = (float)(var20 - var4) + randVecs3D[var24 | 1] * var14;
                     float var27 = (float)(var22 - var6) + randVecs3D[var24 | 2] * var14;
                     float var28 = FastAbs(var25) + FastAbs(var26) + FastAbs(var27) + (var25 * var25 + var26 * var26 + var27 * var27);
                     var12 = FastMax(FastMin(var12, var28), var11);
                     if (var28 < var11) {
                        var11 = var28;
                        var13 = var23;
                     }

                     var21 += 1720413743;
                  }

                  var19 += 1136930381;
               }

               var15 += 501125321;
            }
      }

      if (this.mCellularDistanceFunction == FastNoiseLite.CellularDistanceFunction.Euclidean
         && this.mCellularReturnType != FastNoiseLite.CellularReturnType.CellValue) {
         var11 = FastSqrt(var11);
         if (this.mCellularReturnType != FastNoiseLite.CellularReturnType.Distance) {
            var12 = FastSqrt(var12);
         }
      }
      class="kw">return class="kw">switch (this.mCellularReturnType) {
         case CellValue -> var13 * 4.656613E-10F;
         case Distance -> var11 - 1.0F;
         case Distance2 -> var12 - 1.0F;
         case Distance2Add -> (var12 + var11) * 0.5F - 1.0F;
         case Distance2Sub -> var12 - var11 - 1.0F;
         case Distance2Mul -> var12 * var11 * 0.5F - 1.0F;
         case Distance2Div -> var11 / var12 - 1.0F;
      };
   }

   class="kw">private float SinglePerlin(int var1, double var2, double var4) {
      int var6 = FastFloor(var2);
      int var7 = FastFloor(var4);
      float var8 = (float)(var2 - var6);
      float var9 = (float)(var4 - var7);
      float var10 = var8 - 1.0F;
      float var11 = var9 - 1.0F;
      float var12 = InterpQuintic(var8);
      float var13 = InterpQuintic(var9);
      var6 *= 501125321;
      var7 *= 1136930381;
      int var14 = var6 + 501125321;
      int var15 = var7 + 1136930381;
      float var16 = Lerp(GradCoord(var1, var6, var7, var8, var9), GradCoord(var1, var14, var7, var10, var9), var12);
      float var17 = Lerp(GradCoord(var1, var6, var15, var8, var11), GradCoord(var1, var14, var15, var10, var11), var12);
      class="kw">return Lerp(var16, var17, var13) * 1.4247692F;
   }

   class="kw">private float SinglePerlin(int var1, double var2, double var4, double var6) {
      int var8 = FastFloor(var2);
      int var9 = FastFloor(var4);
      int var10 = FastFloor(var6);
      float var11 = (float)(var2 - var8);
      float var12 = (float)(var4 - var9);
      float var13 = (float)(var6 - var10);
      float var14 = var11 - 1.0F;
      float var15 = var12 - 1.0F;
      float var16 = var13 - 1.0F;
      float var17 = InterpQuintic(var11);
      float var18 = InterpQuintic(var12);
      float var19 = InterpQuintic(var13);
      var8 *= 501125321;
      var9 *= 1136930381;
      var10 *= 1720413743;
      int var20 = var8 + 501125321;
      int var21 = var9 + 1136930381;
      int var22 = var10 + 1720413743;
      float var23 = Lerp(GradCoord(var1, var8, var9, var10, var11, var12, var13), GradCoord(var1, var20, var9, var10, var14, var12, var13), var17);
      float var24 = Lerp(GradCoord(var1, var8, var21, var10, var11, var15, var13), GradCoord(var1, var20, var21, var10, var14, var15, var13), var17);
      float var25 = Lerp(GradCoord(var1, var8, var9, var22, var11, var12, var16), GradCoord(var1, var20, var9, var22, var14, var12, var16), var17);
      float var26 = Lerp(GradCoord(var1, var8, var21, var22, var11, var15, var16), GradCoord(var1, var20, var21, var22, var14, var15, var16), var17);
      float var27 = Lerp(var23, var24, var18);
      float var28 = Lerp(var25, var26, var18);
      class="kw">return Lerp(var27, var28, var19) * 0.9649214F;
   }

   class="kw">private float SingleValueCubic(int var1, double var2, double var4) {
      int var6 = FastFloor(var2);
      int var7 = FastFloor(var4);
      float var8 = (float)(var2 - var6);
      float var9 = (float)(var4 - var7);
      var6 *= 501125321;
      var7 *= 1136930381;
      int var10 = var6 - 501125321;
      int var11 = var7 - 1136930381;
      int var12 = var6 + 501125321;
      int var13 = var7 + 1136930381;
      int var14 = var6 + 1002250642;
      int var15 = var7 + -2021106534;
      class="kw">return CubicLerp(
            CubicLerp(ValCoord(var1, var10, var11), ValCoord(var1, var6, var11), ValCoord(var1, var12, var11), ValCoord(var1, var14, var11), var8),
            CubicLerp(ValCoord(var1, var10, var7), ValCoord(var1, var6, var7), ValCoord(var1, var12, var7), ValCoord(var1, var14, var7), var8),
            CubicLerp(ValCoord(var1, var10, var13), ValCoord(var1, var6, var13), ValCoord(var1, var12, var13), ValCoord(var1, var14, var13), var8),
            CubicLerp(ValCoord(var1, var10, var15), ValCoord(var1, var6, var15), ValCoord(var1, var12, var15), ValCoord(var1, var14, var15), var8),
            var9
         )
         * 0.44444445F;
   }

   class="kw">private float SingleValueCubic(int var1, double var2, double var4, double var6) {
      int var8 = FastFloor(var2);
      int var9 = FastFloor(var4);
      int var10 = FastFloor(var6);
      float var11 = (float)(var2 - var8);
      float var12 = (float)(var4 - var9);
      float var13 = (float)(var6 - var10);
      var8 *= 501125321;
      var9 *= 1136930381;
      var10 *= 1720413743;
      int var14 = var8 - 501125321;
      int var15 = var9 - 1136930381;
      int var16 = var10 - 1720413743;
      int var17 = var8 + 501125321;
      int var18 = var9 + 1136930381;
      int var19 = var10 + 1720413743;
      int var20 = var8 + 1002250642;
      int var21 = var9 + -2021106534;
      int var22 = var10 + -854139810;
      class="kw">return CubicLerp(
            CubicLerp(
               CubicLerp(
                  ValCoord(var1, var14, var15, var16),
                  ValCoord(var1, var8, var15, var16),
                  ValCoord(var1, var17, var15, var16),
                  ValCoord(var1, var20, var15, var16),
                  var11
               ),
               CubicLerp(
                  ValCoord(var1, var14, var9, var16),
                  ValCoord(var1, var8, var9, var16),
                  ValCoord(var1, var17, var9, var16),
                  ValCoord(var1, var20, var9, var16),
                  var11
               ),
               CubicLerp(
                  ValCoord(var1, var14, var18, var16),
                  ValCoord(var1, var8, var18, var16),
                  ValCoord(var1, var17, var18, var16),
                  ValCoord(var1, var20, var18, var16),
                  var11
               ),
               CubicLerp(
                  ValCoord(var1, var14, var21, var16),
                  ValCoord(var1, var8, var21, var16),
                  ValCoord(var1, var17, var21, var16),
                  ValCoord(var1, var20, var21, var16),
                  var11
               ),
               var12
            ),
            CubicLerp(
               CubicLerp(
                  ValCoord(var1, var14, var15, var10),
                  ValCoord(var1, var8, var15, var10),
                  ValCoord(var1, var17, var15, var10),
                  ValCoord(var1, var20, var15, var10),
                  var11
               ),
               CubicLerp(
                  ValCoord(var1, var14, var9, var10),
                  ValCoord(var1, var8, var9, var10),
                  ValCoord(var1, var17, var9, var10),
                  ValCoord(var1, var20, var9, var10),
                  var11
               ),
               CubicLerp(
                  ValCoord(var1, var14, var18, var10),
                  ValCoord(var1, var8, var18, var10),
                  ValCoord(var1, var17, var18, var10),
                  ValCoord(var1, var20, var18, var10),
                  var11
               ),
               CubicLerp(
                  ValCoord(var1, var14, var21, var10),
                  ValCoord(var1, var8, var21, var10),
                  ValCoord(var1, var17, var21, var10),
                  ValCoord(var1, var20, var21, var10),
                  var11
               ),
               var12
            ),
            CubicLerp(
               CubicLerp(
                  ValCoord(var1, var14, var15, var19),
                  ValCoord(var1, var8, var15, var19),
                  ValCoord(var1, var17, var15, var19),
                  ValCoord(var1, var20, var15, var19),
                  var11
               ),
               CubicLerp(
                  ValCoord(var1, var14, var9, var19),
                  ValCoord(var1, var8, var9, var19),
                  ValCoord(var1, var17, var9, var19),
                  ValCoord(var1, var20, var9, var19),
                  var11
               ),
               CubicLerp(
                  ValCoord(var1, var14, var18, var19),
                  ValCoord(var1, var8, var18, var19),
                  ValCoord(var1, var17, var18, var19),
                  ValCoord(var1, var20, var18, var19),
                  var11
               ),
               CubicLerp(
                  ValCoord(var1, var14, var21, var19),
                  ValCoord(var1, var8, var21, var19),
                  ValCoord(var1, var17, var21, var19),
                  ValCoord(var1, var20, var21, var19),
                  var11
               ),
               var12
            ),
            CubicLerp(
               CubicLerp(
                  ValCoord(var1, var14, var15, var22),
                  ValCoord(var1, var8, var15, var22),
                  ValCoord(var1, var17, var15, var22),
                  ValCoord(var1, var20, var15, var22),
                  var11
               ),
               CubicLerp(
                  ValCoord(var1, var14, var9, var22),
                  ValCoord(var1, var8, var9, var22),
                  ValCoord(var1, var17, var9, var22),
                  ValCoord(var1, var20, var9, var22),
                  var11
               ),
               CubicLerp(
                  ValCoord(var1, var14, var18, var22),
                  ValCoord(var1, var8, var18, var22),
                  ValCoord(var1, var17, var18, var22),
                  ValCoord(var1, var20, var18, var22),
                  var11
               ),
               CubicLerp(
                  ValCoord(var1, var14, var21, var22),
                  ValCoord(var1, var8, var21, var22),
                  ValCoord(var1, var17, var21, var22),
                  ValCoord(var1, var20, var21, var22),
                  var11
               ),
               var12
            ),
            var13
         )
         * 0.2962963F;
   }

   class="kw">private float SingleValue(int var1, double var2, double var4) {
      int var6 = FastFloor(var2);
      int var7 = FastFloor(var4);
      float var8 = InterpHermite((float)(var2 - var6));
      float var9 = InterpHermite((float)(var4 - var7));
      var6 *= 501125321;
      var7 *= 1136930381;
      int var10 = var6 + 501125321;
      int var11 = var7 + 1136930381;
      float var12 = Lerp(ValCoord(var1, var6, var7), ValCoord(var1, var10, var7), var8);
      float var13 = Lerp(ValCoord(var1, var6, var11), ValCoord(var1, var10, var11), var8);
      class="kw">return Lerp(var12, var13, var9);
   }

   class="kw">private float SingleValue(int var1, double var2, double var4, double var6) {
      int var8 = FastFloor(var2);
      int var9 = FastFloor(var4);
      int var10 = FastFloor(var6);
      float var11 = InterpHermite((float)(var2 - var8));
      float var12 = InterpHermite((float)(var4 - var9));
      float var13 = InterpHermite((float)(var6 - var10));
      var8 *= 501125321;
      var9 *= 1136930381;
      var10 *= 1720413743;
      int var14 = var8 + 501125321;
      int var15 = var9 + 1136930381;
      int var16 = var10 + 1720413743;
      float var17 = Lerp(ValCoord(var1, var8, var9, var10), ValCoord(var1, var14, var9, var10), var11);
      float var18 = Lerp(ValCoord(var1, var8, var15, var10), ValCoord(var1, var14, var15, var10), var11);
      float var19 = Lerp(ValCoord(var1, var8, var9, var16), ValCoord(var1, var14, var9, var16), var11);
      float var20 = Lerp(ValCoord(var1, var8, var15, var16), ValCoord(var1, var14, var15, var16), var11);
      float var21 = Lerp(var17, var18, var12);
      float var22 = Lerp(var19, var20, var12);
      class="kw">return Lerp(var21, var22, var13);
   }

   class="kw">private void DoSingleDomainWarp(int var1, float var2, float var3, double var4, double var6, @Nonnull FastNoiseLite.Vector2 var8) {
      class="kw">switch (this.mDomainWarpType) {
         case OpenSimplex2:
            this.SingleDomainWarpSimplexGradient(var1, var2 * 38.283688F, var3, var4, var6, var8, false);
            break;
         case OpenSimplex2Reduced:
            this.SingleDomainWarpSimplexGradient(var1, var2 * 16.0F, var3, var4, var6, var8, true);
            break;
         case BasicGrid:
            this.SingleDomainWarpBasicGrid(var1, var2, var3, var4, var6, var8);
      }
   }

   class="kw">private void DoSingleDomainWarp(int var1, float var2, float var3, double var4, double var6, double var8, @Nonnull FastNoiseLite.Vector3 var10) {
      class="kw">switch (this.mDomainWarpType) {
         case OpenSimplex2:
            this.SingleDomainWarpOpenSimplex2Gradient(var1, var2 * 32.694283F, var3, var4, var6, var8, var10, false);
            break;
         case OpenSimplex2Reduced:
            this.SingleDomainWarpOpenSimplex2Gradient(var1, var2 * 7.716049F, var3, var4, var6, var8, var10, true);
            break;
         case BasicGrid:
            this.SingleDomainWarpBasicGrid(var1, var2, var3, var4, var6, var8, var10);
      }
   }

   class="kw">private void DomainWarpSingle(@Nonnull FastNoiseLite.Vector2 var1) {
      int var2 = this.mSeed;
      float var3 = this.mDomainWarpAmp * this.mFractalBounding;
      float var4 = this.mDomainWarpFreq;
      double var5 = var1.x;
      double var7 = var1.y;
      class="kw">switch (this.mDomainWarpType) {
         case OpenSimplex2:
         case OpenSimplex2Reduced:
            double var9 = 1.7320508075688772;
            double var11 = 0.3660254037844386;
            double var13 = (var5 + var7) * 0.3660254037844386;
            var5 += var13;
            var7 += var13;
         class="kw">default:
            this.DoSingleDomainWarp(var2, var3, var4, var5, var7, var1);
      }
   }

   class="kw">public void DomainWarpSingle(@Nonnull FastNoiseLite.Vector3 var1) {
      int var2 = this.mSeed;
      float var3 = this.mDomainWarpAmp * this.mFractalBounding;
      float var4 = this.mDomainWarpFreq;
      double var5 = var1.x;
      double var7 = var1.y;
      double var9 = var1.z;
      class="kw">switch (this.mWarpTransformType3D) {
         case ImproveXYPlanes: {
            double var18 = var5 + var7;
            double var20 = var18 * -0.211324865405187;
            var9 *= 0.577350269189626;
            var5 += var20 - var9;
            var7 = var7 + var20 - var9;
            var9 += var18 * 0.577350269189626;
            break;
         }
         case ImproveXZPlanes: {
            double var17 = var5 + var9;
            double var19 = var17 * -0.211324865405187;
            var7 *= 0.577350269189626;
            var5 += var19 - var7;
            var9 += var19 - var7;
            var7 += var17 * 0.577350269189626;
            break;
         }
         case DefaultOpenSimplex2:
            double var11 = 0.6666666666666666;
            double var13 = (var5 + var7 + var9) * 0.6666666666666666;
            var5 = var13 - var5;
            var7 = var13 - var7;
            var9 = var13 - var9;
      }

      this.DoSingleDomainWarp(var2, var3, var4, var5, var7, var9, var1);
   }

   class="kw">public void DomainWarpFractalProgressive(@Nonnull FastNoiseLite.Vector2 var1) {
      int var2 = this.mSeed;
      float var3 = this.mDomainWarpAmp * this.mFractalBounding;
      float var4 = this.mDomainWarpFreq;

      for (int var5 = 0; var5 < this.mOctaves; var5++) {
         double var6 = var1.x;
         double var8 = var1.y;
         class="kw">switch (this.mDomainWarpType) {
            case OpenSimplex2:
            case OpenSimplex2Reduced:
               double var10 = 1.7320508075688772;
               double var12 = 0.3660254037844386;
               double var14 = (var6 + var8) * 0.3660254037844386;
               var6 += var14;
               var8 += var14;
            class="kw">default:
               this.DoSingleDomainWarp(var2, var3, var4, var6, var8, var1);
               var2++;
               var3 *= this.mGain;
               var4 *= this.mLacunarity;
         }
      }
   }

   class="kw">public void DomainWarpFractalProgressive(@Nonnull FastNoiseLite.Vector3 var1) {
      int var2 = this.mSeed;
      float var3 = this.mDomainWarpAmp * this.mFractalBounding;
      float var4 = this.mDomainWarpFreq;

      for (int var5 = 0; var5 < this.mOctaves; var5++) {
         double var6 = var1.x;
         double var8 = var1.y;
         double var10 = var1.z;
         class="kw">switch (this.mWarpTransformType3D) {
            case ImproveXYPlanes: {
               double var19 = var6 + var8;
               double var21 = var19 * -0.211324865405187;
               var10 *= 0.577350269189626;
               var6 += var21 - var10;
               var8 = var8 + var21 - var10;
               var10 += var19 * 0.577350269189626;
               break;
            }
            case ImproveXZPlanes: {
               double var18 = var6 + var10;
               double var20 = var18 * -0.211324865405187;
               var8 *= 0.577350269189626;
               var6 += var20 - var8;
               var10 += var20 - var8;
               var8 += var18 * 0.577350269189626;
               break;
            }
            case DefaultOpenSimplex2:
               double var12 = 0.6666666666666666;
               double var14 = (var6 + var8 + var10) * 0.6666666666666666;
               var6 = var14 - var6;
               var8 = var14 - var8;
               var10 = var14 - var10;
         }

         this.DoSingleDomainWarp(var2, var3, var4, var6, var8, var10, var1);
         var2++;
         var3 *= this.mGain;
         var4 *= this.mLacunarity;
      }
   }

   class="kw">private void DomainWarpFractalIndependent(@Nonnull FastNoiseLite.Vector2 var1) {
      double var2 = var1.x;
      double var4 = var1.y;
      class="kw">switch (this.mDomainWarpType) {
         case OpenSimplex2:
         case OpenSimplex2Reduced:
            double var6 = 1.7320508075688772;
            double var8 = 0.3660254037844386;
            double var10 = (var2 + var4) * 0.3660254037844386;
            var2 += var10;
            var4 += var10;
         class="kw">default:
            int var12 = this.mSeed;
            float var7 = this.mDomainWarpAmp * this.mFractalBounding;
            float var13 = this.mFrequency;

            for (int var9 = 0; var9 < this.mOctaves; var9++) {
               this.DoSingleDomainWarp(var12, var7, var13, var2, var4, var1);
               var12++;
               var7 *= this.mGain;
               var13 *= this.mLacunarity;
            }
      }
   }

   class="kw">private void DomainWarpFractalIndependent(@Nonnull FastNoiseLite.Vector3 var1) {
      double var2 = var1.x;
      double var4 = var1.y;
      double var6 = var1.z;
      class="kw">switch (this.mWarpTransformType3D) {
         case ImproveXYPlanes: {
            double var15 = var2 + var4;
            double var18 = var15 * -0.211324865405187;
            var6 *= 0.577350269189626;
            var2 += var18 - var6;
            var4 = var4 + var18 - var6;
            var6 += var15 * 0.577350269189626;
            break;
         }
         case ImproveXZPlanes: {
            double var14 = var2 + var6;
            double var17 = var14 * -0.211324865405187;
            var4 *= 0.577350269189626;
            var2 += var17 - var4;
            var6 += var17 - var4;
            var4 += var14 * 0.577350269189626;
            break;
         }
         case DefaultOpenSimplex2:
            double var8 = 0.6666666666666666;
            double var10 = (var2 + var4 + var6) * 0.6666666666666666;
            var2 = var10 - var2;
            var4 = var10 - var4;
            var6 = var10 - var6;
      }

      int var16 = this.mSeed;
      float var9 = this.mDomainWarpAmp * this.mFractalBounding;
      float var19 = this.mFrequency;

      for (int var11 = 0; var11 < this.mOctaves; var11++) {
         this.DoSingleDomainWarp(var16, var9, var19, var2, var4, var6, var1);
         var16++;
         var9 *= this.mGain;
         var19 *= this.mLacunarity;
      }
   }

   class="kw">private void SingleDomainWarpBasicGrid(int var1, float var2, float var3, double var4, double var6, @Nonnull FastNoiseLite.Vector2 var8) {
      double var9 = var4 * var3;
      double var11 = var6 * var3;
      int var13 = FastFloor(var9);
      int var14 = FastFloor(var11);
      float var15 = InterpHermite((float)(var9 - var13));
      float var16 = InterpHermite((float)(var11 - var14));
      var13 *= 501125321;
      var14 *= 1136930381;
      int var17 = var13 + 501125321;
      int var18 = var14 + 1136930381;
      int var19 = hash(var1, var13, var14) & 510;
      int var20 = hash(var1, var17, var14) & 510;
      float var21 = Lerp(RandVecs2D[var19], RandVecs2D[var20], var15);
      float var22 = Lerp(RandVecs2D[var19 | 1], RandVecs2D[var20 | 1], var15);
      var19 = hash(var1, var13, var18) & 510;
      var20 = hash(var1, var17, var18) & 510;
      float var23 = Lerp(RandVecs2D[var19], RandVecs2D[var20], var15);
      float var24 = Lerp(RandVecs2D[var19 | 1], RandVecs2D[var20 | 1], var15);
      var8.x = var8.x + Lerp(var21, var23, var16) * var2;
      var8.y = var8.y + Lerp(var22, var24, var16) * var2;
   }

   class="kw">private void SingleDomainWarpBasicGrid(int var1, float var2, float var3, double var4, double var6, double var8, @Nonnull FastNoiseLite.Vector3 var10) {
      double var11 = var4 * var3;
      double var13 = var6 * var3;
      double var15 = var8 * var3;
      int var17 = FastFloor(var11);
      int var18 = FastFloor(var13);
      int var19 = FastFloor(var15);
      float var20 = InterpHermite((float)(var11 - var17));
      float var21 = InterpHermite((float)(var13 - var18));
      float var22 = InterpHermite((float)(var15 - var19));
      var17 *= 501125321;
      var18 *= 1136930381;
      var19 *= 1720413743;
      int var23 = var17 + 501125321;
      int var24 = var18 + 1136930381;
      int var25 = var19 + 1720413743;
      int var26 = hash(var1, var17, var18, var19) & 1020;
      int var27 = hash(var1, var23, var18, var19) & 1020;
      float var28 = Lerp(randVecs3D[var26], randVecs3D[var27], var20);
      float var29 = Lerp(randVecs3D[var26 | 1], randVecs3D[var27 | 1], var20);
      float var30 = Lerp(randVecs3D[var26 | 2], randVecs3D[var27 | 2], var20);
      var26 = hash(var1, var17, var24, var19) & 1020;
      var27 = hash(var1, var23, var24, var19) & 1020;
      float var31 = Lerp(randVecs3D[var26], randVecs3D[var27], var20);
      float var32 = Lerp(randVecs3D[var26 | 1], randVecs3D[var27 | 1], var20);
      float var33 = Lerp(randVecs3D[var26 | 2], randVecs3D[var27 | 2], var20);
      float var34 = Lerp(var28, var31, var21);
      float var35 = Lerp(var29, var32, var21);
      float var36 = Lerp(var30, var33, var21);
      var26 = hash(var1, var17, var18, var25) & 1020;
      var27 = hash(var1, var23, var18, var25) & 1020;
      var28 = Lerp(randVecs3D[var26], randVecs3D[var27], var20);
      var29 = Lerp(randVecs3D[var26 | 1], randVecs3D[var27 | 1], var20);
      var30 = Lerp(randVecs3D[var26 | 2], randVecs3D[var27 | 2], var20);
      var26 = hash(var1, var17, var24, var25) & 1020;
      var27 = hash(var1, var23, var24, var25) & 1020;
      var31 = Lerp(randVecs3D[var26], randVecs3D[var27], var20);
      var32 = Lerp(randVecs3D[var26 | 1], randVecs3D[var27 | 1], var20);
      var33 = Lerp(randVecs3D[var26 | 2], randVecs3D[var27 | 2], var20);
      var10.x = var10.x + Lerp(var34, Lerp(var28, var31, var21), var22) * var2;
      var10.y = var10.y + Lerp(var35, Lerp(var29, var32, var21), var22) * var2;
      var10.z = var10.z + Lerp(var36, Lerp(var30, var33, var21), var22) * var2;
   }

   class="kw">private void SingleDomainWarpSimplexGradient(int var1, float var2, float var3, double var4, double var6, @Nonnull FastNoiseLite.Vector2 var8, boolean var9) {
      float var10 = 1.7320508F;
      float var11 = 0.21132487F;
      var4 *= var3;
      var6 *= var3;
      int var12 = FastFloor(var4);
      int var13 = FastFloor(var6);
      float var14 = (float)(var4 - var12);
      float var15 = (float)(var6 - var13);
      float var16 = (var14 + var15) * 0.21132487F;
      float var17 = var14 - var16;
      float var18 = var15 - var16;
      var12 *= 501125321;
      var13 *= 1136930381;
      float var20 = 0.0F;
      float var19 = 0.0F;
      float var21 = 0.5F - var17 * var17 - var18 * var18;
      if (var21 > 0.0F) {
         float var22 = var21 * var21 * (var21 * var21);
         float var23;
         float var24;
         if (var9) {
            int var25 = hash(var1, var12, var13) & 510;
            var23 = RandVecs2D[var25];
            var24 = RandVecs2D[var25 | 1];
         } else {
            int var48 = hash(var1, var12, var13);
            int var26 = var48 & 254;
            int var27 = var48 >> 7 & 510;
            float var28 = Gradients2D[var26];
            float var29 = Gradients2D[var26 | 1];
            float var30 = var17 * var28 + var18 * var29;
            float var31 = RandVecs2D[var27];
            float var32 = RandVecs2D[var27 | 1];
            var23 = var30 * var31;
            var24 = var30 * var32;
         }

         var19 += var22 * var23;
         var20 += var22 * var24;
      }

      float var41 = 3.1547005F * var16 + (-0.6666666F + var21);
      if (var41 > 0.0F) {
         float var42 = var17 + -0.57735026F;
         float var45 = var18 + -0.57735026F;
         float var49 = var41 * var41 * (var41 * var41);
         float var52;
         float var55;
         if (var9) {
            int var58 = hash(var1, var12 + 501125321, var13 + 1136930381) & 510;
            var52 = RandVecs2D[var58];
            var55 = RandVecs2D[var58 | 1];
         } else {
            int var59 = hash(var1, var12 + 501125321, var13 + 1136930381);
            int var62 = var59 & 254;
            int var67 = var59 >> 7 & 510;
            float var70 = Gradients2D[var62];
            float var73 = Gradients2D[var62 | 1];
            float var33 = var42 * var70 + var45 * var73;
            float var34 = RandVecs2D[var67];
            float var35 = RandVecs2D[var67 | 1];
            var52 = var33 * var34;
            var55 = var33 * var35;
         }

         var19 += var49 * var52;
         var20 += var49 * var55;
      }

      if (var18 > var17) {
         float var43 = var17 + 0.21132487F;
         float var46 = var18 + -0.7886751F;
         float var50 = 0.5F - var43 * var43 - var46 * var46;
         if (var50 > 0.0F) {
            float var53 = var50 * var50 * (var50 * var50);
            float var56;
            float var60;
            if (var9) {
               int var63 = hash(var1, var12, var13 + 1136930381) & 510;
               var56 = RandVecs2D[var63];
               var60 = RandVecs2D[var63 | 1];
            } else {
               int var64 = hash(var1, var12, var13 + 1136930381);
               int var68 = var64 & 254;
               int var71 = var64 >> 7 & 510;
               float var74 = Gradients2D[var68];
               float var76 = Gradients2D[var68 | 1];
               float var78 = var43 * var74 + var46 * var76;
               float var80 = RandVecs2D[var71];
               float var36 = RandVecs2D[var71 | 1];
               var56 = var78 * var80;
               var60 = var78 * var36;
            }

            var19 += var53 * var56;
            var20 += var53 * var60;
         }
      } else {
         float var44 = var17 + -0.7886751F;
         float var47 = var18 + 0.21132487F;
         float var51 = 0.5F - var44 * var44 - var47 * var47;
         if (var51 > 0.0F) {
            float var54 = var51 * var51 * (var51 * var51);
            float var57;
            float var61;
            if (var9) {
               int var65 = hash(var1, var12 + 501125321, var13) & 510;
               var57 = RandVecs2D[var65];
               var61 = RandVecs2D[var65 | 1];
            } else {
               int var66 = hash(var1, var12 + 501125321, var13);
               int var69 = var66 & 254;
               int var72 = var66 >> 7 & 510;
               float var75 = Gradients2D[var69];
               float var77 = Gradients2D[var69 | 1];
               float var79 = var44 * var75 + var47 * var77;
               float var81 = RandVecs2D[var72];
               float var82 = RandVecs2D[var72 | 1];
               var57 = var79 * var81;
               var61 = var79 * var82;
            }

            var19 += var54 * var57;
            var20 += var54 * var61;
         }
      }

      var8.x += var19 * var2;
      var8.y += var20 * var2;
   }

   class="kw">private void SingleDomainWarpOpenSimplex2Gradient(
      int var1, float var2, float var3, double var4, double var6, double var8, @Nonnull FastNoiseLite.Vector3 var10, boolean var11
   ) {
      var4 *= var3;
      var6 *= var3;
      var8 *= var3;
      int var12 = fastRound(var4);
      int var13 = fastRound(var6);
      int var14 = fastRound(var8);
      float var15 = (float)var4 - var12;
      float var16 = (float)var6 - var13;
      float var17 = (float)var8 - var14;
      int var18 = (int)(-var15 - 1.0F) | 1;
      int var19 = (int)(-var16 - 1.0F) | 1;
      int var20 = (int)(-var17 - 1.0F) | 1;
      float var21 = var18 * -var15;
      float var22 = var19 * -var16;
      float var23 = var20 * -var17;
      var12 *= 501125321;
      var13 *= 1136930381;
      var14 *= 1720413743;
      float var26 = 0.0F;
      float var25 = 0.0F;
      float var24 = 0.0F;
      float var27 = 0.6F - var15 * var15 - (var16 * var16 + var17 * var17);
      int var28 = 0;

      while (true) {
         if (var27 > 0.0F) {
            float var29 = var27 * var27 * (var27 * var27);
            float var30;
            float var31;
            float var32;
            if (var11) {
               int var33 = hash(var1, var12, var13, var14) & 1020;
               var30 = randVecs3D[var33];
               var31 = randVecs3D[var33 | 1];
               var32 = randVecs3D[var33 | 2];
            } else {
               int var62 = hash(var1, var12, var13, var14);
               int var34 = var62 & 252;
               int var35 = var62 >> 6 & 1020;
               float var36 = Gradients3D[var34];
               float var37 = Gradients3D[var34 | 1];
               float var38 = Gradients3D[var34 | 2];
               float var39 = var15 * var36 + var16 * var37 + var17 * var38;
               float var40 = randVecs3D[var35];
               float var41 = randVecs3D[var35 | 1];
               float var42 = randVecs3D[var35 | 2];
               var30 = var39 * var40;
               var31 = var39 * var41;
               var32 = var39 * var42;
            }

            var24 += var29 * var30;
            var25 += var29 * var31;
            var26 += var29 * var32;
         }

         float var56 = var27;
         int var59 = var12;
         int var60 = var13;
         int var61 = var14;
         float var63 = var15;
         float var64 = var16;
         float var65 = var17;
         if (var21 >= var22 && var21 >= var23) {
            var63 += var18;
            var56 = var56 + var21 + var21;
            var59 -= var18 * 501125321;
         } else if (var22 > var21 && var22 >= var23) {
            var64 += var19;
            var56 = var56 + var22 + var22;
            var60 -= var19 * 1136930381;
         } else {
            var65 += var20;
            var56 = var56 + var23 + var23;
            var61 -= var20 * 1720413743;
         }

         if (var56 > 1.0F) {
            float var66 = --var56 * var56 * (var56 * var56);
            float var67;
            float var68;
            float var69;
            if (var11) {
               int var70 = hash(var1, var59, var60, var61) & 1020;
               var67 = randVecs3D[var70];
               var68 = randVecs3D[var70 | 1];
               var69 = randVecs3D[var70 | 2];
            } else {
               int var71 = hash(var1, var59, var60, var61);
               int var72 = var71 & 252;
               int var73 = var71 >> 6 & 1020;
               float var43 = Gradients3D[var72];
               float var44 = Gradients3D[var72 | 1];
               float var45 = Gradients3D[var72 | 2];
               float var46 = var63 * var43 + var64 * var44 + var65 * var45;
               float var47 = randVecs3D[var73];
               float var48 = randVecs3D[var73 | 1];
               float var49 = randVecs3D[var73 | 2];
               var67 = var46 * var47;
               var68 = var46 * var48;
               var69 = var46 * var49;
            }

            var24 += var66 * var67;
            var25 += var66 * var68;
            var26 += var66 * var69;
         }

         if (var28 == 1) {
            var10.x += var24 * var2;
            var10.y += var25 * var2;
            var10.z += var26 * var2;
            class="kw">return;
         }

         var21 = 0.5F - var21;
         var22 = 0.5F - var22;
         var23 = 0.5F - var23;
         var15 = var18 * var21;
         var16 = var19 * var22;
         var17 = var20 * var23;
         var27 += 0.75F - var21 - (var22 + var23);
         var12 += var18 >> 1 & 501125321;
         var13 += var19 >> 1 & 1136930381;
         var14 += var20 >> 1 & 1720413743;
         var18 = -var18;
         var19 = -var19;
         var20 = -var20;
         var1 += 1293373;
         var28++;
      }
   }

   class="kw">public enum CellularDistanceFunction {
      Euclidean,
      EuclideanSq,
      Manhattan,
      Hybrid;

      CellularDistanceFunction() {
      }
   }

   class="kw">public enum CellularReturnType {
      CellValue,
      Distance,
      Distance2,
      Distance2Add,
      Distance2Sub,
      Distance2Mul,
      Distance2Div;

      @Nonnull
      class="kw">public class="kw">static class="kw">final Codec<FastNoiseLite.CellularReturnType> CODEC = new EnumCodec<>(FastNoiseLite.CellularReturnType.class);

      CellularReturnType() {
      }
   }

   class="kw">public enum DomainWarpType {
      OpenSimplex2,
      OpenSimplex2Reduced,
      BasicGrid;

      DomainWarpType() {
      }
   }

   class="kw">public enum FractalType {
      None,
      FBm,
      Ridged,
      PingPong,
      DomainWarpProgressive,
      DomainWarpIndependent;

      FractalType() {
      }
   }

   class="kw">public enum NoiseType {
      OpenSimplex2,
      OpenSimplex2S,
      Cellular,
      Perlin,
      ValueCubic,
      Value;

      NoiseType() {
      }
   }

   class="kw">public enum RotationType3D {
      None,
      ImproveXYPlanes,
      ImproveXZPlanes;

      RotationType3D() {
      }
   }

   class="kw">private enum TransformType3D {
      None,
      ImproveXYPlanes,
      ImproveXZPlanes,
      DefaultOpenSimplex2;

      TransformType3D() {
      }
   }

   class="kw">public class="kw">static class Vector2 {
      class="kw">public double x;
      class="kw">public double y;

      class="kw">public Vector2(double var1, double var3) {
         this.x = var1;
         this.y = var3;
      }
   }

   class="kw">public class="kw">static class Vector3 {
      class="kw">public double x;
      class="kw">public double y;
      class="kw">public double z;

      class="kw">public Vector3(double var1, double var3, double var5) {
         this.x = var1;
         this.y = var3;
         this.z = var5;
      }
   }
}