diff gldragon.cpp @ 36:d640f2a34031

Only scale/translate/rotate the model if those attributes have been set in the scenefile.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 01 Dec 2019 23:12:04 +0200
parents 1215fdd0a8ab
children 73a785323e8a
line wrap: on
line diff
--- a/gldragon.cpp	Tue Nov 26 07:22:35 2019 +0200
+++ b/gldragon.cpp	Sun Dec 01 23:12:04 2019 +0200
@@ -175,11 +175,18 @@
     glGetIntegerv(GL_MAX_ELEMENTS_INDICES, &maxIndices);
 
     // Add transforms
-    glScalef(model.scale.x, model.scale.y, model.scale.z);
-    glTranslatef(model.translate.x, model.translate.y, model.translate.z);
-    glRotatef(model.rotate.x, 1.0f, 0.0f, 0.0f);
-    glRotatef(model.rotate.y, 0.0f, 1.0f, 0.0f);
-    glRotatef(model.rotate.z, 0.0f, 0.0f, 1.0f);
+    if (model.scaleSet)
+        glScalef(model.scale.x, model.scale.y, model.scale.z);
+
+    if (model.translateSet)
+        glTranslatef(model.translate.x, model.translate.y, model.translate.z);
+
+    if (model.rotateSet)
+    {
+        glRotatef(model.rotate.x, 1.0f, 0.0f, 0.0f);
+        glRotatef(model.rotate.y, 0.0f, 1.0f, 0.0f);
+        glRotatef(model.rotate.z, 0.0f, 0.0f, 1.0f);
+    }
 
     glVertexPointer(3, GL_FLOAT, 0, &model.vertices[0]);
     glNormalPointer(   GL_FLOAT, 0, &model.normals[0]);