31 #ifndef WINTERMUTE_XMATH_H 32 #define WINTERMUTE_XMATH_H 34 #include "common/scummsys.h" 38 #if defined(SCUMMVM_USE_PRAGMA_PACK) 60 operator const float* ()
const;
75 bool operator == (
const DXVector3 &)
const;
76 bool operator != (
const DXVector3 &)
const;
87 DXVector4(
float fx,
float fy,
float fz,
float fw);
90 operator const float* ()
const;
104 operator const float* ()
const;
114 DXPlane(
float fa,
float fb,
float fc,
float fd);
120 float _11, _12, _13, _14;
121 float _21, _22, _23, _24;
122 float _31, _32, _33, _34;
123 float _41, _42, _43, _44;
132 float &operator () (uint32 row, uint32 col);
135 operator const float* ()
const;
149 #if defined(SCUMMVM_USE_PRAGMA_PACK) 154 DXMatrix *DXMatrixPerspectiveFovLH(
DXMatrix *pout,
float fovy,
float aspect,
float zn,
float zf);
155 DXMatrix *DXMatrixPerspectiveFovRH(
DXMatrix *pout,
float fovy,
float aspect,
float zn,
float zf);
158 DXMatrix *DXMatrixOrthoLH(
DXMatrix *pout,
float w,
float h,
float zn,
float zf);
159 DXMatrix *DXMatrixOrthoOffCenterLH(
DXMatrix *pout,
float l,
float r,
float b,
float t,
float zn,
float zf);
169 DXMatrix *DXMatrixRotationYawPitchRoll(
DXMatrix *out,
float yaw,
float pitch,
float roll);
183 (*pout)._m[0][1] = 0.0f;
184 (*pout)._m[0][2] = 0.0f;
185 (*pout)._m[0][3] = 0.0f;
186 (*pout)._m[1][0] = 0.0f;
187 (*pout)._m[1][2] = 0.0f;
188 (*pout)._m[1][3] = 0.0f;
189 (*pout)._m[2][0] = 0.0f;
190 (*pout)._m[2][1] = 0.0f;
191 (*pout)._m[2][3] = 0.0f;
192 (*pout)._m[3][0] = 0.0f;
193 (*pout)._m[3][1] = 0.0f;
194 (*pout)._m[3][2] = 0.0f;
195 (*pout)._m[0][0] = 1.0f;
196 (*pout)._m[1][1] = 1.0f;
197 (*pout)._m[2][2] = 1.0f;
198 (*pout)._m[3][3] = 1.0f;
203 pout->_x = (1-s) * (pv1->_x) + s * (pv2->_x);
204 pout->_y = (1-s) * (pv1->_y) + s * (pv2->_y);
205 pout->_z = (1-s) * (pv1->_z) + s * (pv2->_z);
210 return (pq1->_x) * (pq2->_x) + (pq1->_y) * (pq2->_y) + (pq1->_z) * (pq2->_z) + (pq1->_w) * (pq2->_w);
216 temp._x = (pv1->_y) * (pv2->_z) - (pv1->_z) * (pv2->_y);
217 temp._y = (pv1->_z) * (pv2->_x) - (pv1->_x) * (pv2->_z);
218 temp._z = (pv1->_x) * (pv2->_y) - (pv1->_y) * (pv2->_x);
224 return (pv1->_x) * (pv2->_x) + (pv1->_y) * (pv2->_y) + (pv1->_z) * (pv2->_z);
228 pout->_x = pv1->_x - pv2->_x;
229 pout->_y = pv1->_y - pv2->_y;
230 pout->_z = pv1->_z - pv2->_z;
234 static inline float DXVec3Length(
const DXVector3 *pv) {
235 return sqrtf(pv->_x * pv->_x + pv->_y * pv->_y + pv->_z * pv->_z);
239 return (pv1->_x) * (pv2->_x) + (pv1->_y) * (pv2->_y) + (pv1->_z) * (pv2->_z) + (pv1->_w) * (pv2->_w);
243 return ((pp->_a) * (pv->_x) + (pp->_b) * (pv->_y) + (pp->_c) * (pv->_z) + (pp->_d) * (pv->_w) );
Definition: achievements_tables.h:27