From 3f504625fad519476535e03ef363580e9067efaa Mon Sep 17 00:00:00 2001 From: Nor Khasyatillah Date: Fri, 6 Sep 2024 20:27:44 +0700 Subject: [PATCH] small optimization --- src/lib.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 7d9d43f..f6820fa 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -177,9 +177,8 @@ impl Lolcrab { #[doc(hidden)] pub fn get_color(&mut self) -> Color { if self.linear { - let position = - self.offset + self.x as f32 * self.shift_x + self.y as f32 * self.shift_y; - return self.gradient.repeat_at(position); + let t = self.offset + self.x as f32 * self.shift_x + self.y as f32 * self.shift_y; + return self.gradient.at(modulo(t, 1.0)); } let position = self.noise.get([ self.x as f64 * self.noise_scale, @@ -459,6 +458,11 @@ fn remap(t: f32, a: f32, b: f32, c: f32, d: f32) -> f32 { (t - a) * ((d - c) / (b - a)) + c } +#[inline] +fn modulo(x: f32, y: f32) -> f32 { + (x % y + y) % y +} + #[cfg(test)] mod tests { use super::Lolcrab;