D3DMatrix.h
上传用户:wymy58
上传日期:2007-01-07
资源大小:2086k
文件大小:2k
源码类别:

DirextX编程

开发平台:

Visual C++

  1. // Copyright (C) 1998-1999 DXGuide.  All Rights Reserved.
  2. // File: D3DMatrix.h
  3. #ifndef _D3DMATRIX__H
  4. #define _D3DMATRIX__H
  5. #if _MSC_VER >= 1000
  6. #pragma once
  7. #endif // _MSC_VER >= 1000
  8. // turn off warnings for /W4
  9. #pragma warning(disable: 4201)
  10. #define D3D_OVERLOADS
  11. #include <d3d.h>
  12. #pragma warning(default: 4201)
  13. class CD3DMatrix : public  _D3DMATRIX
  14. {
  15. public:
  16. CD3DMatrix(void);
  17. CD3DMatrix(
  18. D3DVALUE  __11, D3DVALUE  __12, D3DVALUE  __13, D3DVALUE  __14,
  19. D3DVALUE  __21, D3DVALUE  __22, D3DVALUE  __23, D3DVALUE  __24,
  20. D3DVALUE  __31, D3DVALUE  __32, D3DVALUE  __33, D3DVALUE  __34,
  21. D3DVALUE  __41, D3DVALUE  __42, D3DVALUE  __43, D3DVALUE  __44);
  22. ~CD3DMatrix();
  23. public:
  24. operator _D3DMATRIX*();
  25. operator const _D3DMATRIX*() const;
  26. friend CD3DMatrix operator+(const CD3DMatrix&  a, const CD3DMatrix&  b);
  27. friend CD3DMatrix operator*(const CD3DMatrix&  a, const CD3DMatrix&  b);
  28. CD3DMatrix& operator+=(const CD3DMatrix&  m);
  29. CD3DMatrix& operator*=(const CD3DMatrix&  m);
  30. public:
  31. void SetZero(void);
  32. void SetIdentity(void);
  33. void SetTranslate(D3DVALUE  ftx, D3DVALUE  fty, D3DVALUE  ftz);
  34. void SetTranslate(const D3DVECTOR&  v);
  35. void SetScale(D3DVALUE  fsx, D3DVALUE  fsy, D3DVALUE  fsz);
  36. void SetScale(const D3DVECTOR&  v);
  37. void SetRotateX(const D3DVALUE  fRads);
  38. void SetRotateY(const D3DVALUE  fRads);
  39. void SetRotateZ(const D3DVALUE  fRads);
  40. void SetRotation(const D3DVECTOR&  vDir, D3DVALUE  fRads);
  41. bool SetView(const D3DVECTOR&  vFrom,
  42. const D3DVECTOR&  vAt, const D3DVECTOR&  vWorldUp);
  43. bool SetProjection(
  44. D3DVALUE  fFOV = 1.570795f,
  45. D3DVALUE  fAspect = 1.0f, 
  46. D3DVALUE  fNearPlane = 1.0f,
  47. D3DVALUE  fFarPlane = 1000.0f);
  48. bool Invert(const D3DMATRIX&  a);
  49. };
  50. #endif // _D3DMATRIX__H