Material.cpp
Upload User: hcfgz168
Upload Date: 2011-09-11
Package Size: 116k
Code Size: 3k
Category:

OpenGL program

Development Platform:

WINDOWS

  1. //********************************************
  2. // Material.cpp
  3. //********************************************
  4. // pierre.alliez@cnet.francetelecom.fr
  5. // Created : 24/02/98
  6. // Modified : 24/02/98
  7. //********************************************
  8. #include "stdafx.h"
  9. #include "Material.h"
  10. //********************************************
  11. // Constructor
  12. //********************************************
  13. CMaterial::CMaterial()
  14. {
  15. // Default
  16. SetAmbient(0.0f,0.33f,0.5f,1.0f);
  17. SetDiffuse(0.5f,0.5f,0.5f,1.0f);
  18. SetSpecular(1.0f,1.0f,1.0f,1.0f);
  19. SetShininess(84.0f);
  20. SetEmission(0.0f,0.0f,0.0f,1.0f);
  21. }
  22. //////////////////////////////////////////////
  23. // DATA SETTINGS
  24. //////////////////////////////////////////////
  25. //********************************************
  26. // SetAmbient
  27. //********************************************
  28. void CMaterial::SetAmbient(float r,
  29.  float g,
  30.  float b,
  31.  float a)
  32. {
  33. m_pAmbient[0] = r;
  34. m_pAmbient[1] = g;
  35. m_pAmbient[2] = b;
  36. m_pAmbient[3] = a;
  37. }
  38. //********************************************
  39. // SetDiffuse
  40. //********************************************
  41. void CMaterial::SetDiffuse(float r,
  42.  float g,
  43.  float b,
  44.  float a)
  45. {
  46. m_pDiffuse[0] = r;
  47. m_pDiffuse[1] = g;
  48. m_pDiffuse[2] = b;
  49. m_pDiffuse[3] = a;
  50. }
  51. //********************************************
  52. // SetSpecular
  53. //********************************************
  54. void CMaterial::SetSpecular(float r,
  55. float g,
  56. float b,
  57. float a)
  58. {
  59. m_pSpecular[0] = r;
  60. m_pSpecular[1] = g;
  61. m_pSpecular[2] = b;
  62. m_pSpecular[3] = a;
  63. }
  64. //********************************************
  65. // SetEmission
  66. //********************************************
  67. void CMaterial::SetEmission(float r,
  68. float g,
  69. float b,
  70. float a)
  71. {
  72. m_pEmission[0] = r;
  73. m_pEmission[1] = g;
  74. m_pEmission[2] = b;
  75. m_pEmission[3] = a;
  76. }
  77. //********************************************
  78. // SetShininess
  79. //********************************************
  80. void CMaterial::SetShininess(float value)
  81. {
  82. m_pShininess[0] = value;
  83. }
  84. //********************************************
  85. // Copy
  86. //********************************************
  87. void CMaterial::Copy(CMaterial *pMaterial)
  88. {
  89. SetSpecular(pMaterial->GetSpecular()[0],pMaterial->GetSpecular()[1],pMaterial->GetSpecular()[2],pMaterial->GetSpecular()[3]);
  90. SetAmbient(pMaterial->GetAmbient()[0],pMaterial->GetAmbient()[1],pMaterial->GetAmbient()[2],pMaterial->GetAmbient()[3]);
  91. SetDiffuse(pMaterial->GetDiffuse()[0],pMaterial->GetDiffuse()[1],pMaterial->GetDiffuse()[2],pMaterial->GetDiffuse()[3]);
  92. SetEmission(pMaterial->GetEmission()[0],pMaterial->GetEmission()[1],pMaterial->GetEmission()[2],pMaterial->GetEmission()[3]);
  93. SetShininess(pMaterial->GetShininess()[0]);
  94. }
  95. // ** EOF **