matrix3d.h
上传用户:lbr_007
上传日期:2019-05-31
资源大小:282k
文件大小:1k
源码类别:

传真(Fax)编程

开发平台:

Visual C++

  1. // matrix3d.h
  2. //
  3. #ifndef MATRIX_3D_NCLUDE_H_
  4. #define MATRIX_3D_NCLUDE_H_
  5. class Matrix3D {
  6. void InitMatrix(void)
  7. {
  8. memset(m_rotation,0,(size_t)(sizeof(double)*3));
  9. memset(m_position,0,(size_t)(sizeof(double)*3));
  10. memset(m_scale,0,(size_t)(sizeof(double)*3));
  11. }
  12. protected:
  13. double m_rotation[3];
  14. double m_position[3];
  15. double m_scale[3];
  16. public:
  17. Matrix3D(void);
  18. Matrix3D(const Matrix3D& matrix);
  19. ~Matrix3D(void);
  20. void Copy(const Matrix3D& matrix);
  21. Matrix3D& operator = (const Matrix3D& matrix);
  22. void GetRotation(double& xrot, double& yrot, double& zrot)const;
  23. void GetPosition(double& x, double& y, double& z)const;
  24. void GetScale(double& xscale, double& yscale, double& zscale)const;
  25. void SetRotation(double xrot, double yrot, double zrot);
  26. void SetPosition(double x, double y, double z);
  27. void SetScale(double xscale, double yscale, double zscale);
  28. void AddRotation(double xrot, double yrot, double zrot);
  29. double X(void)const{ return m_position[0];}
  30. double Y(void)const{ return m_position[1];}
  31. double Z(void)const{ return m_position[2];}
  32. double XRot(void)const{ return m_rotation[0];}
  33. double YRot(void)const{ return m_rotation[1];}
  34. double ZRot(void)const{ return m_rotation[2];}
  35. double XScale(void)const{ return m_scale[0];}
  36. double YScale(void)const{ return m_scale[1];}
  37. double ZScale(void)const{ return m_scale[2];}
  38. };
  39. #endif