//类型
GLMatrixStack::GLMatrixStack(int iStackDepth = 64);
//在堆栈顶部载入一个单元矩阵
void GLMatrixStack::LoadIdentity(void);
//在堆栈顶部载⼊任何矩阵 //参数:4*4矩阵
void GLMatrixStack::LoadMatrix(const M3DMatrix44f m);
//矩阵乘以矩阵堆栈顶部矩阵,相乘结果存储到堆栈的顶部
void GLMatrixStack::MultMatrix(const M3DMatrix44f);
//获取矩阵堆栈顶部的值 GetMatrix 函数
//为了适应GLShaderMananger的使⽤用,或者获取顶部矩阵的副本
const M3DMatrix44f & GLMatrixStack::GetMatrix(void);
void GLMatrixStack::GetMatrix(M3DMatrix44f mMatrix);
复制代码
//将当前矩阵压入堆栈(栈顶矩阵copy 一份到栈顶)
void GLMatrixStack::PushMatrix(void);
//将M3DMatrix44f 矩阵对象压入当前矩阵堆栈
void PushMatrix(const M3DMatrix44f mMatrix);
//将GLFame 对象压入矩阵对象
void PushMatrix(GLFame &frame);
//出栈(出栈指的是移除顶部的矩阵对象)
void GLMatrixStack::PopMatrix(void);
复制代码
根据上述API的说明,能够根据一张图,清楚地查看堆栈信息的变化 bash
PushMatrix
方法,会将栈顶信息复制一份,放入栈顶。 2.使用MultMatrix
方法作矩阵相乘时,将该矩阵与栈顶矩阵相乘,覆盖
栈顶矩阵。 3.使用PopMatrix
作出栈操做时,移除栈顶矩阵对象。(根据栈的特色,只能pop栈顶) 4.使用LoadMatrix
加载矩阵到栈顶,若没有传参数矩阵,默认将单元矩阵压入栈顶