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、壓棧、出棧
?壓棧:存儲一個狀態(tài)?
????????//將當前矩陣壓入堆棧棧頂
????????????void GLMatrixStack::PushMatrix(void);
????????//將M3DMatrix44f?矩陣對象壓?當前矩陣堆棧棧頂
????????????void PushMatrix(const M3DMatrix44f mMatrix);
????????//將GLFame?對象壓?入矩陣對象?
????????????void PushMatrix(GLFame &frame);
出棧:?恢復一個狀態(tài)
//移除頂部的矩陣對象
void GLMatrixStack::PopMatrix(void);