Neater code
This commit is contained in:
parent
4e6c3b19ae
commit
7890107832
|
|
@ -629,28 +629,27 @@ trait FloatExt2 {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl FloatExt2 for (f32, f32) {
|
impl FloatExt2 for (f32, f32) {
|
||||||
fn lerp(&self, t: f32) -> f32 {
|
fn lerp(&self, t: f32) -> f32 { f32::lerp(self.0, self.1, t) }
|
||||||
self.0.lerp(self.1, t)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Metric for Rect {
|
impl Metric for Rect {
|
||||||
fn sqrt_at(&self, pos: Vec2) -> Decomp2 {
|
fn sqrt_at(&self, pos: Vec2) -> Decomp2 {
|
||||||
let sx = self.fx().value(pos.x);
|
let sx = self.fx().value(pos.x);
|
||||||
let sy = self.fy().value(pos.y);
|
let sy = self.fy().value(pos.y);
|
||||||
|
let s = sx + sy - sx * sy;
|
||||||
assert!(sx.is_finite());
|
assert!(sx.is_finite());
|
||||||
assert!(sy.is_finite());
|
assert!(sy.is_finite());
|
||||||
assert!(sy > 0.0);
|
assert!(sy > 0.0);
|
||||||
Decomp2 {
|
Decomp2 {
|
||||||
ortho: Mat2::IDENTITY,
|
ortho: Mat2::IDENTITY,
|
||||||
diag: vec2(1.0, (sy, 1.0).lerp(sx)),
|
diag: vec2(1.0, s),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn part_derivs_at(&self, pos: Vec2) -> Tens2 {
|
fn part_derivs_at(&self, pos: Vec2) -> Tens2 {
|
||||||
let sx = self.fx().value(pos.x);
|
let sx = self.fx().value(pos.x);
|
||||||
let sy = self.fy().value(pos.y);
|
let sy = self.fy().value(pos.y);
|
||||||
let s = (sy, 1.0).lerp(sx);
|
let s = sx + sy - sx * sy;
|
||||||
let dsx_dx = self.fx().derivative(pos.x);
|
let dsx_dx = self.fx().derivative(pos.x);
|
||||||
let dsy_dy = self.fy().derivative(pos.y);
|
let dsy_dy = self.fy().derivative(pos.y);
|
||||||
let ds2_dx = 2.0 * s * (1.0 - sy) * dsx_dx;
|
let ds2_dx = 2.0 * s * (1.0 - sy) * dsx_dx;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user