af062818b47340eef15700d2f0211576ba3506eevboxsync/*
af062818b47340eef15700d2f0211576ba3506eevboxsync * Copyright (C) 2007 David Adam
af062818b47340eef15700d2f0211576ba3506eevboxsync * Copyright (C) 2007 Tony Wasserka
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is free software; you can redistribute it and/or
af062818b47340eef15700d2f0211576ba3506eevboxsync * modify it under the terms of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License as published by the Free Software Foundation; either
af062818b47340eef15700d2f0211576ba3506eevboxsync * version 2.1 of the License, or (at your option) any later version.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is distributed in the hope that it will be useful,
af062818b47340eef15700d2f0211576ba3506eevboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
af062818b47340eef15700d2f0211576ba3506eevboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
af062818b47340eef15700d2f0211576ba3506eevboxsync * Lesser General Public License for more details.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * You should have received a copy of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License along with this library; if not, write to the Free Software
af062818b47340eef15700d2f0211576ba3506eevboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
af062818b47340eef15700d2f0211576ba3506eevboxsync */
af062818b47340eef15700d2f0211576ba3506eevboxsync
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync/*
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * a choice of LGPL license versions is made available with the language indicating
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * of the LGPL is applied is otherwise unspecified.
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync */
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#include <d3dx8.h>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifndef __D3DX8MATH_H__
af062818b47340eef15700d2f0211576ba3506eevboxsync#define __D3DX8MATH_H__
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#include <math.h>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#define D3DX_PI ((FLOAT)3.141592654)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define D3DX_1BYPI ((FLOAT)0.318309886)
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#define D3DXToRadian(degree) ((degree) * (D3DX_PI / 180.0f))
af062818b47340eef15700d2f0211576ba3506eevboxsync#define D3DXToDegree(radian) ((radian) * (180.0f / D3DX_PI))
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct ID3DXMatrixStack *LPD3DXMATRIXSTACK;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncDEFINE_GUID(IID_ID3DXMatrixStack,
af062818b47340eef15700d2f0211576ba3506eevboxsync0xe3357330, 0xcc5e, 0x11d2, 0xa4, 0x34, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct D3DXVECTOR2
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR2();
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR2(CONST FLOAT *pf);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR2(FLOAT fx, FLOAT fy);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync operator FLOAT* ();
af062818b47340eef15700d2f0211576ba3506eevboxsync operator CONST FLOAT* () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR2& operator += (CONST D3DXVECTOR2&);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR2& operator -= (CONST D3DXVECTOR2&);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR2& operator *= (FLOAT);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR2& operator /= (FLOAT);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR2 operator + () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR2 operator - () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR2 operator + (CONST D3DXVECTOR2&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR2 operator - (CONST D3DXVECTOR2&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR2 operator * (FLOAT) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR2 operator / (FLOAT) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync friend D3DXVECTOR2 operator * (FLOAT, CONST D3DXVECTOR2&);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL operator == (CONST D3DXVECTOR2&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL operator != (CONST D3DXVECTOR2&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* __cplusplus */
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT x, y;
af062818b47340eef15700d2f0211576ba3506eevboxsync} D3DXVECTOR2, *LPD3DXVECTOR2;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct D3DXVECTOR3 : public D3DVECTOR
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR3();
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR3(CONST FLOAT *pf);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR3(CONST D3DVECTOR& v);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR3(FLOAT fx, FLOAT fy, FLOAT fz);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync operator FLOAT* ();
af062818b47340eef15700d2f0211576ba3506eevboxsync operator CONST FLOAT* () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR3& operator += (CONST D3DXVECTOR3&);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR3& operator -= (CONST D3DXVECTOR3&);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR3& operator *= (FLOAT);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR3& operator /= (FLOAT);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR3 operator + () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR3 operator - () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR3 operator + (CONST D3DXVECTOR3&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR3 operator - (CONST D3DXVECTOR3&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR3 operator * (FLOAT) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR3 operator / (FLOAT) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync friend D3DXVECTOR3 operator * (FLOAT, CONST struct D3DXVECTOR3&);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL operator == (CONST D3DXVECTOR3&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL operator != (CONST D3DXVECTOR3&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync} D3DXVECTOR3, *LPD3DXVECTOR3;
af062818b47340eef15700d2f0211576ba3506eevboxsync#else /* !__cplusplus */
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _D3DVECTOR D3DXVECTOR3, *LPD3DXVECTOR3;
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* !__cplusplus */
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct D3DXVECTOR4
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR4();
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR4(CONST FLOAT *pf);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR4(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fw);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync operator FLOAT* ();
af062818b47340eef15700d2f0211576ba3506eevboxsync operator CONST FLOAT* () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR4& operator += (CONST D3DXVECTOR4&);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR4& operator -= (CONST D3DXVECTOR4&);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR4& operator *= (FLOAT);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR4& operator /= (FLOAT);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR4 operator + () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR4 operator - () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR4 operator + (CONST D3DXVECTOR4&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR4 operator - (CONST D3DXVECTOR4&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR4 operator * (FLOAT) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXVECTOR4 operator / (FLOAT) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync friend D3DXVECTOR4 operator * (FLOAT, CONST D3DXVECTOR4&);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL operator == (CONST D3DXVECTOR4&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL operator != (CONST D3DXVECTOR4&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* __cplusplus */
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT x, y, z, w;
af062818b47340eef15700d2f0211576ba3506eevboxsync} D3DXVECTOR4, *LPD3DXVECTOR4;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct D3DXMATRIX : public D3DMATRIX
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMATRIX();
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMATRIX(CONST FLOAT *pf);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMATRIX(CONST D3DMATRIX& mat);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMATRIX(FLOAT f11, FLOAT f12, FLOAT f13, FLOAT f14,
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT f21, FLOAT f22, FLOAT f23, FLOAT f24,
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT f31, FLOAT f32, FLOAT f33, FLOAT f34,
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT f41, FLOAT f42, FLOAT f43, FLOAT f44);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT& operator () (UINT row, UINT col);
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT operator () (UINT row, UINT col) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync operator FLOAT* ();
af062818b47340eef15700d2f0211576ba3506eevboxsync operator CONST FLOAT* () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMATRIX& operator *= (CONST D3DXMATRIX&);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMATRIX& operator += (CONST D3DXMATRIX&);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMATRIX& operator -= (CONST D3DXMATRIX&);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMATRIX& operator *= (FLOAT);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMATRIX& operator /= (FLOAT);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMATRIX operator + () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMATRIX operator - () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMATRIX operator * (CONST D3DXMATRIX&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMATRIX operator + (CONST D3DXMATRIX&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMATRIX operator - (CONST D3DXMATRIX&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMATRIX operator * (FLOAT) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMATRIX operator / (FLOAT) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync friend D3DXMATRIX operator * (FLOAT, CONST D3DXMATRIX&);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL operator == (CONST D3DXMATRIX&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL operator != (CONST D3DXMATRIX&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync} D3DXMATRIX, *LPD3DXMATRIX;
af062818b47340eef15700d2f0211576ba3506eevboxsync#else /* !__cplusplus */
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _D3DMATRIX D3DXMATRIX, *LPD3DXMATRIX;
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* !__cplusplus */
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct D3DXQUATERNION
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXQUATERNION();
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXQUATERNION(CONST FLOAT *pf);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXQUATERNION(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fw);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync operator FLOAT* ();
af062818b47340eef15700d2f0211576ba3506eevboxsync operator CONST FLOAT* () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXQUATERNION& operator += (CONST D3DXQUATERNION&);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXQUATERNION& operator -= (CONST D3DXQUATERNION&);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXQUATERNION& operator *= (CONST D3DXQUATERNION&);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXQUATERNION& operator *= (FLOAT);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXQUATERNION& operator /= (FLOAT);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXQUATERNION operator + () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXQUATERNION operator - () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXQUATERNION operator + (CONST D3DXQUATERNION&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXQUATERNION operator - (CONST D3DXQUATERNION&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXQUATERNION operator * (CONST D3DXQUATERNION&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXQUATERNION operator * (FLOAT) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXQUATERNION operator / (FLOAT) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync friend D3DXQUATERNION operator * (FLOAT, CONST D3DXQUATERNION&);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL operator == (CONST D3DXQUATERNION&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL operator != (CONST D3DXQUATERNION&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* __cplusplus */
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT x, y, z, w;
af062818b47340eef15700d2f0211576ba3506eevboxsync} D3DXQUATERNION, *LPD3DXQUATERNION;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct D3DXPLANE
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXPLANE();
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXPLANE(CONST FLOAT *pf);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXPLANE(FLOAT fa, FLOAT fb, FLOAT fc, FLOAT fd);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync operator FLOAT* ();
af062818b47340eef15700d2f0211576ba3506eevboxsync operator CONST FLOAT* () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXPLANE operator + () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXPLANE operator - () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL operator == (CONST D3DXPLANE&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL operator != (CONST D3DXPLANE&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* __cplusplus */
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT a, b, c, d;
af062818b47340eef15700d2f0211576ba3506eevboxsync} D3DXPLANE, *LPD3DXPLANE;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct D3DXCOLOR
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXCOLOR();
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXCOLOR(DWORD col);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXCOLOR(CONST FLOAT *pf);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXCOLOR(CONST D3DCOLORVALUE& col);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXCOLOR(FLOAT fr, FLOAT fg, FLOAT fb, FLOAT fa);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync operator DWORD () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync operator FLOAT* ();
af062818b47340eef15700d2f0211576ba3506eevboxsync operator CONST FLOAT* () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync operator D3DCOLORVALUE* ();
af062818b47340eef15700d2f0211576ba3506eevboxsync operator CONST D3DCOLORVALUE* () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync operator D3DCOLORVALUE& ();
af062818b47340eef15700d2f0211576ba3506eevboxsync operator CONST D3DCOLORVALUE& () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXCOLOR& operator += (CONST D3DXCOLOR&);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXCOLOR& operator -= (CONST D3DXCOLOR&);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXCOLOR& operator *= (FLOAT);
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXCOLOR& operator /= (FLOAT);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXCOLOR operator + () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXCOLOR operator - () const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXCOLOR operator + (CONST D3DXCOLOR&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXCOLOR operator - (CONST D3DXCOLOR&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXCOLOR operator * (FLOAT) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXCOLOR operator / (FLOAT) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync friend D3DXCOLOR operator * (FLOAT, CONST D3DXCOLOR&);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL operator == (CONST D3DXCOLOR&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL operator != (CONST D3DXCOLOR&) const;
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* __cplusplus */
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT r, g, b, a;
af062818b47340eef15700d2f0211576ba3506eevboxsync} D3DXCOLOR, *LPD3DXCOLOR;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsyncextern "C" {
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXCOLOR* WINAPI D3DXColorAdjustContrast(D3DXCOLOR *pout, CONST D3DXCOLOR *pc, FLOAT s);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXCOLOR* WINAPI D3DXColorAdjustSaturation(D3DXCOLOR *pout, CONST D3DXCOLOR *pc, FLOAT s);
af062818b47340eef15700d2f0211576ba3506eevboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsyncFLOAT WINAPI D3DXFresnelTerm(FLOAT costheta, FLOAT refractionindex);
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixAffineTransformation(D3DXMATRIX *pout, FLOAT scaling, CONST D3DXVECTOR3 *rotationcenter, CONST D3DXQUATERNION *rotation, CONST D3DXVECTOR3 *translation);
af062818b47340eef15700d2f0211576ba3506eevboxsyncFLOAT WINAPI D3DXMatrixfDeterminant(CONST D3DXMATRIX *pm);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixInverse(D3DXMATRIX *pout, FLOAT *pdeterminant, CONST D3DXMATRIX *pm);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixLookAtLH(D3DXMATRIX *pout, CONST D3DXVECTOR3 *peye, CONST D3DXVECTOR3 *pat, CONST D3DXVECTOR3 *pup);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixLookAtRH(D3DXMATRIX *pout, CONST D3DXVECTOR3 *peye, CONST D3DXVECTOR3 *pat, CONST D3DXVECTOR3 *pup);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixMultiply(D3DXMATRIX *pout, CONST D3DXMATRIX *pm1, CONST D3DXMATRIX *pm2);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixMultiplyTranspose(D3DXMATRIX *pout, CONST D3DXMATRIX *pm1, CONST D3DXMATRIX *pm2);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixOrthoLH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixOrthoOffCenterLH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixOrthoOffCenterRH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixOrthoLH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixOrthoRH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixPerspectiveFovLH(D3DXMATRIX *pout, FLOAT fovy, FLOAT aspect, FLOAT zn, FLOAT zf);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixPerspectiveFovRH(D3DXMATRIX *pout, FLOAT fovy, FLOAT aspect, FLOAT zn, FLOAT zf);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixPerspectiveLH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixPerspectiveOffCenterLH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixPerspectiveOffCenterRH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixPerspectiveRH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixReflect(D3DXMATRIX *pout, CONST D3DXPLANE *pplane);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixRotationAxis(D3DXMATRIX *pout, CONST D3DXVECTOR3 *pv, FLOAT angle);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixRotationQuaternion(D3DXMATRIX *pout, CONST D3DXQUATERNION *pq);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixRotationX(D3DXMATRIX *pout, FLOAT angle);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixRotationY(D3DXMATRIX *pout, FLOAT angle);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixRotationYawPitchRoll(D3DXMATRIX *pout, FLOAT yaw, FLOAT pitch, FLOAT roll);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixRotationZ(D3DXMATRIX *pout, FLOAT angle);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixScaling(D3DXMATRIX *pout, FLOAT sx, FLOAT sy, FLOAT sz);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixShadow(D3DXMATRIX *pout, CONST D3DXVECTOR4 *plight, CONST D3DXPLANE *pPlane);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixTransformation(D3DXMATRIX *pout, CONST D3DXVECTOR3 *pscalingcenter, CONST D3DXQUATERNION *pscalingrotation, CONST D3DXVECTOR3 *pscaling, CONST D3DXVECTOR3 *protationcenter, CONST D3DXQUATERNION *protation, CONST D3DXVECTOR3 *ptranslation);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixTranslation(D3DXMATRIX *pout, FLOAT x, FLOAT y, FLOAT z);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXMATRIX* WINAPI D3DXMatrixTranspose(D3DXMATRIX *pout, CONST D3DXMATRIX *pm);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXPLANE* WINAPI D3DXPlaneFromPointNormal(D3DXPLANE *pout, CONST D3DXVECTOR3 *pvpoint, CONST D3DXVECTOR3 *pvnormal);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXPLANE* WINAPI D3DXPlaneFromPoints(D3DXPLANE *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2, CONST D3DXVECTOR3 *pv3);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR3* WINAPI D3DXPlaneIntersectLine(D3DXVECTOR3 *pout, CONST D3DXPLANE *pp, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXPLANE* WINAPI D3DXPlaneNormalize(D3DXPLANE *pout, CONST D3DXPLANE *pp);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXPLANE* WINAPI D3DXPlaneTransform(D3DXPLANE *pout, CONST D3DXPLANE *pplane, CONST D3DXMATRIX *pm);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXQUATERNION* WINAPI D3DXQuaternionBaryCentric(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2, CONST D3DXQUATERNION *pq3, FLOAT f, FLOAT g);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXQUATERNION* WINAPI D3DXQuaternionExp(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXQUATERNION* WINAPI D3DXQuaternionInverse(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXQUATERNION* WINAPI D3DXQuaternionLn(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXQUATERNION* WINAPI D3DXQuaternionMultiply(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXQUATERNION* WINAPI D3DXQuaternionNormalize(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXQUATERNION* WINAPI D3DXQuaternionRotationAxis(D3DXQUATERNION *pout, CONST D3DXVECTOR3 *pv, FLOAT angle);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXQUATERNION* WINAPI D3DXQuaternionRotationMatrix(D3DXQUATERNION *pout, CONST D3DXMATRIX *pm);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXQUATERNION* WINAPI D3DXQuaternionRotationYawPitchRoll(D3DXQUATERNION *pout, FLOAT yaw, FLOAT pitch, FLOAT roll);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXQUATERNION* WINAPI D3DXQuaternionSlerp(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2, FLOAT t);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXQUATERNION* WINAPI D3DXQuaternionSquad(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2, CONST D3DXQUATERNION *pq3, CONST D3DXQUATERNION *pq4, FLOAT t);
af062818b47340eef15700d2f0211576ba3506eevboxsyncvoid WINAPI D3DXQuaternionToAxisAngle(CONST D3DXQUATERNION *pq, D3DXVECTOR3 *paxis, FLOAT *pangle);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR2* WINAPI D3DXVec2BaryCentric(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2, CONST D3DXVECTOR2 *pv3, FLOAT f, FLOAT g);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR2* WINAPI D3DXVec2CatmullRom(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv0, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2, CONST D3DXVECTOR2 *pv3, FLOAT s);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR2* WINAPI D3DXVec2Hermite(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pt1, CONST D3DXVECTOR2 *pv2, CONST D3DXVECTOR2 *pt2, FLOAT s);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR2* WINAPI D3DXVec2Normalize(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR4* WINAPI D3DXVec2Transform(D3DXVECTOR4 *pout, CONST D3DXVECTOR2 *pv, CONST D3DXMATRIX *pm);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR2* WINAPI D3DXVec2TransformCoord(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv, CONST D3DXMATRIX *pm);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR2* WINAPI D3DXVec2TransformNormal(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv, CONST D3DXMATRIX *pm);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR3* WINAPI D3DXVec3BaryCentric(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2, CONST D3DXVECTOR3 *pv3, FLOAT f, FLOAT g);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR3* WINAPI D3DXVec3CatmullRom( D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv0, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2, CONST D3DXVECTOR3 *pv3, FLOAT s);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR3* WINAPI D3DXVec3Hermite(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pt1, CONST D3DXVECTOR3 *pv2, CONST D3DXVECTOR3 *pt2, FLOAT s);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR3* WINAPI D3DXVec3Normalize(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR3* WINAPI D3DXVec3Project(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, CONST D3DVIEWPORT8 *pviewport, CONST D3DXMATRIX *pprojection, CONST D3DXMATRIX *pview, CONST D3DXMATRIX *pworld);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR4* WINAPI D3DXVec3Transform(D3DXVECTOR4 *pout, CONST D3DXVECTOR3 *pv, CONST D3DXMATRIX *pm);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR3* WINAPI D3DXVec3TransformCoord(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, CONST D3DXMATRIX *pm);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR3* WINAPI D3DXVec3TransformNormal(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, CONST D3DXMATRIX *pm);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR3* WINAPI D3DXVec3Unproject(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, CONST D3DVIEWPORT8 *pviewport, CONST D3DXMATRIX *pprojection, CONST D3DXMATRIX *pview, CONST D3DXMATRIX *pworld);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR4* WINAPI D3DXVec4BaryCentric(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2, CONST D3DXVECTOR4 *pv3, FLOAT f, FLOAT g);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR4* WINAPI D3DXVec4CatmullRom(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv0, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2, CONST D3DXVECTOR4 *pv3, FLOAT s);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR4* WINAPI D3DXVec4Cross(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2, CONST D3DXVECTOR4 *pv3);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR4* WINAPI D3DXVec4Hermite(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pt1, CONST D3DXVECTOR4 *pv2, CONST D3DXVECTOR4 *pt2, FLOAT s);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR4* WINAPI D3DXVec4Normalize(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv);
af062818b47340eef15700d2f0211576ba3506eevboxsyncD3DXVECTOR4* WINAPI D3DXVec4Transform(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv, CONST D3DXMATRIX *pm);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#define INTERFACE ID3DXMatrixStack
af062818b47340eef15700d2f0211576ba3506eevboxsyncDECLARE_INTERFACE_(ID3DXMatrixStack, IUnknown)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID, LPVOID*) PURE;
af062818b47340eef15700d2f0211576ba3506eevboxsync STDMETHOD_(ULONG,AddRef)(THIS) PURE;
af062818b47340eef15700d2f0211576ba3506eevboxsync STDMETHOD_(ULONG,Release)(THIS) PURE;
af062818b47340eef15700d2f0211576ba3506eevboxsync STDMETHOD(Pop)(THIS) PURE;
af062818b47340eef15700d2f0211576ba3506eevboxsync STDMETHOD(Push)(THIS) PURE;
af062818b47340eef15700d2f0211576ba3506eevboxsync STDMETHOD(LoadIdentity)(THIS) PURE;
af062818b47340eef15700d2f0211576ba3506eevboxsync STDMETHOD(LoadMatrix)(THIS_ CONST D3DXMATRIX *) PURE;
af062818b47340eef15700d2f0211576ba3506eevboxsync STDMETHOD(MultMatrix)(THIS_ CONST D3DXMATRIX *) PURE;
af062818b47340eef15700d2f0211576ba3506eevboxsync STDMETHOD(MultMatrixLocal)(THIS_ CONST D3DXMATRIX *) PURE;
af062818b47340eef15700d2f0211576ba3506eevboxsync STDMETHOD(RotateAxis)(THIS_ CONST D3DXVECTOR3 *, FLOAT) PURE;
af062818b47340eef15700d2f0211576ba3506eevboxsync STDMETHOD(RotateAxisLocal)(THIS_ CONST D3DXVECTOR3 *, FLOAT) PURE;
af062818b47340eef15700d2f0211576ba3506eevboxsync STDMETHOD(RotateYawPitchRoll)(THIS_ FLOAT, FLOAT, FLOAT) PURE;
af062818b47340eef15700d2f0211576ba3506eevboxsync STDMETHOD(RotateYawPitchRollLocal)(THIS_ FLOAT, FLOAT, FLOAT) PURE;
af062818b47340eef15700d2f0211576ba3506eevboxsync STDMETHOD(Scale)(THIS_ FLOAT, FLOAT, FLOAT) PURE;
af062818b47340eef15700d2f0211576ba3506eevboxsync STDMETHOD(ScaleLocal)(THIS_ FLOAT, FLOAT, FLOAT) PURE;
af062818b47340eef15700d2f0211576ba3506eevboxsync STDMETHOD(Translate)(THIS_ FLOAT, FLOAT, FLOAT) PURE;
af062818b47340eef15700d2f0211576ba3506eevboxsync STDMETHOD(TranslateLocal)(THIS_ FLOAT, FLOAT, FLOAT) PURE;
af062818b47340eef15700d2f0211576ba3506eevboxsync STDMETHOD_(LPD3DXMATRIX, GetTop)(THIS) PURE;
af062818b47340eef15700d2f0211576ba3506eevboxsync};
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#undef INTERFACE
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#if !defined(__cplusplus) || defined(CINTERFACE)
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ID3DXMatrixStack_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ID3DXMatrixStack_AddRef(p) (p)->lpVtbl->AddRef(p)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ID3DXMatrixStack_Release(p) (p)->lpVtbl->Release(p)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ID3DXMatrixStack_Pop(p) (p)->lpVtbl->Pop(p)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ID3DXMatrixStack_Push(p) (p)->lpVtbl->Push(p)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ID3DXMatrixStack_LoadIdentity(p) (p)->lpVtbl->LoadIdentity(p)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ID3DXMatrixStack_LoadMatrix(p,a) (p)->lpVtbl->LoadMatrix(p,a)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ID3DXMatrixStack_MultMatrix(p,a) (p)->lpVtbl->MultMatrix(p,a)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ID3DXMatrixStack_MultMatrixLocal(p,a) (p)->lpVtbl->MultMatrixLocal(p,a)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ID3DXMatrixStack_RotateAxis(p,a,b) (p)->lpVtbl->RotateAxis(p,a,b)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ID3DXMatrixStack_RotateAxisLocal(p,a,b) (p)->lpVtbl->RotateAxisLocal(p,a,b)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ID3DXMatrixStack_RotateYawPitchRoll(p,a,b,c) (p)->lpVtbl->RotateYawPitchRoll(p,a,b,c)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ID3DXMatrixStack_RotateYawPitchRollLocal(p,a,b,c) (p)->lpVtbl->RotateYawPitchRollLocal(p,a,b,c)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ID3DXMatrixStack_Scale(p,a,b,c) (p)->lpVtbl->Scale(p,a,b,c)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ID3DXMatrixStack_ScaleLocal(p,a,b,c) (p)->lpVtbl->ScaleLocal(p,a,b,c)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ID3DXMatrixStack_Translate(p,a,b,c) (p)->lpVtbl->Translate(p,a,b,c)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ID3DXMatrixStack_TranslateLocal(p,a,b,c) (p)->lpVtbl->TranslateLocal(p,a,b,c)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ID3DXMatrixStack_GetTop(p) (p)->lpVtbl->GetTop(p)
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsyncextern "C" {
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncHRESULT WINAPI D3DXCreateMatrixStack(DWORD flags, LPD3DXMATRIXSTACK* ppstack);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#include <d3dx8math.inl>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* __D3DX8MATH_H__ */