Another rename

This commit is contained in:
numzero 2024-06-11 13:52:29 +03:00
parent 6c7c936ead
commit 4feaf2428e

View File

@ -224,7 +224,7 @@ impl Space {
Outer => loc, Outer => loc,
Inner => { Inner => {
let Vec2 { x: u, y } = loc.pos; // в основной СК let Vec2 { x: u, y } = loc.pos; // в основной СК
let v = self.tube.u(y) + y.signum() * (self.tube.external_halflength - self.tube.internal_halflength); let v = self.tube.v(y) + y.signum() * (self.tube.external_halflength - self.tube.internal_halflength);
Location { Location {
pos: vec2(u, v), // в плоском продолжении СК Outer на область Inner pos: vec2(u, v), // в плоском продолжении СК Outer на область Inner
rot: self.global_to_flat(loc.pos) * loc.rot, rot: self.global_to_flat(loc.pos) * loc.rot,
@ -240,7 +240,7 @@ impl Space {
Inner | Outer => { Inner | Outer => {
// NB: не работает для частей Outer с |y| < external_halflength. Но они и не нужны. // NB: не работает для частей Outer с |y| < external_halflength. Но они и не нужны.
Location { Location {
pos: vec2(pos.x, self.tube.u(pos.y)), // в плоской СК для Inner или её продолжении на Outer pos: vec2(pos.x, self.tube.v(pos.y)), // в плоской СК для Inner или её продолжении на Outer
rot: self.global_to_flat(pos) * rot, rot: self.global_to_flat(pos) * rot,
} }
} }
@ -583,24 +583,24 @@ struct TubeInside {
impl FlatCell for TubeInside { impl FlatCell for TubeInside {
fn pos_to_global(&self, pos: Vec2) -> Vec2 { fn pos_to_global(&self, pos: Vec2) -> Vec2 {
vec2(pos.x, self.tube.x(pos.y)) vec2(pos.x, self.tube.y(pos.y))
} }
fn pos_to_local(&self, pos: Vec2) -> Vec2 { fn pos_to_local(&self, pos: Vec2) -> Vec2 {
vec2(pos.x, self.tube.u(pos.y)) vec2(pos.x, self.tube.v(pos.y))
} }
fn ray_to_global(&self, ray: Ray) -> Ray { fn ray_to_global(&self, ray: Ray) -> Ray {
Ray { Ray {
pos: self.pos_to_global(ray.pos), pos: self.pos_to_global(ray.pos),
dir: vec2(ray.dir.x, self.tube.dx(ray.pos.y) * ray.dir.y), dir: vec2(ray.dir.x, self.tube.dy(ray.pos.y) * ray.dir.y),
} }
} }
fn ray_to_local(&self, ray: Ray) -> Ray { fn ray_to_local(&self, ray: Ray) -> Ray {
Ray { Ray {
pos: self.pos_to_local(ray.pos), pos: self.pos_to_local(ray.pos),
dir: vec2(ray.dir.x, self.tube.du(ray.pos.y) * ray.dir.y), dir: vec2(ray.dir.x, self.tube.dv(ray.pos.y) * ray.dir.y),
} }
} }
@ -621,10 +621,10 @@ impl Tube {
fn fx(&self) -> fns::TubeX { fns::TubeX { min: self.inner_radius, max: self.outer_radius } } fn fx(&self) -> fns::TubeX { fns::TubeX { min: self.inner_radius, max: self.outer_radius } }
fn fy(&self) -> fns::TubeY { fns::TubeY { internal: self.internal_halflength, external: self.external_halflength } } fn fy(&self) -> fns::TubeY { fns::TubeY { internal: self.internal_halflength, external: self.external_halflength } }
pub fn x(&self, u: f32) -> f32 { self.fy().x(u) } pub fn y(&self, v: f32) -> f32 { self.fy().x(v) }
pub fn u(&self, x: f32) -> f32 { self.fy().u(x) } pub fn v(&self, y: f32) -> f32 { self.fy().u(y) }
pub fn dx(&self, u: f32) -> f32 { self.fy().dx(u) } pub fn dy(&self, v: f32) -> f32 { self.fy().dx(v) }
pub fn du(&self, x: f32) -> f32 { self.fy().du(x) } pub fn dv(&self, y: f32) -> f32 { self.fy().du(y) }
} }
mod fns { mod fns {
@ -705,32 +705,32 @@ fn test_tube() {
external_halflength: 100.0, external_halflength: 100.0,
internal_halflength: 10.0, internal_halflength: 10.0,
}; };
assert_abs_diff_eq!(t.x(t.internal_halflength), t.external_halflength, epsilon = 1.0e-5); assert_abs_diff_eq!(t.y(t.internal_halflength), t.external_halflength, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.x(-t.internal_halflength), -t.external_halflength, epsilon = 1.0e-5); assert_abs_diff_eq!(t.y(-t.internal_halflength), -t.external_halflength, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.u(t.external_halflength), t.internal_halflength, epsilon = 1.0e-5); assert_abs_diff_eq!(t.v(t.external_halflength), t.internal_halflength, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.u(-t.external_halflength), -t.internal_halflength, epsilon = 1.0e-5); assert_abs_diff_eq!(t.v(-t.external_halflength), -t.internal_halflength, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.dx(t.internal_halflength), 1.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.dy(t.internal_halflength), 1.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.dx(-t.internal_halflength), 1.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.dy(-t.internal_halflength), 1.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.du(t.external_halflength), 1.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.dv(t.external_halflength), 1.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.du(-t.external_halflength), 1.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.dv(-t.external_halflength), 1.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.u(t.x(1.0)), 1.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.v(t.y(1.0)), 1.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.u(t.x(5.0)), 5.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.v(t.y(5.0)), 5.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.u(t.x(-5.0)), -5.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.v(t.y(-5.0)), -5.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.u(t.x(10.0)), 10.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.v(t.y(10.0)), 10.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.x(t.u(10.0)), 10.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.y(t.v(10.0)), 10.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.x(t.u(50.0)), 50.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.y(t.v(50.0)), 50.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.x(t.u(-50.0)), -50.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.y(t.v(-50.0)), -50.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.x(t.u(100.0)), 100.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.y(t.v(100.0)), 100.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.du(10.0) * t.dx(t.u(10.0)), 1.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.dv(10.0) * t.dy(t.v(10.0)), 1.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.du(50.0) * t.dx(t.u(50.0)), 1.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.dv(50.0) * t.dy(t.v(50.0)), 1.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.du(-50.0) * t.dx(t.u(-50.0)), 1.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.dv(-50.0) * t.dy(t.v(-50.0)), 1.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.du(100.0) * t.dx(t.u(100.0)), 1.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.dv(100.0) * t.dy(t.v(100.0)), 1.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.dx(1.0) * t.du(t.x(1.0)), 1.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.dy(1.0) * t.dv(t.y(1.0)), 1.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.dx(5.0) * t.du(t.x(5.0)), 1.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.dy(5.0) * t.dv(t.y(5.0)), 1.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.dx(-5.0) * t.du(t.x(-5.0)), 1.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.dy(-5.0) * t.dv(t.y(-5.0)), 1.0, epsilon = 1.0e-5);
assert_abs_diff_eq!(t.dx(10.0) * t.du(t.x(10.0)), 1.0, epsilon = 1.0e-5); assert_abs_diff_eq!(t.dy(10.0) * t.dv(t.y(10.0)), 1.0, epsilon = 1.0e-5);
} }
trait FloatExt2 { trait FloatExt2 {