mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-01-02 13:56:40 +00:00
Scaffolding changes
This commit is contained in:
@@ -17,11 +17,6 @@ public class IrisInterpolation
|
||||
return sqt / (alpha * (sqt - Math.pow(t, alpha - 1)) + 1.0d);
|
||||
}
|
||||
|
||||
public static double lerp(double a, double b, double f)
|
||||
{
|
||||
return a + (f * (b - a));
|
||||
}
|
||||
|
||||
public static float lerpf(float a, float b, float f)
|
||||
{
|
||||
return a + (f * (b - a));
|
||||
@@ -52,11 +47,6 @@ public class IrisInterpolation
|
||||
return a + (parametric(f, v) * (b - a));
|
||||
}
|
||||
|
||||
public static double blerp(double a, double b, double c, double d, double tx, double ty)
|
||||
{
|
||||
return lerp(lerp(a, b, tx), lerp(c, d, tx), ty);
|
||||
}
|
||||
|
||||
public static double blerp(double a, double b, double c, double d, double tx, double ty, InterpolationType type)
|
||||
{
|
||||
if(type.equals(InterpolationType.LINEAR))
|
||||
@@ -107,76 +97,6 @@ public class IrisInterpolation
|
||||
return parametric(hermite(p0, p1, p2, p3, mu, tension, bias), a);
|
||||
}
|
||||
|
||||
public static double hermite(double p0, double p1, double p2, double p3, double mu, double tension, double bias)
|
||||
{
|
||||
double m0, m1, mu2, mu3;
|
||||
double a0, a1, a2, a3;
|
||||
|
||||
mu2 = mu * mu;
|
||||
mu3 = mu2 * mu;
|
||||
m0 = (p1 - p0) * (1 + bias) * (1 - tension) / 2;
|
||||
m0 += (p2 - p1) * (1 - bias) * (1 - tension) / 2;
|
||||
m1 = (p2 - p1) * (1 + bias) * (1 - tension) / 2;
|
||||
m1 += (p3 - p2) * (1 - bias) * (1 - tension) / 2;
|
||||
a0 = 2 * mu3 - 3 * mu2 + 1;
|
||||
a1 = mu3 - 2 * mu2 + mu;
|
||||
a2 = mu3 - mu2;
|
||||
a3 = -2 * mu3 + 3 * mu2;
|
||||
|
||||
return (a0 * p1 + a1 * m0 + a2 * m1 + a3 * p2);
|
||||
}
|
||||
|
||||
public static double bihermite(double p00, double p01, double p02, double p03, double p10, double p11, double p12, double p13, double p20, double p21, double p22, double p23, double p30, double p31, double p32, double p33, double mux, double muy, double tension, double bias)
|
||||
{
|
||||
//@builder
|
||||
return hermite(
|
||||
hermite(p00, p01, p02, p03, muy, tension, bias),
|
||||
hermite(p10, p11, p12, p13, muy, tension, bias),
|
||||
hermite(p20, p21, p22, p23, muy, tension, bias),
|
||||
hermite(p30, p31, p32, p33, muy, tension, bias),
|
||||
mux, tension, bias);
|
||||
//@done
|
||||
}
|
||||
|
||||
public static double trihermite(double p000, double p001, double p002, double p003, double p010, double p011, double p012, double p013, double p020, double p021, double p022, double p023, double p030, double p031, double p032, double p033, double p100, double p101, double p102, double p103, double p110, double p111, double p112, double p113, double p120, double p121, double p122, double p123, double p130, double p131, double p132, double p133, double p200, double p201, double p202, double p203, double p210, double p211, double p212, double p213, double p220, double p221, double p222, double p223, double p230, double p231, double p232, double p233, double p300, double p301, double p302, double p303, double p310, double p311, double p312, double p313, double p320, double p321, double p322, double p323, double p330, double p331, double p332, double p333, double mux, double muy, double muz, double tension, double bias)
|
||||
{
|
||||
//@builder
|
||||
return hermite(
|
||||
|
||||
hermite(
|
||||
hermite(p000, p001, p002, p003, muy, tension, bias),
|
||||
hermite(p010, p011, p012, p013, muy, tension, bias),
|
||||
hermite(p020, p021, p022, p023, muy, tension, bias),
|
||||
hermite(p030, p031, p032, p033, muy, tension, bias),
|
||||
mux, tension, bias),
|
||||
|
||||
hermite(
|
||||
hermite(p100, p101, p102, p103, muy, tension, bias),
|
||||
hermite(p110, p111, p112, p113, muy, tension, bias),
|
||||
hermite(p120, p121, p122, p123, muy, tension, bias),
|
||||
hermite(p130, p131, p132, p133, muy, tension, bias),
|
||||
mux, tension, bias),
|
||||
|
||||
hermite(
|
||||
hermite(p200, p201, p202, p203, muy, tension, bias),
|
||||
hermite(p210, p211, p212, p213, muy, tension, bias),
|
||||
hermite(p220, p221, p222, p223, muy, tension, bias),
|
||||
hermite(p230, p231, p232, p233, muy, tension, bias),
|
||||
mux, tension, bias),
|
||||
|
||||
hermite(
|
||||
hermite(p300, p301, p302, p303, muy, tension, bias),
|
||||
hermite(p310, p311, p312, p313, muy, tension, bias),
|
||||
hermite(p320, p321, p322, p323, muy, tension, bias),
|
||||
hermite(p330, p331, p332, p333, muy, tension, bias),
|
||||
mux, tension, bias),
|
||||
muz,
|
||||
tension,
|
||||
bias
|
||||
);
|
||||
//@done
|
||||
}
|
||||
|
||||
public static double bihermiteBezier(double p00, double p01, double p02, double p03, double p10, double p11, double p12, double p13, double p20, double p21, double p22, double p23, double p30, double p31, double p32, double p33, double mux, double muy, double tension, double bias)
|
||||
{
|
||||
//@builder
|
||||
@@ -201,6 +121,35 @@ public class IrisInterpolation
|
||||
//@done
|
||||
}
|
||||
|
||||
public static double cubicBezier(double p0, double p1, double p2, double p3, double mu)
|
||||
{
|
||||
return bezier(cubic(p0, p1, p2, p3, mu));
|
||||
}
|
||||
|
||||
public static double cubicParametric(double p0, double p1, double p2, double p3, double mu, double a)
|
||||
{
|
||||
return parametric(cubic(p0, p1, p2, p3, mu), a);
|
||||
}
|
||||
|
||||
public static double hermite(double p0, double p1, double p2, double p3, double mu, double tension, double bias)
|
||||
{
|
||||
double m0, m1, mu2, mu3;
|
||||
double a0, a1, a2, a3;
|
||||
|
||||
mu2 = mu * mu;
|
||||
mu3 = mu2 * mu;
|
||||
m0 = (p1 - p0) * (1 + bias) * (1 - tension) / 2;
|
||||
m0 += (p2 - p1) * (1 - bias) * (1 - tension) / 2;
|
||||
m1 = (p2 - p1) * (1 + bias) * (1 - tension) / 2;
|
||||
m1 += (p3 - p2) * (1 - bias) * (1 - tension) / 2;
|
||||
a0 = 2 * mu3 - 3 * mu2 + 1;
|
||||
a1 = mu3 - 2 * mu2 + mu;
|
||||
a2 = mu3 - mu2;
|
||||
a3 = -2 * mu3 + 3 * mu2;
|
||||
|
||||
return (a0 * p1 + a1 * m0 + a2 * m1 + a3 * p2);
|
||||
}
|
||||
|
||||
public static double cubic(double p0, double p1, double p2, double p3, double mu)
|
||||
{
|
||||
double a0, a1, a2, a3, mu2;
|
||||
@@ -214,14 +163,9 @@ public class IrisInterpolation
|
||||
return a0 * mu * mu2 + a1 * mu2 + a2 * mu + a3;
|
||||
}
|
||||
|
||||
public static double cubicBezier(double p0, double p1, double p2, double p3, double mu)
|
||||
public static double getTriStarcast(int x, int y, int z, double rad, double checks, NoiseProvider n)
|
||||
{
|
||||
return bezier(cubic(p0, p1, p2, p3, mu));
|
||||
}
|
||||
|
||||
public static double cubicParametric(double p0, double p1, double p2, double p3, double mu, double a)
|
||||
{
|
||||
return parametric(cubic(p0, p1, p2, p3, mu), a);
|
||||
return (getStarcast(x, z, rad, checks, n) + getStarcast(x, y, rad, checks, n) + getStarcast(y, z, rad, checks, n)) / 3D;
|
||||
}
|
||||
|
||||
public static double bicubic(double p00, double p01, double p02, double p03, double p10, double p11, double p12, double p13, double p20, double p21, double p22, double p23, double p30, double p31, double p32, double p33, double mux, double muy)
|
||||
@@ -236,6 +180,89 @@ public class IrisInterpolation
|
||||
//@done
|
||||
}
|
||||
|
||||
public static double bihermite(double p00, double p01, double p02, double p03, double p10, double p11, double p12, double p13, double p20, double p21, double p22, double p23, double p30, double p31, double p32, double p33, double mux, double muy, double tension, double bias)
|
||||
{
|
||||
//@builder
|
||||
return hermite(
|
||||
hermite(p00, p01, p02, p03, muy, tension, bias),
|
||||
hermite(p10, p11, p12, p13, muy, tension, bias),
|
||||
hermite(p20, p21, p22, p23, muy, tension, bias),
|
||||
hermite(p30, p31, p32, p33, muy, tension, bias),
|
||||
mux, tension, bias);
|
||||
//@done
|
||||
}
|
||||
|
||||
public static double trihermite(double p000, double p001, double p002, double p003, double p010, double p011, double p012, double p013, double p020, double p021, double p022, double p023, double p030, double p031, double p032, double p033, double p100, double p101, double p102, double p103, double p110, double p111, double p112, double p113, double p120, double p121, double p122, double p123, double p130, double p131, double p132, double p133, double p200, double p201, double p202, double p203, double p210, double p211, double p212, double p213, double p220, double p221, double p222, double p223, double p230, double p231, double p232, double p233, double p300, double p301, double p302, double p303, double p310, double p311, double p312, double p313, double p320, double p321, double p322, double p323, double p330, double p331, double p332, double p333, double mux, double muy, double muz, double tension, double bias)
|
||||
{
|
||||
//@builder
|
||||
return hermite(
|
||||
bihermite(p000, p001, p002, p003,
|
||||
p010, p011, p012, p013,
|
||||
p020, p021, p022, p023,
|
||||
p030, p031, p032, p033,
|
||||
mux, muy, tension, bias),
|
||||
bihermite(p100, p101, p102, p103,
|
||||
p110, p111, p112, p113,
|
||||
p120, p121, p122, p123,
|
||||
p130, p131, p132, p133,
|
||||
mux, muy, tension, bias),
|
||||
bihermite(p200, p201, p202, p203,
|
||||
p210, p211, p212, p213,
|
||||
p220, p221, p222, p223,
|
||||
p230, p231, p232, p233,
|
||||
mux, muy, tension, bias),
|
||||
bihermite(p300, p301, p302, p303,
|
||||
p310, p311, p312, p313,
|
||||
p320, p321, p322, p323,
|
||||
p330, p331, p332, p333,
|
||||
mux, muy, tension, bias),
|
||||
muz, tension, bias);
|
||||
//@done
|
||||
}
|
||||
|
||||
public static double tricubic(double p000, double p001, double p002, double p003, double p010, double p011, double p012, double p013, double p020, double p021, double p022, double p023, double p030, double p031, double p032, double p033, double p100, double p101, double p102, double p103, double p110, double p111, double p112, double p113, double p120, double p121, double p122, double p123, double p130, double p131, double p132, double p133, double p200, double p201, double p202, double p203, double p210, double p211, double p212, double p213, double p220, double p221, double p222, double p223, double p230, double p231, double p232, double p233, double p300, double p301, double p302, double p303, double p310, double p311, double p312, double p313, double p320, double p321, double p322, double p323, double p330, double p331, double p332, double p333, double mux, double muy, double muz)
|
||||
{
|
||||
//@builder
|
||||
return cubic(
|
||||
bicubic(p000, p001, p002, p003,
|
||||
p010, p011, p012, p013,
|
||||
p020, p021, p022, p023,
|
||||
p030, p031, p032, p033,
|
||||
mux, muy),
|
||||
bicubic(p100, p101, p102, p103,
|
||||
p110, p111, p112, p113,
|
||||
p120, p121, p122, p123,
|
||||
p130, p131, p132, p133,
|
||||
mux, muy),
|
||||
bicubic(p200, p201, p202, p203,
|
||||
p210, p211, p212, p213,
|
||||
p220, p221, p222, p223,
|
||||
p230, p231, p232, p233,
|
||||
mux, muy),
|
||||
bicubic(p300, p301, p302, p303,
|
||||
p310, p311, p312, p313,
|
||||
p320, p321, p322, p323,
|
||||
p330, p331, p332, p333,
|
||||
mux, muy),
|
||||
muz);
|
||||
//@done
|
||||
}
|
||||
|
||||
public static double lerp(double a, double b, double f)
|
||||
{
|
||||
return a + (f * (b - a));
|
||||
}
|
||||
|
||||
public static double blerp(double a, double b, double c, double d, double tx, double ty)
|
||||
{
|
||||
return lerp(lerp(a, b, tx), lerp(c, d, tx), ty);
|
||||
}
|
||||
|
||||
public static double trilerp(double v1, double v2, double v3, double v4, double v5, double v6, double v7, double v8, double x, double y, double z)
|
||||
{
|
||||
return lerp(blerp(v1, v2, v3, v4, x, y), blerp(v5, v6, v7, v8, x, y), z);
|
||||
}
|
||||
|
||||
public static double bicubicBezier(double p00, double p01, double p02, double p03, double p10, double p11, double p12, double p13, double p20, double p21, double p22, double p23, double p30, double p31, double p32, double p33, double mux, double muy)
|
||||
{
|
||||
//@builder
|
||||
@@ -260,11 +287,6 @@ public class IrisInterpolation
|
||||
//@done
|
||||
}
|
||||
|
||||
public static double trilerp(double v1, double v2, double v3, double v4, double v5, double v6, double v7, double v8, double x, double y, double z)
|
||||
{
|
||||
return lerp(blerp(v1, v2, v3, v4, x, y), blerp(v5, v6, v7, v8, x, y), z);
|
||||
}
|
||||
|
||||
public static CNG cng = NoiseStyle.SIMPLEX.create(new RNG());
|
||||
|
||||
public static double getBilinearNoise(int x, int z, double rad, NoiseProvider n)
|
||||
@@ -275,7 +297,7 @@ public class IrisInterpolation
|
||||
int z1 = (int) Math.round(fz * rad);
|
||||
int x2 = (int) Math.round((fx + 1) * rad);
|
||||
int z2 = (int) Math.round((fz + 1) * rad);
|
||||
|
||||
|
||||
double px = rangeScale(0, 1, x1, x2, x);
|
||||
double pz = rangeScale(0, 1, z1, z2, z);
|
||||
//@builder
|
||||
|
||||
@@ -681,12 +681,15 @@ public class KList<T> extends ArrayList<T> implements List<T>
|
||||
return m;
|
||||
}
|
||||
|
||||
public void addIfMissing(T t)
|
||||
public boolean addIfMissing(T t)
|
||||
{
|
||||
if(!contains(t))
|
||||
{
|
||||
add(t);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public void addAllIfMissing(KList<T> t)
|
||||
|
||||
Reference in New Issue
Block a user