BM.CPP
Upload User: fjejplh001
Upload Date: 2007-06-11
Package Size: 324k
Code Size: 2k
Category:

3D Graphic

Development Platform:

Visual C++

  1. // BM.cpp: implementation of the CBM class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "Visual.h"
  6. #include "VisualDoc.h"
  7. #include "VisualView.h"
  8. #include "BM.h"
  9. #ifdef _DEBUG
  10. #undef THIS_FILE
  11. static char THIS_FILE[]=__FILE__;
  12. #define new DEBUG_NEW
  13. #endif
  14. //////////////////////////////////////////////////////////////////////
  15. // Construction/Destruction
  16. //////////////////////////////////////////////////////////////////////
  17. IMPLEMENT_SERIAL(CBM,CObject,1)
  18. CBM::CBM()
  19. {
  20. }
  21. CBM::CBM(double m_BMx,double m_BMy,double m_BMz,double m_BMl,double m_BMw,double m_BMh,double m_BMRX,double m_BMRY,double m_BMRZ,float m_BMCR,float m_BMCG,float m_BMCB)
  22. {
  23. BMx=m_BMx;   BMy=m_BMy;  BMz=m_BMz;
  24. BMl=m_BMl;   BMw=m_BMw;  BMh=m_BMh;
  25. BMRX=m_BMRX;  BMRY=m_BMRY;  BMRZ=m_BMRZ;
  26. BMCR=m_BMCR;  BMCG=m_BMCG;  BMCB=m_BMCB;
  27. }
  28. CBM::~CBM()
  29. {
  30. }
  31. void CBM::Serialize(CArchive& ar) //存贮所绘图形的各项参数
  32. {
  33. CObject::Serialize(ar);
  34. if(ar.IsStoring())
  35. {
  36. ar<<BMx; ar<<BMy; ar<<BMz;
  37. ar<<BMl; ar<<BMw; ar<<BMh;
  38. ar<<BMRX; ar<<BMRY; ar<<BMRZ;
  39. ar<<BMCR; ar<<BMCG; ar<<BMCB;
  40. }
  41. else
  42. {
  43. ar>>BMx; ar>>BMy; ar>>BMz;
  44. ar>>BMl; ar>>BMw; ar>>BMh;
  45. ar>>BMRX; ar>>BMRY; ar>>BMRZ;
  46. ar>>BMCR; ar>>BMCG; ar>>BMCB;
  47. }
  48. }
  49. void CBM::DrawBMSelf() //绘制板材
  50. {
  51. glPushMatrix();
  52. glColor3f(BMCR,BMCG,BMCB); //所绘图形的颜色
  53. glTranslated(BMx,BMy,BMz); //所绘图形距原点的距离
  54. glRotated(BMRX,1,0,0); //所绘图形绕X轴旋转角度
  55. glRotated(BMRY,0,1,0); //所绘图形绕Y轴旋转角度
  56. glRotated(BMRZ,0,0,1); //所绘图形绕Z轴旋转角度
  57. m_pView->DrawCube(BMl,BMw,BMh); //绘制板材
  58.    glPopMatrix();
  59. }