From 28fe6fe982468210fc1df039b2974a4f5370310a Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Wed, 21 Jul 2021 21:30:26 -0700 Subject: [PATCH] shapes: fix inverse_transform on ShapeBuilder. --- rtchallenge/src/shapes.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rtchallenge/src/shapes.rs b/rtchallenge/src/shapes.rs index bb9bc69..682b24b 100644 --- a/rtchallenge/src/shapes.rs +++ b/rtchallenge/src/shapes.rs @@ -47,11 +47,18 @@ impl PartialEq for Geometry { #[builder(default)] pub struct Shape { transform: Matrix4x4, + #[builder(private, default = "self.default_inverse_transform()?")] inverse_transform: Matrix4x4, pub material: Material, geometry: Geometry, } +impl ShapeBuilder { + fn default_inverse_transform(&self) -> Result { + Ok(self.transform.unwrap_or(Matrix4x4::identity()).inverse()) + } +} + impl Default for Shape { fn default() -> Shape { Shape {