]> git.leopard-lacewing.eu Git - cgue_weave.git/commitdiff
removed scale from Model (scale with mat4)
authorPeter Schaefer <schaeferpm@gmail.com>
Sun, 3 May 2015 20:02:53 +0000 (22:02 +0200)
committerPeter Schaefer <schaeferpm@gmail.com>
Sun, 3 May 2015 20:02:53 +0000 (22:02 +0200)
Weave/Game.cpp
Weave/Graphix/Model/IMesh.cpp
Weave/Graphix/Model/IMesh.h
Weave/Graphix/Model/IMetaMesh.cpp
Weave/Graphix/Model/IMetaMesh.h
Weave/Graphix/Model/Model.cpp
Weave/Graphix/Model/Model.h
Weave/Scene/EventBox.cpp
Weave/Scene/EventBox.h
Weave/Scene/SceneObject.cpp
Weave/Scene/SceneObject.h

index b899a6a0226979dda2a90f3acaa325cc762eeddd..a8019358924a4b96253a17cc9f18b439ca858d38 100644 (file)
@@ -49,7 +49,7 @@ Game::Game() : playing(true)
        Shader* shader1 = new Shader("basicTexture_VS.hlsl", "lightingTexture_FS.hlsl");
 
        // load LVL
-       SceneObject* tmp_world = new SceneObject(shader1, mat4(1.f), vec4(4.0f, 1.0f, 1.0f, 2.0f), "level_test.dae", "model_levelTest_2D.png", 3.f * vec3(1.f, .3f, 1.f));
+       SceneObject* tmp_world = new SceneObject(shader1, scale(3.f * vec3(1.f, .3f, 1.f)), vec4(4.0f, 1.0f, 1.0f, 2.0f), "level_test.dae", "model_levelTest_2D.png");
        tmp_world->ignore = true;
        current_world->addObject(tmp_world);
 
@@ -65,9 +65,9 @@ Game::Game() : playing(true)
 
        //current_world->addObject(new SceneObject(shader1, glm::mat4(1.0f), "Player.dae", "model_player.png"));
        //current_world->addObject(new SceneObject(shader1, translate(vec3(-3.f, .4f, 0.f))*scale(vec3(3.f)), "cow/cow.dae", "model_cow_2D.jpg"));
-       current_world->addObject(new SceneObject(shader1, translate(vec3(-3.f, .4f, 0.f)), vec4(3.0f, 0.5f, 0.4f, 1.5f), "duck.dae", "model_duck_2D.png", vec3(.3f)));
+       current_world->addObject(new SceneObject(shader1, translate(vec3(-3.f, .4f, 0.f))*scale(vec3(.3f)), vec4(3.0f, 0.5f, 0.4f, 1.5f), "duck.dae", "model_duck_2D.png"));
 
-       current_world->addObject(new EventBox(translate(vec3(3.f, .4f, 0.f)), vec3(1.f)));
+       current_world->addObject(new EventBox(translate(vec3(3.f, .4f, 0.f))));
 
 }
 
index 8ef5ca19affca4aa528258a49f26e07b22d2f9fd..51c14e198e4750500f82819374b534f83434b0c7 100644 (file)
@@ -67,7 +67,7 @@ void IMesh::useModelMat(const mat4& _model, Shader* _shader) const
 //     Model::useModelMat(_model * modelMat, _shader);
        int tmp = _shader->getUniformLocation("uModel");
        if (tmp >= 0)
-               glUniformMatrix4fv(tmp, 1, GL_FALSE, value_ptr(_model*glm::scale(modelScale)* modelMat));
+               glUniformMatrix4fv(tmp, 1, GL_FALSE, value_ptr(_model* modelMat));
 }
 
 //void IMesh::drawModel(Shader* _shader, Texture* _texture, const mat4& _modelMat) const
@@ -155,11 +155,4 @@ void IMesh::isColliding(float& _overlap, float& _inside, const Model* _model, co
                return;
 
 
-}
-
-void IMesh::getBBsp(vec3& _size, vec3& _position) const
-{
-       Model::getBBsp(_size, _position);
-
-       scaleVec3(_position, modelScale);
 }
\ No newline at end of file
index 16626ca804b59d0a6020fcbf8e656ba7a0d40887..781eac9a13acff971ee4a667ed43745b22f2f3cf 100644 (file)
@@ -28,9 +28,6 @@ public:
        /* calls Colliding to check if self collides with model*/
        virtual void isColliding(float& overlap, float& inside, const Model* model, const mat4& modelMatThis, const mat4& modelMatOther) const;
 
-       void getBBsp(vec3& size, vec3& pos) const;
-
-
 protected:
 
        mat4 modelMat;
index 13da14242dbf46789c3539737056ab79644c691a..4cbe1a8d967a5204c534c0c4d14c9a3627c2a4ec 100644 (file)
@@ -117,32 +117,3 @@ void IMetaMesh::isColliding(float& _overlap, float& _inside, const Model* _model
                }
        }
 }
-
-void IMetaMesh::scale(const vec3& _scale)
-{
-       Model::scale(_scale);
-       for (auto i = models.begin(); i != models.end(); ++i)
-       {
-               
-               (*i)->scale(_scale);
-       }
-
-}
-
-void IMetaMesh::unScale()
-{
-       Model::unScale();
-       for (auto i = models.begin(); i != models.end(); ++i)
-       {
-               
-               (*i)->unScale();
-       }
-
-}
-
-void IMetaMesh::getBBsp(vec3& _size, vec3& _position) const
-{
-       Model::getBBsp(_size, _position);
-
-       scaleVec3(_position, modelScale);
-}
\ No newline at end of file
index 988877c068262eb3c460a6a1e51a58984ab226c2..9561fd5b141cb1801792f9ef62fec692b1b114a5 100644 (file)
@@ -24,14 +24,9 @@ public:
 
        void drawBBox(Shader* shader, const mat4& modelMat) const;
 
-       void getBBsp(vec3& size, vec3& pos) const;
-
        /* calls Colliding to check if self collides with model*/
        void isColliding(float& overlap, float& inside, const Model* model, const mat4& modelMatThis, const mat4& modelMatOther) const;
 
-       void scale(const vec3& scale);
-       void unScale();
-
 protected:
        std::list<IMesh*> models;
 };
index 8e9fd77da8572b652119f2e486e3a6edccb8cc47..af12050ad43777f14ba9b459a084563e59d8f949 100644 (file)
@@ -18,8 +18,7 @@ numvertices(0),
 vertexBuffer(-1),
 normalBuffer(-1),
 uvBuffer(-1),
-indexBuffer(-1),
-modelScale(1.f)
+indexBuffer(-1)
 {
 }
 
@@ -169,17 +168,12 @@ void Model::getBBmm(vec3& _min, vec3& _max) const
 {
        _min = BBmin;
        _max = BBmax;
-
-       scaleVec3(_min, modelScale);
-       scaleVec3(_max, modelScale);
 }
 
 void Model::getBBsp(vec3& _size, vec3& _position) const
 {
        _size = BBsize;
        _position = BBposition;
-
-       scaleVec3(_size, modelScale);
 }
 
 
@@ -243,7 +237,7 @@ void Model::useModelMat(const mat4& _model, Shader* _shader) const
 {
        int tmp = _shader->getUniformLocation("uModel");
        if (tmp >= 0)
-               glUniformMatrix4fv(tmp, 1, GL_FALSE, value_ptr(_model*glm::scale(modelScale)));
+               glUniformMatrix4fv(tmp, 1, GL_FALSE, value_ptr(_model));
 }
 
 void Model::isColliding(float& _overlap, float& _inside, const Model* _model, const mat4& _modelMatThis, const mat4& _modelMatOther) const
@@ -254,8 +248,8 @@ void Model::isColliding(float& _overlap, float& _inside, const Model* _model, co
        getBBsp(sizeA, posA);
        _model->getBBsp(sizeB, posB);
 
-       mat4 modelAR = glm::inverse(_modelMatOther)*_modelMatThis;
-       mat4 modelBR = glm::inverse(_modelMatThis)*_modelMatOther;
+       mat4 modelAR = glm::inverse(removeScale(_modelMatOther))*_modelMatThis;
+       mat4 modelBR = glm::inverse(removeScale(_modelMatThis))*_modelMatOther;
 
        vec3 posAR = (vec3)(modelAR*vec4(posA, 1.f));
        vec3 posBR = (vec3)(modelBR*vec4(posB, 1.f));
@@ -309,16 +303,6 @@ vec3 Model::rotateSize(const vec3& _size, const mat4& _modelMat)
        return Size;
 }
 
-void Model::scale(const vec3& _scale)
-{
-       scaleVec3(modelScale, _scale);
-}
-
-void Model::unScale()
-{
-       modelScale = vec3(1.f);
-}
-
 void Model::scaleVec3(vec3& _vec, const vec3& _scale)
 {
        for (uint i = 0; i < 3; ++i)
index be8a3029699aff1fe5b40dab59d9e45b70d47953..672c936f8d9037a93cb8928bbe369af4119e8f59 100644 (file)
@@ -31,9 +31,6 @@ public:
        /* calls Colliding to check if self collides with model*/
        virtual void isColliding(float& overlap, float& inside, const Model* model, const mat4& modelMatThis, const mat4& modelMatOther) const;
 
-       virtual void scale(const vec3& scale);
-       virtual void unScale();
-
        static Model* getBBoxModel();
 
 protected:
@@ -62,8 +59,6 @@ protected:
        static void checkCollideByAxis(float& overlap, float& inside, uint dim, const float* posA, const float* posB, const float* sizeA, const float* sizeB);
        static void scaleVec3(vec3& vec, const vec3& scale);
 
-       vec3 modelScale;
-
 private:
        vec3 BBmin, BBmax;
        vec3 BBsize, BBposition;
index 71ed690488a2800b23ee7204d05fb48ea3b9b1ec..516f009ed15f864f9cfd84248e8c7a3f1f5120fd 100644 (file)
@@ -6,7 +6,7 @@
 #include "../Events.h"
 
 
-EventBox::EventBox(const mat4& _modelMat, const vec3& _size) : SceneObject(Graphix::shader_BBox,_modelMat,vec4(0.f),Model::getBBoxModel(),"",_size)
+EventBox::EventBox(const mat4& _modelMat) : SceneObject(Graphix::shader_BBox,_modelMat,vec4(0.f),Model::getBBoxModel(),"")
 {
 
 }
index ced83887bc2e682452c94e71143c583992f448c2..005706a0d7a7dc20e38336577657210cea2795ee 100644 (file)
@@ -9,7 +9,7 @@ class EventBox :
        public SceneObject
 {
 public:
-       EventBox(const mat4& modelMat, const vec3& size);
+       EventBox(const mat4& modelMat);
        ~EventBox();
 
        virtual void update(float);
index 4e84a88fa0b1065d35f69025076fa15cc116722b..1a65e9d0eb4a744e7a8246049fd77e7272a3dd8a 100644 (file)
@@ -20,7 +20,7 @@ using std::string;
 
 #define YFALL_SPEED 9.8f
 
-SceneObject::SceneObject(Shader* _shader, const mat4& _modelMat, const vec4& _material, string _modelpath, string texturepath, const vec3& _scale) :
+SceneObject::SceneObject(Shader* _shader, const mat4& _modelMat, const vec4& _material, string _modelpath, string texturepath) :
 model(nullptr),
 modelMat(_modelMat),
 shader(_shader),
@@ -29,8 +29,7 @@ collision_ignore(false),
 texture(nullptr),
 ySpeed(0),
 yStatic(true),
-ignore(false),
-modelScale(_scale)
+ignore(false)
 {
        //Message::info("Error from befor?");
        //Graphix::getGlError();
@@ -41,7 +40,6 @@ modelScale(_scale)
        if (_modelpath != "")
        {
                model = new IMetaMesh(_modelpath);
-               model->scale(_scale);
        }
 
        if (texturepath != "")
@@ -56,7 +54,7 @@ modelScale(_scale)
 
 }
 
-SceneObject::SceneObject(Shader* _shader, const mat4& _modelMat, const vec4& _material, Model* _model, string texturepath, const vec3& _scale) :
+SceneObject::SceneObject(Shader* _shader, const mat4& _modelMat, const vec4& _material, Model* _model, string texturepath) :
 model(_model),
 modelMat(_modelMat),
 shader(_shader),
@@ -65,8 +63,7 @@ collision_ignore(false),
 texture(nullptr),
 ySpeed(0),
 yStatic(true),
-ignore(false),
-modelScale(_scale)
+ignore(false)
 {
        //Message::info("Error from befor?");
        //Graphix::getGlError();
index f3dde275096210a17d9c34f6f87ad832a8a1cb2e..7e8712bbcf9995b4f328f5d82dd6dfd176df9fb6 100644 (file)
@@ -18,8 +18,8 @@ class SceneObject
 public:
 
        //SceneObject(Shader* _shader, mat4& model);
-       SceneObject(Shader* _shader, const mat4& modelMat, const vec4& material, string modelpath, string texturepath, const vec3& scale=vec3(1.f));
-       SceneObject(Shader* _shader, const mat4& modelMat, const vec4& material, Model* model, string texturepath, const vec3& scale = vec3(1.f));
+       SceneObject(Shader* _shader, const mat4& modelMat, const vec4& material, string modelpath, string texturepath);
+       SceneObject(Shader* _shader, const mat4& modelMat, const vec4& material, Model* model, string texturepath);
 
        virtual ~SceneObject();
 
@@ -64,7 +64,6 @@ public:
 protected:
 
        mat4 modelMat;
-       vec3 modelScale;
 
        Shader* shader;
        Texture* texture;