Add comments
This commit is contained in:
parent
6965d7360e
commit
1cf2518568
|
|
@ -41,7 +41,9 @@ pub fn main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Location {
|
struct Location {
|
||||||
|
/// Положение в основной СК
|
||||||
pos: Vec2,
|
pos: Vec2,
|
||||||
|
/// Преобразование вектора из локальной ортонормированной в основную СК
|
||||||
rot: Mat2,
|
rot: Mat2,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -78,6 +80,7 @@ impl Space {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Выполняет один шаг трассировки. Работает в любой части пространства, но вне Boundary доступны более эффективные методы.
|
/// Выполняет один шаг трассировки. Работает в любой части пространства, но вне Boundary доступны более эффективные методы.
|
||||||
|
/// ray задаётся в основной СК.
|
||||||
fn trace_step(&self, ray: Ray) -> Ray {
|
fn trace_step(&self, ray: Ray) -> Ray {
|
||||||
let a: Vec2 = -riemann::contract2(riemann::krist(&self.rect, ray.pos), ray.dir);
|
let a: Vec2 = -riemann::contract2(riemann::krist(&self.rect, ray.pos), ray.dir);
|
||||||
let v = ray.dir + a * DT;
|
let v = ray.dir + a * DT;
|
||||||
|
|
@ -85,7 +88,8 @@ impl Space {
|
||||||
Ray { pos: p, dir: v }
|
Ray { pos: p, dir: v }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Выполняет один шаг перемещения. Работает в любой части пространства, но вне Boundary доступны более эффективные методы.
|
/// Выполняет один шаг перемещения. Работает в любой части пространства.
|
||||||
|
/// off задаётся в локальной СК. Рекомендуется считать небольшими шагами.
|
||||||
fn move_step(&self, loc: Location, off: Vec2) -> Location {
|
fn move_step(&self, loc: Location, off: Vec2) -> Location {
|
||||||
let corr = Mat2::IDENTITY - riemann::contract(riemann::krist(&self.rect, loc.pos), loc.rot * off);
|
let corr = Mat2::IDENTITY - riemann::contract(riemann::krist(&self.rect, loc.pos), loc.rot * off);
|
||||||
let p = loc.pos + corr * loc.rot * off;
|
let p = loc.pos + corr * loc.rot * off;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user