Initial commit
This commit is contained in:
39
Torque/SDK/lib/maxsdk31/stack3.h
Normal file
39
Torque/SDK/lib/maxsdk31/stack3.h
Normal file
@@ -0,0 +1,39 @@
|
||||
#ifndef _STACK3_H_
|
||||
|
||||
#define _STACK3_H_
|
||||
|
||||
#include "matrix3.h"
|
||||
|
||||
#define STACK_DEPTH 32 // default stack depth
|
||||
|
||||
class Matrix3Stack {
|
||||
public:
|
||||
DllExport Matrix3Stack();
|
||||
DllExport Matrix3Stack(int depth);
|
||||
DllExport ~Matrix3Stack();
|
||||
|
||||
BOOL replace(const Matrix3 &m)
|
||||
{ stk[index] = m; return TRUE; }
|
||||
BOOL push(const Matrix3 &m)
|
||||
{ stk[index++] = m; return index < maxDepth; }
|
||||
BOOL dup(void)
|
||||
{ stk[index+1] = stk[index]; return ++index < maxDepth; }
|
||||
BOOL concat(const Matrix3 &m)
|
||||
{ stk[index] = m * stk[index]; return TRUE; }
|
||||
Matrix3 & get(void)
|
||||
{ return stk[index]; }
|
||||
Matrix3 & pop(void)
|
||||
{ return stk[index--]; }
|
||||
BOOL remove(void)
|
||||
{ return --index >= 0; }
|
||||
BOOL reset(void)
|
||||
{ index = 0; stk[0].IdentityMatrix(); return TRUE; }
|
||||
|
||||
private:
|
||||
int maxDepth;
|
||||
int index;
|
||||
Matrix3 * stk;
|
||||
};
|
||||
|
||||
|
||||
#endif // _STACK3_H_
|
||||
Reference in New Issue
Block a user