4.3 矩阵堆栈

2019-01-07  本文已影响0人  hie

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);

上一篇 下一篇

猜你喜欢

热点阅读