feat(04-01): add Vec3.lerp and ParticleTrail sampler with JUnit suite
- Vec3.lerp(other, t) for linear interpolation between two points - ParticleTrail.sample(from, to, density) emits density-based interpolated points strictly between endpoints (endpoints excluded by construction) - TRAIL_DENSITY = 4.0 particles per block - 6 ParticleTrail tests + 3 Vec3.lerp tests, all green - Zero Hytale imports — chain/ frontier preserved
This commit is contained in:
@@ -41,4 +41,34 @@ final class Vec3Test {
|
||||
assertEquals(12.0, a.distanceSquared(b), 1e-9);
|
||||
assertTrue(a.distance(b) > 3.4 && a.distance(b) < 3.5);
|
||||
}
|
||||
|
||||
@Test
|
||||
void lerpAtZeroReturnsFrom() {
|
||||
Vec3 from = Vec3.ZERO;
|
||||
Vec3 to = new Vec3(10, 10, 10);
|
||||
Vec3 result = from.lerp(to, 0.0);
|
||||
assertEquals(from.x(), result.x(), 1e-9);
|
||||
assertEquals(from.y(), result.y(), 1e-9);
|
||||
assertEquals(from.z(), result.z(), 1e-9);
|
||||
}
|
||||
|
||||
@Test
|
||||
void lerpAtOneReturnsTo() {
|
||||
Vec3 from = Vec3.ZERO;
|
||||
Vec3 to = new Vec3(10, 10, 10);
|
||||
Vec3 result = from.lerp(to, 1.0);
|
||||
assertEquals(to.x(), result.x(), 1e-9);
|
||||
assertEquals(to.y(), result.y(), 1e-9);
|
||||
assertEquals(to.z(), result.z(), 1e-9);
|
||||
}
|
||||
|
||||
@Test
|
||||
void lerpAtHalfReturnsMidpoint() {
|
||||
Vec3 from = new Vec3(0, 0, 0);
|
||||
Vec3 to = new Vec3(10, 0, 0);
|
||||
Vec3 result = from.lerp(to, 0.5);
|
||||
assertEquals(5.0, result.x(), 1e-9);
|
||||
assertEquals(0.0, result.y(), 1e-9);
|
||||
assertEquals(0.0, result.z(), 1e-9);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user