diff options
Diffstat (limited to 'src/transform.rs')
-rw-r--r-- | src/transform.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/transform.rs b/src/transform.rs index 3994f1d..0b65728 100644 --- a/src/transform.rs +++ b/src/transform.rs @@ -23,12 +23,19 @@ impl Sample for Polar { } } +pub struct Transpose(pub Box<dyn Sample>); +impl Sample for Transpose { + fn sample(&mut self, x: f64, y: f64) -> Color { + self.0.sample(y, x) + } +} + pub struct Translate { pub inner: Box<dyn Sample>, pub offset: (f64, f64), } impl Sample for Translate { fn sample(&mut self, x: f64, y: f64) -> Color { - self.inner.sample(x + self.offset.0, y + self.offset.1) + self.inner.sample(x - self.offset.0, y - self.offset.1) } } |