public void PopMatrix(EMatrix matrix) { if (_si[( int )matrix] > 0) { --_si[( int )matrix]; } SetFlags(matrix); }
public void PushMatrix(EMatrix matrix) { if (_si[( int )matrix] < StackDepth - 1) { ++_si[( int )matrix]; _stacks[( int )matrix][_si[( int )matrix]] = _stacks[( int )matrix][_si[( int )matrix - 1]]; } }
private void SetFlags(EMatrix matrix) { switch (matrix) { case EMatrix.World: _matWorldF = true; _matWorldInverseTransposeF = true; _matWorldViewProjectionF = true; break; case EMatrix.View: _matWorldViewProjectionF = true; _matViewProjectionF = true; _matViewF = true; break; case EMatrix.Projection: _matWorldViewProjectionF = true; _matViewProjectionF = true; _matProjectionF = true; break; } }
public Matrix GetMatrix(EMatrix matrix) { return(_stacks[( int )matrix][_si[( int )matrix]]); }
public void MultMatrix(EMatrix matrix, Matrix mat) { _stacks[( int )matrix][_si[( int )matrix]] = mat * _stacks[( int )matrix][_si[( int )matrix]]; SetFlags(matrix); }
public void LoadMatrix(EMatrix matrix, Matrix mat) { _stacks[( int )matrix][_si[( int )matrix]] = mat; SetFlags(matrix); }
public void LoadIdentity(EMatrix matrix) { _stacks[( int )matrix][_si[( int )matrix]] = Matrix.Identity; SetFlags(matrix); }