Another rename
This commit is contained in:
parent
6c7c936ead
commit
4feaf2428e
|
|
@ -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 {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user