Simplify riemann::trace_iter

This commit is contained in:
numzero 2024-09-14 14:23:47 +03:00
parent d90f473bd6
commit d2d4dcdbca

View File

@ -62,7 +62,6 @@ pub struct TraceIter<'a, M: Metric> {
space: &'a M,
p: Vec2,
v: Vec2,
dt: f32,
}
impl<'a, M: Metric> Iterator for TraceIter<'a, M> {
@ -70,8 +69,8 @@ impl<'a, M: Metric> Iterator for TraceIter<'a, M> {
fn next(&mut self) -> Option<Self::Item> {
let a: Vec2 = -contract2(krist(self.space, self.p), self.v);
self.v = self.v + a * self.dt;
self.p = self.p + self.v * self.dt;
self.v += a;
self.p += self.v;
Some(self.p)
}
}
@ -80,8 +79,7 @@ pub fn trace_iter<M: Metric>(space: &M, base: Vec2, dir: Vec2, dt: f32) -> Trace
TraceIter {
space,
p: base,
v: space.normalize_vec_at(base, dir),
dt,
v: dt * space.normalize_vec_at(base, dir),
}
}