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