4.3 矩阵堆栈

1、使用GLMatrixStack 定义,默认深度为64。

GLMatrixStack::GLMatrixStack(int iStackDepth = 64);

2、栈顶添加矩阵

    2.1、单元矩阵

     void GLMatrixStack::LoadIdentity(void);

    2.2、任意矩阵

        //参数:4*4矩阵

      void GLMatrixStack::LoadMatrix(const M3DMatrix44f m);

3、获取当前矩阵(当前矩阵:位于栈顶的矩阵

     const M3DMatrix44f & GLMatrixStack::GetMatrix(void);

      void GLMatrixStack::GetMatrix(M3DMatrix44f mMatrix);

4、矩阵相乘

//矩阵乘以矩阵堆栈顶部矩阵,相乘结果存储到堆栈的顶部,相乘结果会取代堆栈的当前矩阵

void GLMatrixStack::MultMatrix(const M3DMatrix44f);

5、压栈、出栈

 压栈:存储一个状态 

        //将当前矩阵压入堆栈栈顶

            void GLMatrixStack::PushMatrix(void);

        //将M3DMatrix44f 矩阵对象压⼊当前矩阵堆栈栈顶

            void PushMatrix(const M3DMatrix44f mMatrix);

        //将GLFame 对象压⼊入矩阵对象 

            void PushMatrix(GLFame &frame);

出栈: 恢复一个状态

//移除顶部的矩阵对象

void GLMatrixStack::PopMatrix(void);

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,748评论 0 38
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,846评论 1 32
  • Java byte code 的学习意义 为啥要学java bytecode,这就跟你问我已经会python了为...
    shanggl阅读 5,655评论 0 3
  • 抗锯齿 混合的2 功能:颜 组合、抗锯 混合处理-抗锯齿 //开启混合处 glEnable(GL_BLEND); ...
    泥孩儿0107阅读 3,978评论 0 0
  • 爱只会导致好的结果,而不会导致伤害,导致伤害的一定不是真爱。 溺爱中长大的人容易有一个连环反应:一是挫折商低,一旦...
    根本源阅读 1,592评论 0 0