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 { 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;