ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

d3dx9math.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2007 David Adam
00003  * Copyright (C) 2007 Tony Wasserka
00004  *
00005  * This library is free software; you can redistribute it and/or
00006  * modify it under the terms of the GNU Lesser General Public
00007  * License as published by the Free Software Foundation; either
00008  * version 2.1 of the License, or (at your option) any later version.
00009  *
00010  * This library is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013  * Lesser General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU Lesser General Public
00016  * License along with this library; if not, write to the Free Software
00017  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00018  */
00019 
00020 #include <d3dx9.h>
00021 
00022 #ifndef __D3DX9MATH_H__
00023 #define __D3DX9MATH_H__
00024 
00025 #include <math.h>
00026 
00027 #define D3DX_PI    ((FLOAT)3.141592654)
00028 #define D3DX_1BYPI ((FLOAT)0.318309886)
00029 
00030 #define D3DXToRadian(degree) ((degree) * (D3DX_PI / 180.0f))
00031 #define D3DXToDegree(radian) ((radian) * (180.0f / D3DX_PI))
00032 
00033 
00034 
00035 typedef struct D3DXVECTOR2
00036 {
00037 #ifdef __cplusplus
00038     D3DXVECTOR2();
00039     D3DXVECTOR2(CONST FLOAT *pf);
00040     D3DXVECTOR2(FLOAT fx, FLOAT fy);
00041 
00042     operator FLOAT* ();
00043     operator CONST FLOAT* () const;
00044 
00045     D3DXVECTOR2& operator += (CONST D3DXVECTOR2&);
00046     D3DXVECTOR2& operator -= (CONST D3DXVECTOR2&);
00047     D3DXVECTOR2& operator *= (FLOAT);
00048     D3DXVECTOR2& operator /= (FLOAT);
00049 
00050     D3DXVECTOR2 operator + () const;
00051     D3DXVECTOR2 operator - () const;
00052 
00053     D3DXVECTOR2 operator + (CONST D3DXVECTOR2&) const;
00054     D3DXVECTOR2 operator - (CONST D3DXVECTOR2&) const;
00055     D3DXVECTOR2 operator * (FLOAT) const;
00056     D3DXVECTOR2 operator / (FLOAT) const;
00057 
00058     friend D3DXVECTOR2 operator * (FLOAT, CONST D3DXVECTOR2&);
00059 
00060     BOOL operator == (CONST D3DXVECTOR2&) const;
00061     BOOL operator != (CONST D3DXVECTOR2&) const;
00062 #endif /* __cplusplus */
00063     FLOAT x, y;
00064 } D3DXVECTOR2, *LPD3DXVECTOR2;
00065 
00066 #ifdef __cplusplus
00067 typedef struct D3DXVECTOR3 : public D3DVECTOR
00068 {
00069     D3DXVECTOR3();
00070     D3DXVECTOR3(CONST FLOAT *pf);
00071     D3DXVECTOR3(CONST D3DVECTOR& v);
00072     D3DXVECTOR3(FLOAT fx, FLOAT fy, FLOAT fz);
00073 
00074     operator FLOAT* ();
00075     operator CONST FLOAT* () const;
00076 
00077     D3DXVECTOR3& operator += (CONST D3DXVECTOR3&);
00078     D3DXVECTOR3& operator -= (CONST D3DXVECTOR3&);
00079     D3DXVECTOR3& operator *= (FLOAT);
00080     D3DXVECTOR3& operator /= (FLOAT);
00081 
00082     D3DXVECTOR3 operator + () const;
00083     D3DXVECTOR3 operator - () const;
00084 
00085     D3DXVECTOR3 operator + (CONST D3DXVECTOR3&) const;
00086     D3DXVECTOR3 operator - (CONST D3DXVECTOR3&) const;
00087     D3DXVECTOR3 operator * (FLOAT) const;
00088     D3DXVECTOR3 operator / (FLOAT) const;
00089 
00090     friend D3DXVECTOR3 operator * (FLOAT, CONST struct D3DXVECTOR3&);
00091 
00092     BOOL operator == (CONST D3DXVECTOR3&) const;
00093     BOOL operator != (CONST D3DXVECTOR3&) const;
00094 } D3DXVECTOR3, *LPD3DXVECTOR3;
00095 #else /* !__cplusplus */
00096 typedef struct _D3DVECTOR D3DXVECTOR3, *LPD3DXVECTOR3;
00097 #endif /* !__cplusplus */
00098 
00099 typedef struct D3DXVECTOR4
00100 {
00101 #ifdef __cplusplus
00102     D3DXVECTOR4();
00103     D3DXVECTOR4(CONST FLOAT *pf);
00104     D3DXVECTOR4(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fw);
00105 
00106     operator FLOAT* ();
00107     operator CONST FLOAT* () const;
00108 
00109     D3DXVECTOR4& operator += (CONST D3DXVECTOR4&);
00110     D3DXVECTOR4& operator -= (CONST D3DXVECTOR4&);
00111     D3DXVECTOR4& operator *= (FLOAT);
00112     D3DXVECTOR4& operator /= (FLOAT);
00113 
00114     D3DXVECTOR4 operator + () const;
00115     D3DXVECTOR4 operator - () const;
00116 
00117     D3DXVECTOR4 operator + (CONST D3DXVECTOR4&) const;
00118     D3DXVECTOR4 operator - (CONST D3DXVECTOR4&) const;
00119     D3DXVECTOR4 operator * (FLOAT) const;
00120     D3DXVECTOR4 operator / (FLOAT) const;
00121 
00122     friend D3DXVECTOR4 operator * (FLOAT, CONST D3DXVECTOR4&);
00123 
00124     BOOL operator == (CONST D3DXVECTOR4&) const;
00125     BOOL operator != (CONST D3DXVECTOR4&) const;
00126 #endif /* __cplusplus */
00127     FLOAT x, y, z, w;
00128 } D3DXVECTOR4, *LPD3DXVECTOR4;
00129 
00130 #ifdef __cplusplus
00131 typedef struct D3DXMATRIX : public D3DMATRIX
00132 {
00133     D3DXMATRIX();
00134     D3DXMATRIX(CONST FLOAT *pf);
00135     D3DXMATRIX(CONST D3DMATRIX& mat);
00136     D3DXMATRIX(FLOAT f11, FLOAT f12, FLOAT f13, FLOAT f14,
00137                FLOAT f21, FLOAT f22, FLOAT f23, FLOAT f24,
00138                FLOAT f31, FLOAT f32, FLOAT f33, FLOAT f34,
00139                FLOAT f41, FLOAT f42, FLOAT f43, FLOAT f44);
00140 
00141     FLOAT& operator () (UINT row, UINT col);
00142     FLOAT operator () (UINT row, UINT col) const;
00143 
00144     operator FLOAT* ();
00145     operator CONST FLOAT* () const;
00146 
00147     D3DXMATRIX& operator *= (CONST D3DXMATRIX&);
00148     D3DXMATRIX& operator += (CONST D3DXMATRIX&);
00149     D3DXMATRIX& operator -= (CONST D3DXMATRIX&);
00150     D3DXMATRIX& operator *= (FLOAT);
00151     D3DXMATRIX& operator /= (FLOAT);
00152 
00153     D3DXMATRIX operator + () const;
00154     D3DXMATRIX operator - () const;
00155 
00156     D3DXMATRIX operator * (CONST D3DXMATRIX&) const;
00157     D3DXMATRIX operator + (CONST D3DXMATRIX&) const;
00158     D3DXMATRIX operator - (CONST D3DXMATRIX&) const;
00159     D3DXMATRIX operator * (FLOAT) const;
00160     D3DXMATRIX operator / (FLOAT) const;
00161 
00162     friend D3DXMATRIX operator * (FLOAT, CONST D3DXMATRIX&);
00163 
00164     BOOL operator == (CONST D3DXMATRIX&) const;
00165     BOOL operator != (CONST D3DXMATRIX&) const;
00166 } D3DXMATRIX, *LPD3DXMATRIX;
00167 #else /* !__cplusplus */
00168 typedef struct _D3DMATRIX D3DXMATRIX, *LPD3DXMATRIX;
00169 #endif /* !__cplusplus */
00170 
00171 typedef struct D3DXQUATERNION
00172 {
00173 #ifdef __cplusplus
00174     D3DXQUATERNION();
00175     D3DXQUATERNION(CONST FLOAT *pf);
00176     D3DXQUATERNION(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fw);
00177 
00178     operator FLOAT* ();
00179     operator CONST FLOAT* () const;
00180 
00181     D3DXQUATERNION& operator += (CONST D3DXQUATERNION&);
00182     D3DXQUATERNION& operator -= (CONST D3DXQUATERNION&);
00183     D3DXQUATERNION& operator *= (CONST D3DXQUATERNION&);
00184     D3DXQUATERNION& operator *= (FLOAT);
00185     D3DXQUATERNION& operator /= (FLOAT);
00186 
00187     D3DXQUATERNION  operator + () const;
00188     D3DXQUATERNION  operator - () const;
00189 
00190     D3DXQUATERNION operator + (CONST D3DXQUATERNION&) const;
00191     D3DXQUATERNION operator - (CONST D3DXQUATERNION&) const;
00192     D3DXQUATERNION operator * (CONST D3DXQUATERNION&) const;
00193     D3DXQUATERNION operator * (FLOAT) const;
00194     D3DXQUATERNION operator / (FLOAT) const;
00195 
00196     friend D3DXQUATERNION operator * (FLOAT, CONST D3DXQUATERNION&);
00197 
00198     BOOL operator == (CONST D3DXQUATERNION&) const;
00199     BOOL operator != (CONST D3DXQUATERNION&) const;
00200 #endif /* __cplusplus */
00201     FLOAT x, y, z, w;
00202 } D3DXQUATERNION, *LPD3DXQUATERNION;
00203 
00204 typedef struct D3DXPLANE
00205 {
00206 #ifdef __cplusplus
00207     D3DXPLANE();
00208     D3DXPLANE(CONST FLOAT *pf);
00209     D3DXPLANE(FLOAT fa, FLOAT fb, FLOAT fc, FLOAT fd);
00210 
00211     operator FLOAT* ();
00212     operator CONST FLOAT* () const;
00213 
00214     D3DXPLANE operator + () const;
00215     D3DXPLANE operator - () const;
00216 
00217     BOOL operator == (CONST D3DXPLANE&) const;
00218     BOOL operator != (CONST D3DXPLANE&) const;
00219 #endif /* __cplusplus */
00220     FLOAT a, b, c, d;
00221 } D3DXPLANE, *LPD3DXPLANE;
00222 
00223 typedef struct D3DXCOLOR
00224 {
00225 #ifdef __cplusplus
00226     D3DXCOLOR();
00227     D3DXCOLOR(DWORD col);
00228     D3DXCOLOR(CONST FLOAT *pf);
00229     D3DXCOLOR(CONST D3DCOLORVALUE& col);
00230     D3DXCOLOR(FLOAT fr, FLOAT fg, FLOAT fb, FLOAT fa);
00231 
00232     operator DWORD () const;
00233 
00234     operator FLOAT* ();
00235     operator CONST FLOAT* () const;
00236 
00237     operator D3DCOLORVALUE* ();
00238     operator CONST D3DCOLORVALUE* () const;
00239 
00240     operator D3DCOLORVALUE& ();
00241     operator CONST D3DCOLORVALUE& () const;
00242 
00243     D3DXCOLOR& operator += (CONST D3DXCOLOR&);
00244     D3DXCOLOR& operator -= (CONST D3DXCOLOR&);
00245     D3DXCOLOR& operator *= (FLOAT);
00246     D3DXCOLOR& operator /= (FLOAT);
00247 
00248     D3DXCOLOR operator + () const;
00249     D3DXCOLOR operator - () const;
00250 
00251     D3DXCOLOR operator + (CONST D3DXCOLOR&) const;
00252     D3DXCOLOR operator - (CONST D3DXCOLOR&) const;
00253     D3DXCOLOR operator * (FLOAT) const;
00254     D3DXCOLOR operator / (FLOAT) const;
00255 
00256     friend D3DXCOLOR operator * (FLOAT, CONST D3DXCOLOR&);
00257 
00258     BOOL operator == (CONST D3DXCOLOR&) const;
00259     BOOL operator != (CONST D3DXCOLOR&) const;
00260 #endif /* __cplusplus */
00261     FLOAT r, g, b, a;
00262 } D3DXCOLOR, *LPD3DXCOLOR;
00263 
00264 #ifdef __cplusplus
00265 extern "C" {
00266 #endif
00267 
00268 D3DXCOLOR* WINAPI D3DXColorAdjustContrast(D3DXCOLOR *pout, CONST D3DXCOLOR *pc, FLOAT s);
00269 D3DXCOLOR* WINAPI D3DXColorAdjustSaturation(D3DXCOLOR *pout, CONST D3DXCOLOR *pc, FLOAT s);
00270 
00271 FLOAT WINAPI D3DXFresnelTerm(FLOAT costheta, FLOAT refractionindex);
00272 
00273 D3DXMATRIX* WINAPI D3DXMatrixAffineTransformation(D3DXMATRIX *pout, FLOAT scaling, CONST D3DXVECTOR3 *rotationcenter, CONST D3DXQUATERNION *rotation, CONST D3DXVECTOR3 *translation);
00274 D3DXMATRIX* WINAPI D3DXMatrixAffineTransformation2D(D3DXMATRIX *pout, FLOAT scaling, CONST D3DXVECTOR2 *protationcenter, FLOAT rotation, CONST D3DXVECTOR2 *ptranslation);
00275 HRESULT WINAPI D3DXMatrixDecompose(D3DXVECTOR3 *poutscale, D3DXQUATERNION *poutrotation, D3DXVECTOR3 *pouttranslation, CONST D3DXMATRIX *pm);
00276 FLOAT WINAPI D3DXMatrixDeterminant(CONST D3DXMATRIX *pm);
00277 D3DXMATRIX* WINAPI D3DXMatrixInverse(D3DXMATRIX *pout, FLOAT *pdeterminant, CONST D3DXMATRIX *pm);
00278 D3DXMATRIX* WINAPI D3DXMatrixLookAtLH(D3DXMATRIX *pout, CONST D3DXVECTOR3 *peye, CONST D3DXVECTOR3 *pat, CONST D3DXVECTOR3 *pup);
00279 D3DXMATRIX* WINAPI D3DXMatrixLookAtRH(D3DXMATRIX *pout, CONST D3DXVECTOR3 *peye, CONST D3DXVECTOR3 *pat, CONST D3DXVECTOR3 *pup);
00280 D3DXMATRIX* WINAPI D3DXMatrixMultiply(D3DXMATRIX *pout, CONST D3DXMATRIX *pm1, CONST D3DXMATRIX *pm2);
00281 D3DXMATRIX* WINAPI D3DXMatrixMultiplyTranspose(D3DXMATRIX *pout, CONST D3DXMATRIX *pm1, CONST D3DXMATRIX *pm2);
00282 D3DXMATRIX* WINAPI D3DXMatrixOrthoLH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
00283 D3DXMATRIX* WINAPI D3DXMatrixOrthoOffCenterLH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
00284 D3DXMATRIX* WINAPI D3DXMatrixOrthoOffCenterRH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
00285 D3DXMATRIX* WINAPI D3DXMatrixOrthoLH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
00286 D3DXMATRIX* WINAPI D3DXMatrixOrthoRH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
00287 D3DXMATRIX* WINAPI D3DXMatrixPerspectiveFovLH(D3DXMATRIX *pout, FLOAT fovy, FLOAT aspect, FLOAT zn, FLOAT zf);
00288 D3DXMATRIX* WINAPI D3DXMatrixPerspectiveFovRH(D3DXMATRIX *pout, FLOAT fovy, FLOAT aspect, FLOAT zn, FLOAT zf);
00289 D3DXMATRIX* WINAPI D3DXMatrixPerspectiveLH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
00290 D3DXMATRIX* WINAPI D3DXMatrixPerspectiveOffCenterLH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
00291 D3DXMATRIX* WINAPI D3DXMatrixPerspectiveOffCenterRH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
00292 D3DXMATRIX* WINAPI D3DXMatrixPerspectiveRH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
00293 D3DXMATRIX* WINAPI D3DXMatrixReflect(D3DXMATRIX *pout, CONST D3DXPLANE *pplane);
00294 D3DXMATRIX* WINAPI D3DXMatrixRotationAxis(D3DXMATRIX *pout, CONST D3DXVECTOR3 *pv, FLOAT angle);
00295 D3DXMATRIX* WINAPI D3DXMatrixRotationQuaternion(D3DXMATRIX *pout, CONST D3DXQUATERNION *pq);
00296 D3DXMATRIX* WINAPI D3DXMatrixRotationX(D3DXMATRIX *pout, FLOAT angle);
00297 D3DXMATRIX* WINAPI D3DXMatrixRotationY(D3DXMATRIX *pout, FLOAT angle);
00298 D3DXMATRIX* WINAPI D3DXMatrixRotationYawPitchRoll(D3DXMATRIX *pout, FLOAT yaw, FLOAT pitch, FLOAT roll);
00299 D3DXMATRIX* WINAPI D3DXMatrixRotationZ(D3DXMATRIX *pout, FLOAT angle);
00300 D3DXMATRIX* WINAPI D3DXMatrixScaling(D3DXMATRIX *pout, FLOAT sx, FLOAT sy, FLOAT sz);
00301 D3DXMATRIX* WINAPI D3DXMatrixShadow(D3DXMATRIX *pout, CONST D3DXVECTOR4 *plight, CONST D3DXPLANE *pPlane);
00302 D3DXMATRIX* WINAPI D3DXMatrixTransformation(D3DXMATRIX *pout, CONST D3DXVECTOR3 *pscalingcenter, CONST D3DXQUATERNION *pscalingrotation, CONST D3DXVECTOR3 *pscaling, CONST D3DXVECTOR3 *protationcenter, CONST D3DXQUATERNION *protation, CONST D3DXVECTOR3 *ptranslation);
00303 D3DXMATRIX* WINAPI D3DXMatrixTransformation2D(D3DXMATRIX *pout, CONST D3DXVECTOR2 *pscalingcenter, FLOAT scalingrotation, CONST D3DXVECTOR2 *pscaling, CONST D3DXVECTOR2 *protationcenter, FLOAT rotation, CONST D3DXVECTOR2 *ptranslation);
00304 D3DXMATRIX* WINAPI D3DXMatrixTranslation(D3DXMATRIX *pout, FLOAT x, FLOAT y, FLOAT z);
00305 D3DXMATRIX* WINAPI D3DXMatrixTranspose(D3DXMATRIX *pout, CONST D3DXMATRIX *pm);
00306 
00307 D3DXPLANE* WINAPI D3DXPlaneFromPointNormal(D3DXPLANE *pout, CONST D3DXVECTOR3 *pvpoint, CONST D3DXVECTOR3 *pvnormal);
00308 D3DXPLANE* WINAPI D3DXPlaneFromPoints(D3DXPLANE *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2, CONST D3DXVECTOR3 *pv3);
00309 D3DXVECTOR3* WINAPI D3DXPlaneIntersectLine(D3DXVECTOR3 *pout, CONST D3DXPLANE *pp, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2);
00310 D3DXPLANE* WINAPI D3DXPlaneNormalize(D3DXPLANE *pout, CONST D3DXPLANE *pp);
00311 D3DXPLANE* WINAPI D3DXPlaneTransform(D3DXPLANE *pout, CONST D3DXPLANE *pplane, CONST D3DXMATRIX *pm);
00312 D3DXPLANE* WINAPI D3DXPlaneTransformArray(D3DXPLANE *pout, UINT outstride, CONST D3DXPLANE *pplane, UINT pstride, CONST D3DXMATRIX *pm, UINT n);
00313 
00314 D3DXQUATERNION* WINAPI D3DXQuaternionBaryCentric(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2, CONST D3DXQUATERNION *pq3, FLOAT f, FLOAT g);
00315 D3DXQUATERNION* WINAPI D3DXQuaternionExp(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq);
00316 D3DXQUATERNION* WINAPI D3DXQuaternionInverse(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq);
00317 D3DXQUATERNION* WINAPI D3DXQuaternionLn(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq);
00318 D3DXQUATERNION* WINAPI D3DXQuaternionMultiply(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2);
00319 D3DXQUATERNION* WINAPI D3DXQuaternionNormalize(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq);
00320 D3DXQUATERNION* WINAPI D3DXQuaternionRotationAxis(D3DXQUATERNION *pout, CONST D3DXVECTOR3 *pv, FLOAT angle);
00321 D3DXQUATERNION* WINAPI D3DXQuaternionRotationMatrix(D3DXQUATERNION *pout, CONST D3DXMATRIX *pm);
00322 D3DXQUATERNION* WINAPI D3DXQuaternionRotationYawPitchRoll(D3DXQUATERNION *pout, FLOAT yaw, FLOAT pitch, FLOAT roll);
00323 D3DXQUATERNION* WINAPI D3DXQuaternionSlerp(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2, FLOAT t);
00324 D3DXQUATERNION* WINAPI D3DXQuaternionSquad(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2, CONST D3DXQUATERNION *pq3, CONST D3DXQUATERNION *pq4, FLOAT t);
00325 void WINAPI D3DXQuaternionToAxisAngle(CONST D3DXQUATERNION *pq, D3DXVECTOR3 *paxis, FLOAT *pangle);
00326 
00327 D3DXVECTOR2* WINAPI D3DXVec2BaryCentric(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2, CONST D3DXVECTOR2 *pv3, FLOAT f, FLOAT g);
00328 D3DXVECTOR2* WINAPI D3DXVec2CatmullRom(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv0, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2, CONST D3DXVECTOR2 *pv3, FLOAT s);
00329 D3DXVECTOR2* WINAPI D3DXVec2Hermite(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pt1, CONST D3DXVECTOR2 *pv2, CONST D3DXVECTOR2 *pt2, FLOAT s);
00330 D3DXVECTOR2* WINAPI D3DXVec2Normalize(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv);
00331 D3DXVECTOR4* WINAPI D3DXVec2Transform(D3DXVECTOR4 *pout, CONST D3DXVECTOR2 *pv, CONST D3DXMATRIX *pm);
00332 D3DXVECTOR4* WINAPI D3DXVec2TransformArray(D3DXVECTOR4 *pout, UINT outstride, CONST D3DXVECTOR2 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
00333 D3DXVECTOR2* WINAPI D3DXVec2TransformCoord(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv, CONST D3DXMATRIX *pm);
00334 D3DXVECTOR2* WINAPI D3DXVec2TransformCoordArray(D3DXVECTOR2 *pout, UINT outstride, CONST D3DXVECTOR2 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
00335 D3DXVECTOR2* WINAPI D3DXVec2TransformNormal(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv, CONST D3DXMATRIX *pm);
00336 D3DXVECTOR2* WINAPI D3DXVec2TransformNormalArray(D3DXVECTOR2 *pout, UINT outstride, CONST D3DXVECTOR2 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
00337 
00338 D3DXVECTOR3* WINAPI D3DXVec3BaryCentric(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2, CONST D3DXVECTOR3 *pv3, FLOAT f, FLOAT g);
00339 D3DXVECTOR3* WINAPI D3DXVec3CatmullRom( D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv0, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2, CONST D3DXVECTOR3 *pv3, FLOAT s);
00340 D3DXVECTOR3* WINAPI D3DXVec3Hermite(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pt1, CONST D3DXVECTOR3 *pv2, CONST D3DXVECTOR3 *pt2, FLOAT s);
00341 D3DXVECTOR3* WINAPI D3DXVec3Normalize(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv);
00342 D3DXVECTOR3* WINAPI D3DXVec3Project(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, CONST D3DVIEWPORT9 *pviewport, CONST D3DXMATRIX *pprojection, CONST D3DXMATRIX *pview, CONST D3DXMATRIX *pworld);
00343 D3DXVECTOR3* WINAPI D3DXVec3ProjectArray(D3DXVECTOR3 *pout, UINT outstride, CONST D3DXVECTOR3 *pv, UINT vstride, CONST D3DVIEWPORT9 *pviewport, CONST D3DXMATRIX *pprojection, CONST D3DXMATRIX *pview, CONST D3DXMATRIX *pworld, UINT n);
00344 D3DXVECTOR4* WINAPI D3DXVec3Transform(D3DXVECTOR4 *pout, CONST D3DXVECTOR3 *pv, CONST D3DXMATRIX *pm);
00345 D3DXVECTOR4* WINAPI D3DXVec3TransformArray(D3DXVECTOR4 *pout, UINT outstride, CONST D3DXVECTOR3 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
00346 D3DXVECTOR3* WINAPI D3DXVec3TransformCoord(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, CONST D3DXMATRIX *pm);
00347 D3DXVECTOR3* WINAPI D3DXVec3TransformCoordArray(D3DXVECTOR3 *pout, UINT outstride, CONST D3DXVECTOR3 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
00348 D3DXVECTOR3* WINAPI D3DXVec3TransformNormal(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, CONST D3DXMATRIX *pm);
00349 D3DXVECTOR3* WINAPI D3DXVec3TransformNormalArray(D3DXVECTOR3 *pout, UINT outstride, CONST D3DXVECTOR3 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
00350 D3DXVECTOR3* WINAPI D3DXVec3Unproject(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, CONST D3DVIEWPORT9 *pviewport, CONST D3DXMATRIX *pprojection, CONST D3DXMATRIX *pview, CONST D3DXMATRIX *pworld);
00351 D3DXVECTOR3* WINAPI D3DXVec3UnprojectArray(D3DXVECTOR3 *pout, UINT outstride, CONST D3DXVECTOR3 *pv, UINT vstride, CONST D3DVIEWPORT9 *pviewport, CONST D3DXMATRIX *pprojection, CONST D3DXMATRIX *pview, CONST D3DXMATRIX *pworld, UINT n);
00352 
00353 D3DXVECTOR4* WINAPI D3DXVec4BaryCentric(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2, CONST D3DXVECTOR4 *pv3, FLOAT f, FLOAT g);
00354 D3DXVECTOR4* WINAPI D3DXVec4CatmullRom(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv0, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2, CONST D3DXVECTOR4 *pv3, FLOAT s);
00355 D3DXVECTOR4* WINAPI D3DXVec4Cross(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2, CONST D3DXVECTOR4 *pv3);
00356 D3DXVECTOR4* WINAPI D3DXVec4Hermite(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pt1, CONST D3DXVECTOR4 *pv2, CONST D3DXVECTOR4 *pt2, FLOAT s);
00357 D3DXVECTOR4* WINAPI D3DXVec4Normalize(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv);
00358 D3DXVECTOR4* WINAPI D3DXVec4Transform(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv, CONST D3DXMATRIX *pm);
00359 D3DXVECTOR4* WINAPI D3DXVec4TransformArray(D3DXVECTOR4 *pout, UINT outstride, CONST D3DXVECTOR4 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
00360 
00361 #ifdef __cplusplus
00362 }
00363 #endif
00364 
00365 typedef interface ID3DXMatrixStack *LPD3DXMATRIXSTACK;
00366 
00367 DEFINE_GUID(IID_ID3DXMatrixStack,
00368 0xc7885ba7, 0xf990, 0x4fe7, 0x92, 0x2d, 0x85, 0x15, 0xe4, 0x77, 0xdd, 0x85);
00369 
00370 #undef INTERFACE
00371 #define INTERFACE ID3DXMatrixStack
00372 
00373 DECLARE_INTERFACE_(ID3DXMatrixStack, IUnknown)
00374 {
00375     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
00376     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00377     STDMETHOD_(ULONG,Release)(THIS) PURE;
00378     STDMETHOD(Pop)(THIS) PURE;
00379     STDMETHOD(Push)(THIS) PURE;
00380     STDMETHOD(LoadIdentity)(THIS) PURE;
00381     STDMETHOD(LoadMatrix)(THIS_ CONST D3DXMATRIX* pM ) PURE;
00382     STDMETHOD(MultMatrix)(THIS_ CONST D3DXMATRIX* pM ) PURE;
00383     STDMETHOD(MultMatrixLocal)(THIS_ CONST D3DXMATRIX* pM ) PURE;
00384     STDMETHOD(RotateAxis)(THIS_ CONST D3DXVECTOR3* pV, FLOAT Angle) PURE;
00385     STDMETHOD(RotateAxisLocal)(THIS_ CONST D3DXVECTOR3* pV, FLOAT Angle) PURE;
00386     STDMETHOD(RotateYawPitchRoll)(THIS_ FLOAT Yaw, FLOAT Pitch, FLOAT Roll) PURE;
00387     STDMETHOD(RotateYawPitchRollLocal)(THIS_ FLOAT Yaw, FLOAT Pitch, FLOAT Roll) PURE;
00388     STDMETHOD(Scale)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
00389     STDMETHOD(ScaleLocal)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
00390     STDMETHOD(Translate)(THIS_ FLOAT x, FLOAT y, FLOAT z ) PURE;
00391     STDMETHOD(TranslateLocal)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
00392     STDMETHOD_(D3DXMATRIX*, GetTop)(THIS) PURE;
00393 };
00394 
00395 #undef INTERFACE
00396 
00397 #if !defined(__cplusplus) || defined(CINTERFACE)
00398 
00399 #define ID3DXMatrixStack_QueryInterface(p,a,b)            (p)->lpVtbl->QueryInterface(p,a,b)
00400 #define ID3DXMatrixStack_AddRef(p)                        (p)->lpVtbl->AddRef(p)
00401 #define ID3DXMatrixStack_Release(p)                       (p)->lpVtbl->Release(p)
00402 #define ID3DXMatrixStack_Pop(p)                           (p)->lpVtbl->Pop(p)
00403 #define ID3DXMatrixStack_Push(p)                          (p)->lpVtbl->Push(p)
00404 #define ID3DXMatrixStack_LoadIdentity(p)                  (p)->lpVtbl->LoadIdentity(p)
00405 #define ID3DXMatrixStack_LoadMatrix(p,a)                  (p)->lpVtbl->LoadMatrix(p,a)
00406 #define ID3DXMatrixStack_MultMatrix(p,a)                  (p)->lpVtbl->MultMatrix(p,a)
00407 #define ID3DXMatrixStack_MultMatrixLocal(p,a)             (p)->lpVtbl->MultMatrixLocal(p,a)
00408 #define ID3DXMatrixStack_RotateAxis(p,a,b)                (p)->lpVtbl->RotateAxis(p,a,b)
00409 #define ID3DXMatrixStack_RotateAxisLocal(p,a,b)           (p)->lpVtbl->RotateAxisLocal(p,a,b)
00410 #define ID3DXMatrixStack_RotateYawPitchRoll(p,a,b,c)      (p)->lpVtbl->RotateYawPitchRoll(p,a,b,c)
00411 #define ID3DXMatrixStack_RotateYawPitchRollLocal(p,a,b,c) (p)->lpVtbl->RotateYawPitchRollLocal(p,a,b,c)
00412 #define ID3DXMatrixStack_Scale(p,a,b,c)                   (p)->lpVtbl->Scale(p,a,b,c)
00413 #define ID3DXMatrixStack_ScaleLocal(p,a,b,c)              (p)->lpVtbl->ScaleLocal(p,a,b,c)
00414 #define ID3DXMatrixStack_Translate(p,a,b,c)               (p)->lpVtbl->Translate(p,a,b,c)
00415 #define ID3DXMatrixStack_TranslateLocal(p,a,b,c)          (p)->lpVtbl->TranslateLocal(p,a,b,c)
00416 #define ID3DXMatrixStack_GetTop(p)                        (p)->lpVtbl->GetTop(p)
00417 
00418 #endif
00419 
00420 #ifdef __cplusplus
00421 extern "C" {
00422 #endif
00423 
00424 HRESULT WINAPI D3DXCreateMatrixStack(DWORD flags, LPD3DXMATRIXSTACK* ppstack);
00425 
00426 #ifdef __cplusplus
00427 }
00428 #endif
00429 
00430 #include <d3dx9math.inl>
00431 
00432 #endif /* __D3DX9MATH_H__ */

Generated on Sun May 27 2012 04:30:36 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.