Simplify riemann::trace_iter
This commit is contained in:
parent
d90f473bd6
commit
d2d4dcdbca
|
|
@ -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,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user