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);
网友评论