31 #ifndef WINTERMUTE_XMATH_H 32 #define WINTERMUTE_XMATH_H 34 #include "common/scummsys.h" 38 #if defined(SCUMMVM_USE_PRAGMA_PACK) 51 operator const float* ()
const;
68 bool operator == (
const DXVector2 &)
const;
69 bool operator != (
const DXVector2 &)
const;
82 operator const float* ()
const;
97 bool operator == (
const DXVector3 &)
const;
98 bool operator != (
const DXVector3 &)
const;
109 DXVector4(
float fx,
float fy,
float fz,
float fw);
112 operator const float* ()
const;
126 operator const float* ()
const;
136 DXPlane(
float fa,
float fb,
float fc,
float fd);
142 float _11, _12, _13, _14;
143 float _21, _22, _23, _24;
144 float _31, _32, _33, _34;
145 float _41, _42, _43, _44;
154 float &operator () (uint32 row, uint32 col);
157 operator const float* ()
const;
171 #if defined(SCUMMVM_USE_PRAGMA_PACK) 176 DXMatrix *DXMatrixPerspectiveFovLH(
DXMatrix *pout,
float fovy,
float aspect,
float zn,
float zf);
177 DXMatrix *DXMatrixPerspectiveFovRH(
DXMatrix *pout,
float fovy,
float aspect,
float zn,
float zf);
180 DXMatrix *DXMatrixOrthoLH(
DXMatrix *pout,
float w,
float h,
float zn,
float zf);
181 DXMatrix *DXMatrixOrthoOffCenterLH(
DXMatrix *pout,
float l,
float r,
float b,
float t,
float zn,
float zf);
191 DXMatrix *DXMatrixRotationYawPitchRoll(
DXMatrix *out,
float yaw,
float pitch,
float roll);
206 (*pout)._m[0][1] = 0.0f;
207 (*pout)._m[0][2] = 0.0f;
208 (*pout)._m[0][3] = 0.0f;
209 (*pout)._m[1][0] = 0.0f;
210 (*pout)._m[1][2] = 0.0f;
211 (*pout)._m[1][3] = 0.0f;
212 (*pout)._m[2][0] = 0.0f;
213 (*pout)._m[2][1] = 0.0f;
214 (*pout)._m[2][3] = 0.0f;
215 (*pout)._m[3][0] = 0.0f;
216 (*pout)._m[3][1] = 0.0f;
217 (*pout)._m[3][2] = 0.0f;
218 (*pout)._m[0][0] = 1.0f;
219 (*pout)._m[1][1] = 1.0f;
220 (*pout)._m[2][2] = 1.0f;
221 (*pout)._m[3][3] = 1.0f;
226 pout->_x = (1-s) * (pv1->_x) + s * (pv2->_x);
227 pout->_y = (1-s) * (pv1->_y) + s * (pv2->_y);
228 pout->_z = (1-s) * (pv1->_z) + s * (pv2->_z);
233 return (pq1->_x) * (pq2->_x) + (pq1->_y) * (pq2->_y) + (pq1->_z) * (pq2->_z) + (pq1->_w) * (pq2->_w);
239 temp._x = (pv1->_y) * (pv2->_z) - (pv1->_z) * (pv2->_y);
240 temp._y = (pv1->_z) * (pv2->_x) - (pv1->_x) * (pv2->_z);
241 temp._z = (pv1->_x) * (pv2->_y) - (pv1->_y) * (pv2->_x);
247 return (pv1->_x) * (pv2->_x) + (pv1->_y) * (pv2->_y) + (pv1->_z) * (pv2->_z);
251 pout->_x = pv1->_x - pv2->_x;
252 pout->_y = pv1->_y - pv2->_y;
253 pout->_z = pv1->_z - pv2->_z;
257 static inline float DXVec3Length(
const DXVector3 *pv) {
258 return sqrtf(pv->_x * pv->_x + pv->_y * pv->_y + pv->_z * pv->_z);
262 return (pv1->_x) * (pv2->_x) + (pv1->_y) * (pv2->_y) + (pv1->_z) * (pv2->_z) + (pv1->_w) * (pv2->_w);
266 return ((pp->_a) * (pv->_x) + (pp->_b) * (pv->_y) + (pp->_c) * (pv->_z) + (pp->_d) * (pv->_w) );
269 static inline float DXVec2Length(
const DXVector2 *pv) {
272 return sqrtf(pv->_x * pv->_x + pv->_y * pv->_y);
Definition: achievements_tables.h:27