summaryrefslogtreecommitdiffstats
path: root/src/math/conv.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/math/conv.h')
-rw-r--r--src/math/conv.h28
1 files changed, 23 insertions, 5 deletions
diff --git a/src/math/conv.h b/src/math/conv.h
index 8cfdc6b..bb6700b 100644
--- a/src/math/conv.h
+++ b/src/math/conv.h
@@ -1,21 +1,39 @@
/* math/conv.h
- Temporary conversion functions for D3DVECTOR and FPOINT */
+ Temporary conversion functions for D3DVECTOR and D3DMATRIX */
#pragma once
-#define STRICT
-#define D3D_OVERLOADS
#include <d3d.h>
#include "vector.h"
+#include "matrix.h"
-inline D3DVECTOR V_TO_D3D(Math::Vector vec)
+inline D3DVECTOR VEC_TO_D3DVEC(Math::Vector vec)
{
return D3DVECTOR(vec.x, vec.y, vec.z);
}
-inline Math::Vector D3D_TO_V(D3DVECTOR vec)
+inline Math::Vector D3DVEC_TO_VEC(D3DVECTOR vec)
{
return Math::Vector(vec.x, vec.y, vec.z);
}
+
+inline D3DMATRIX MAT_TO_D3DMAT(Math::Matrix mat)
+{
+ D3DMATRIX result;
+ mat.Transpose();
+ for (int r = 0; r < 4; ++r)
+ {
+ for (int c = 0; c < 16; ++c)
+ result.m[r][c] = mat.m[4*c+r];
+ }
+ return result;
+}
+
+inline Math::Matrix D3DMAT_TO_MAT(D3DMATRIX mat)
+{
+ Math::Matrix result(mat.m);
+ result.Transpose();
+ return result;
+}