backup closest working example, no errors or warnings from compile, matrices arent correct though yet.
This commit is contained in:
marauder2k7 2024-07-28 19:36:07 +01:00
parent 888332a85c
commit c61d36b799
2 changed files with 67 additions and 10 deletions

View file

@ -22,7 +22,7 @@
#ifndef _MATRIXSETDELEGATES_H_
#define _MATRIXSETDELEGATES_H_
// Access to the direct value
#ifndef USE_TEMPLATE_MATRIX
#define MATRIX_SET_GET_VALUE_FN(xfm) _transform_##xfm
#define MATRIX_SET_GET_VALUE(xfm) inline const MatrixF &MATRIX_SET_GET_VALUE_FN(xfm)() { return mTransform[xfm]; }
#define MATRIX_SET_BIND_VALUE(xfm) mEvalDelegate[xfm].bind(this, &MatrixSet::MATRIX_SET_GET_VALUE_FN(xfm))
@ -44,5 +44,28 @@
return mTransform[matC]; \
}
#else
// Access to the direct value
#define MATRIX_SET_GET_VALUE_FN(xfm) _transform_##xfm
#define MATRIX_SET_GET_VALUE(xfm) inline const MatrixF &MATRIX_SET_GET_VALUE_FN(xfm)() { return mTransform[xfm]; }
#define MATRIX_SET_BIND_VALUE(xfm) mEvalDelegate[xfm].bind(this, &MatrixSet::MATRIX_SET_GET_VALUE_FN(xfm))
#define MATRIX_SET_IS_INVERSE_OF_FN(inv_xfm, src_xfm) _##inv_xfm##_is_inverse_of_##src_xfm
#define MATRIX_SET_IS_INVERSE_OF(inv_xfm, src_xfm) inline const MatrixF &MATRIX_SET_IS_INVERSE_OF_FN(inv_xfm, src_xfm)() \
{ \
mEvalDelegate[src_xfm]().invertTo(&mTransform[inv_xfm]); \
MATRIX_SET_BIND_VALUE(inv_xfm); \
return mTransform[inv_xfm]; \
}
#define MATRIX_SET_MULT_ASSIGN_FN(matA, matB, matC) _##matC##_is_##matA##_x_##matB
#define MATRIX_SET_MULT_ASSIGN(matA, matB, matC) inline const MatrixF &MATRIX_SET_MULT_ASSIGN_FN(matA, matB, matC)() \
{ \
mTransform[matC].mul(mEvalDelegate[matA](),mEvalDelegate[matB]()); \
MATRIX_SET_BIND_VALUE(matC); \
return mTransform[matC]; \
}
#endif
#endif // _MATRIXSETDELEGATES_H_