From bbbac6ff926bca61f6b1591fcfbaffcbb88d5b6f Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Fri, 15 Aug 2014 22:33:22 -0700 Subject: [PATCH] Fix up Object object space conversions - Ray directions shouldn't be translated - Implement vector translation to global space --- src/object.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/object.cc b/src/object.cc index e9afe35..80b2151 100644 --- a/src/object.cc +++ b/src/object.cc @@ -16,6 +16,7 @@ using charles::basics::Ray; +using charles::basics::Matrix4; using charles::basics::Vector4; @@ -25,7 +26,7 @@ namespace charles { * charles::Object::Object -- */ Object::Object(const Vector4& origin) - : mTranslation(basics::Matrix4::Translation(origin.X(), origin.Y(), origin.Z())), + : mTranslation(Matrix4::Translation(origin.X(), origin.Y(), origin.Z())), mMaterial() { } @@ -99,7 +100,6 @@ Object::ToObjectSpace(Ray ray) const { ray.origin = mTranslation * ray.origin; - ray.direction = mTranslation * ray.direction; return ray; } @@ -122,7 +122,7 @@ Vector4 Object::FromObjectSpace(const Vector4& v) const { - return v; + return Inverse(mTranslation) * v; }