首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“‘Transform”:“class”OpenGL 3D类型重新定义

“‘Transform”:“class”OpenGL 3D类型重新定义
EN

Stack Overflow用户
提问于 2017-03-07 04:49:49
回答 1查看 852关注 0票数 1

我得到了这个编译错误:

错误:'Transform':'class‘OpenGL 3D类型重新定义第5行的

这是我的变形金刚

代码语言:javascript
复制
#include <glm/glm.hpp>
#include <glm/gtx/transform.hpp>

class Transform
{
public:
    Transform(const glm::vec3& pos = glm::vec3(), const glm::vec3& rot = glm::vec3(), const glm::vec3& scale = glm::vec3(1.0f, 1.0f, 1.0f)) :

    Pos(pos),
    Rot(rot),
    Scale(scale) {}

    inline glm::mat4 GetModel() const
    {
        glm::mat4 posMatrix = glm::translate(Pos);
        glm::mat4 rotXMatrix = glm::rotate(Rot.x, glm::vec3(1,0,0));
        glm::mat4 rotYMatrix = glm::rotate(Rot.y, glm::vec3(0,1,0));
        glm::mat4 rotZMatrix = glm::rotate(Rot.z, glm::vec3(1,0,0));
        glm::mat4 scaleMatrix = glm::scale(Scale);

        glm::mat4 rotMatrix = rotZMatrix * rotYMatrix * rotXMatrix;

        return posMatrix * rotMatrix * scaleMatrix;
    }

    inline glm::vec3& GetPos() { return Pos;  }
    inline glm::vec3& GetRot() { return Rot;  }
    inline glm::vec3& GetScale() { return Scale; }

    inline void SetPos(glm::vec3& pos) { Pos = pos; }
    inline void SetRot(glm::vec3& rot) { Rot = rot; }
    inline void SetScale(glm::vec3& scale) { Scale = scale;  }
protected:
private:
    glm::vec3 Pos;
    glm::vec3 Rot;
    glm::vec3 Scale;
};

下面是本专栏的教程系列:

https://www.youtube.com/watch?v=Xe7FmplKAF0&t=419s

我将VisualStudioCommunity2015与C++和OpenGL结合使用。

是什么导致了这个错误,我该如何解决呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-07 15:41:08

将包含保护添加到头文件中。检查此链接:cplusplus.com/forum/general/71787

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42640454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档