Add comments

This commit is contained in:
numzero 2024-05-27 18:20:48 +03:00
parent 6965d7360e
commit 1cf2518568

View File

@ -41,7 +41,9 @@ pub fn main() {
}
struct Location {
/// Положение в основной СК
pos: Vec2,
/// Преобразование вектора из локальной ортонормированной в основную СК
rot: Mat2,
}
@ -78,6 +80,7 @@ impl Space {
}
/// Выполняет один шаг трассировки. Работает в любой части пространства, но вне Boundary доступны более эффективные методы.
/// ray задаётся в основной СК.
fn trace_step(&self, ray: Ray) -> Ray {
let a: Vec2 = -riemann::contract2(riemann::krist(&self.rect, ray.pos), ray.dir);
let v = ray.dir + a * DT;
@ -85,7 +88,8 @@ impl Space {
Ray { pos: p, dir: v }
}
/// Выполняет один шаг перемещения. Работает в любой части пространства, но вне Boundary доступны более эффективные методы.
/// Выполняет один шаг перемещения. Работает в любой части пространства.
/// off задаётся в локальной СК. Рекомендуется считать небольшими шагами.
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 p = loc.pos + corr * loc.rot * off;