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