//類型
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
加載矩陣到棧頂,若沒有傳參數矩陣,默認將單元矩陣壓入棧頂