Simplify member names

This commit is contained in:
numzero 2024-04-29 01:12:16 +03:00
parent f2cbe6413a
commit 5aca27ddd7

View File

@ -5,16 +5,16 @@ use riemann::{Decomp2, Metric, trace_iter};
pub fn main() { pub fn main() {
let space = Coil { let space = Coil {
coil_scale: 3.0, scale: 3.0,
coil_r: 300.0, r: 300.0,
coil_w: 50.0, w: 50.0,
coil_m: 10.0, m: 10.0,
}; };
let space = Rect { let space = Rect {
box_scale: 3.0, scale: 3.0,
box_a: vec2(- 30.0, - 300.0), a: vec2(- 30.0, - 300.0),
box_b: vec2(30.0, 300.0), b: vec2(30.0, 300.0),
box_m: vec2(20.0, 50.0), m: vec2(20.0, 50.0),
}; };
with_2d_graphics(move || { with_2d_graphics(move || {
let canvas = create_drawing_window("Refraction"); let canvas = create_drawing_window("Refraction");
@ -53,10 +53,10 @@ trait Renderable {
impl Renderable for Coil { impl Renderable for Coil {
fn render(&self, gc: &mut Vec<Draw>) { fn render(&self, gc: &mut Vec<Draw>) {
gc.new_path(); gc.new_path();
gc.circle(0.0, 0.0, self.coil_r + self.coil_w + self.coil_m); gc.circle(0.0, 0.0, self.r + self.w + self.m);
gc.circle(0.0, 0.0, self.coil_r + self.coil_w); gc.circle(0.0, 0.0, self.r + self.w);
gc.circle(0.0, 0.0, self.coil_r - self.coil_w); gc.circle(0.0, 0.0, self.r - self.w);
gc.circle(0.0, 0.0, self.coil_r - self.coil_w - self.coil_m); gc.circle(0.0, 0.0, self.r - self.w - self.m);
gc.winding_rule(WindingRule::EvenOdd); gc.winding_rule(WindingRule::EvenOdd);
gc.fill_color(Color::Rgba(0.8, 0.8, 0.8, 1.0)); gc.fill_color(Color::Rgba(0.8, 0.8, 0.8, 1.0));
gc.fill(); gc.fill();
@ -64,15 +64,15 @@ impl Renderable for Coil {
gc.stroke_color(Color::Rgba(1.0, 0.5, 0.0, 1.0)); gc.stroke_color(Color::Rgba(1.0, 0.5, 0.0, 1.0));
draw_fan(gc, self, vec2(-500.0, 0.0), vec2(1.0, 0.0), 1.0); draw_fan(gc, self, vec2(-500.0, 0.0), vec2(1.0, 0.0), 1.0);
gc.stroke_color(Color::Rgba(0.0, 0.5, 1.0, 1.0)); gc.stroke_color(Color::Rgba(0.0, 0.5, 1.0, 1.0));
draw_fan(gc, self, vec2(0.0, self.coil_r), vec2(1.0, 0.0), 1.0); draw_fan(gc, self, vec2(0.0, self.r), vec2(1.0, 0.0), 1.0);
} }
} }
impl Renderable for Rect { impl Renderable for Rect {
fn render(&self, gc: &mut Vec<Draw>) { fn render(&self, gc: &mut Vec<Draw>) {
gc.new_path(); gc.new_path();
gc.rect(self.box_a.x - self.box_m.x, self.box_a.y - self.box_m.y, self.box_b.x + self.box_m.x, self.box_b.y + self.box_m.y); gc.rect(self.a.x - self.m.x, self.a.y - self.m.y, self.b.x + self.m.x, self.b.y + self.m.y);
gc.rect(self.box_a.x, self.box_a.y, self.box_b.x, self.box_b.y); gc.rect(self.a.x, self.a.y, self.b.x, self.b.y);
gc.winding_rule(WindingRule::EvenOdd); gc.winding_rule(WindingRule::EvenOdd);
gc.fill_color(Color::Rgba(0.8, 0.8, 0.8, 1.0)); gc.fill_color(Color::Rgba(0.8, 0.8, 0.8, 1.0));
gc.fill(); gc.fill();
@ -80,15 +80,15 @@ impl Renderable for Rect {
gc.stroke_color(Color::Rgba(1.0, 0.5, 0.0, 1.0)); gc.stroke_color(Color::Rgba(1.0, 0.5, 0.0, 1.0));
draw_fan(gc, self, vec2(-500.0, 0.0), vec2(1.0, 0.0), 1.0); draw_fan(gc, self, vec2(-500.0, 0.0), vec2(1.0, 0.0), 1.0);
gc.stroke_color(Color::Rgba(0.0, 0.5, 1.0, 1.0)); gc.stroke_color(Color::Rgba(0.0, 0.5, 1.0, 1.0));
draw_fan(gc, self, vec2(0.0, 0.5 * self.box_a.y), vec2(1.0, 1.0), 1.0); draw_fan(gc, self, vec2(0.0, 0.5 * self.a.y), vec2(1.0, 1.0), 1.0);
} }
} }
struct Coil { struct Coil {
coil_m: f32, m: f32,
coil_scale: f32, scale: f32,
coil_r: f32, r: f32,
coil_w: f32, w: f32,
} }
impl Metric for Coil { impl Metric for Coil {
@ -96,8 +96,8 @@ impl Metric for Coil {
let r = pos.length(); let r = pos.length();
let dir = pos.normalize(); let dir = pos.normalize();
let s = smoothbox (r, vec2(self.coil_r - self.coil_w, self.coil_r + self.coil_w), self.coil_m); let s = smoothbox (r, vec2(self.r - self.w, self.r + self.w), self.m);
let t = 1.0.lerp(self.coil_r / r / self.coil_scale, s); let t = 1.0.lerp(self.r / r / self.scale, s);
Decomp2{ Decomp2{
ortho: Mat2::from_cols_array(&[ ortho: Mat2::from_cols_array(&[
@ -110,18 +110,18 @@ impl Metric for Coil {
} }
struct Rect { struct Rect {
box_scale: f32, scale: f32,
box_a: Vec2, a: Vec2,
box_b: Vec2, b: Vec2,
box_m: Vec2, m: Vec2,
} }
impl Metric for Rect { impl Metric for Rect {
fn halfmetric(&self, pos: Vec2) -> Decomp2 { fn halfmetric(&self, pos: Vec2) -> Decomp2 {
let s = smoothbox(pos.x, vec2(self.box_a.x, self.box_b.x), self.box_m.x) * smoothbox(pos.y, vec2(self.box_a.y, self.box_b.y), self.box_m.y); let s = smoothbox(pos.x, vec2(self.a.x, self.b.x), self.m.x) * smoothbox(pos.y, vec2(self.a.y, self.b.y), self.m.y);
Decomp2{ Decomp2{
ortho: Mat2::IDENTITY, ortho: Mat2::IDENTITY,
diag: vec2(1.0, self.box_scale.powf(-s)), diag: vec2(1.0, self.scale.powf(-s)),
} }
} }
} }