From f5b9e57575cd0ab35fc3d5658e86fede76cca46b Mon Sep 17 00:00:00 2001 From: Nicholas Bottone Date: Fri, 8 Dec 2023 14:54:46 -0500 Subject: Refactor scale4 function to modify the currentCTM matrix --- src/utils/sceneparser.cpp | 14 +++++++------- src/utils/sceneparser.h | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/utils/sceneparser.cpp b/src/utils/sceneparser.cpp index 2fa1953..6d668ff 100644 --- a/src/utils/sceneparser.cpp +++ b/src/utils/sceneparser.cpp @@ -43,7 +43,7 @@ void initTree(SceneNode* currentNode, std::vector *shapes, std: SceneParser::translate4(currentTranslation4d, t->translate); break; case TransformationType::TRANSFORMATION_SCALE: - SceneParser::scale4(currentTranslation4d, t->scale); + SceneParser::scale4(currentCTM, t->scale); break; case TransformationType::TRANSFORMATION_ROTATE: currentCTM *= SceneParser::getRotationMatrix4(t->angle, t->rotate3, t->rotateW); @@ -176,11 +176,11 @@ void SceneParser::translate4( } void SceneParser::scale4( - glm::vec4 &v1, - glm::vec4 v2 + glm::mat4 &m, + glm::vec4 v ) { - v1.x *= v2.x; - v1.y *= v2.y; - v1.z *= v2.z; - v1.w *= v2.w; + m[0][0] *= v.x; + m[1][1] *= v.y; + m[2][2] *= v.z; + m[3][3] *= v.w; } \ No newline at end of file diff --git a/src/utils/sceneparser.h b/src/utils/sceneparser.h index fa8a2ac..130156a 100644 --- a/src/utils/sceneparser.h +++ b/src/utils/sceneparser.h @@ -35,5 +35,5 @@ public: static void translate4(glm::vec4 &v1, glm::vec4 v2); - static void scale4(glm::vec4 &v1, glm::vec4 v2); + static void scale4(glm::mat4 &m, glm::vec4 v); }; -- cgit v1.2.3-70-g09d2