#include <control.h>

Classes |
|
| struct | DelayedOp |
| struct | OpQueue |
Public Types |
|
| typedef Matrix3Indirect | BaseClass |
Public Member Functions |
|
| DelayedMatrix3 () | |
| DelayedMatrix3 (const DelayedMatrix3 &src) | |
| void | EvalMat () |
| void | EvalMat () const |
| size_t | PendingOps () const |
| virtual void | InitializeMat () |
| void | Set (const Matrix3 &m) |
| CoreExport Matrix3Indirect * | Clone () const |
| const Matrix3 & | operator() () const |
| void | PreTranslate (const Point3 &p) |
| void | PreRotateX (float x) |
| void | PreRotateY (float y) |
| void | PreRotateZ (float z) |
| void | PreRotate (const Quat &q) |
| DelayedMatrix3 | ( | ) | [inline] |
: Matrix3Indirect()
, mMatInitialized(false)
, mOpQueue()
{}
| DelayedMatrix3 | ( | const DelayedMatrix3 & | src | ) | [inline] |
: Matrix3Indirect(src.mat)
, mMatInitialized(src.mMatInitialized) {
mOpQueue = src.mOpQueue; }
| void EvalMat | ( | ) | [inline] |
{
if (!mMatInitialized) {
InitializeMat();
mMatInitialized = true;
}
while (mOpQueue.QCount() > 0) {
DelayedOp& op = mOpQueue.Shift();
switch (op.code) {
case DelayedOp::kPreTrans:
mat.PreTranslate(op.arg.Vector());
break;
case DelayedOp::kPreRotateX:
mat.PreRotateX(op.arg.x);
break;
case DelayedOp::kPreRotateY:
mat.PreRotateY(op.arg.y);
break;
case DelayedOp::kPreRotateZ:
mat.PreRotateZ(op.arg.z);
break;
case DelayedOp::kPreRotate:
PreRotateMatrix(mat, op.arg);
break;
}
}
return; }
| void EvalMat | ( | ) | const [inline] |
{ const_cast<DelayedMatrix3*>(this)->EvalMat(); }
| size_t PendingOps | ( | ) | const [inline] |
{ return mOpQueue.QCount(); }
| virtual void InitializeMat | ( | ) | [inline, virtual] |
Reimplemented in DelayedNodeMat.
{
mat.IdentityMatrix();
mMatInitialized = true; };
| void Set | ( | const Matrix3 & | m | ) | [inline, virtual] |
Reimplemented from Matrix3Indirect.
Reimplemented in DelayedNodeMat.
| CoreExport Matrix3Indirect* Clone | ( | ) | const [virtual] |
Reimplemented from Matrix3Indirect.
Reimplemented in DelayedNodeMat.
| const Matrix3& operator() | ( | ) | const [inline, virtual] |
Reimplemented from Matrix3Indirect.
| void PreTranslate | ( | const Point3 & | p | ) | [inline, virtual] |
Reimplemented from Matrix3Indirect.
{ DelayedOp op(p); mOpQueue.Push(op); }
| void PreRotateX | ( | float | x | ) | [inline, virtual] |
Reimplemented from Matrix3Indirect.
{ DelayedOp op(x); mOpQueue.Push(op); }
| void PreRotateY | ( | float | y | ) | [inline, virtual] |
Reimplemented from Matrix3Indirect.
{ DelayedOp op(0, y); mOpQueue.Push(op); }
| void PreRotateZ | ( | float | z | ) | [inline, virtual] |
Reimplemented from Matrix3Indirect.
{ DelayedOp op(0, 0, z); mOpQueue.Push(op); }
| void PreRotate | ( | const Quat & | q | ) | [inline, virtual] |
Reimplemented from Matrix3Indirect.
{ DelayedOp op(q); mOpQueue.Push(op); }