Configuration.h
上传用户:henghua
上传日期:2007-11-14
资源大小:7655k
文件大小:2k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. #ifndef CONFIGURATION_H
  2. #define CONFIGURATION_H
  3. enum dtDatatypes
  4. {
  5. dtBool=0,
  6. dtFloat,
  7. dtInt
  8. };
  9. enum pParameters
  10. {
  11. p_bReflRefrStrength,
  12. p_fLODbias,
  13. p_fSunPosTheta,
  14. p_fSunPosAlpha,
  15. p_fSunShininess,
  16. p_fSunStrength,
  17. p_fWaterColourR,
  18. p_fWaterColourG,
  19. p_fWaterColourB,
  20. p_bDiffuseRefl,
  21. p_bisCloudy,
  22. p_bCloudiness,
  23. p_bisNight,
  24. p_bNight_Day,
  25. p_bisSnowing,
  26. p_bFogActive,
  27. numParameters
  28. };
  29. struct parameter
  30. {
  31. unsigned int datatype;
  32. union{
  33. int iData;
  34. bool bData;
  35. float fData;
  36. };
  37. };
  38. class CConfiguration
  39. {
  40. public:
  41. CConfiguration()
  42. {
  43. id = 0;
  44. add_parameter(p_bReflRefrStrength, dtFloat);
  45. add_parameter(p_fSunPosAlpha,dtFloat);
  46. add_parameter(p_fSunPosTheta,dtFloat);
  47. add_parameter(p_fSunShininess,dtFloat);
  48. add_parameter(p_fSunStrength,dtFloat);
  49. add_parameter(p_fLODbias,dtFloat);
  50. add_parameter(p_fWaterColourR,dtFloat);
  51. add_parameter(p_fWaterColourG,dtFloat);
  52. add_parameter(p_fWaterColourB,dtFloat);
  53. add_parameter(p_bDiffuseRefl,dtBool);
  54. add_parameter(p_bisCloudy,dtBool);
  55. add_parameter(p_bCloudiness,dtFloat);
  56. add_parameter(p_bNight_Day, dtFloat);
  57. add_parameter(p_bisNight,dtBool);
  58. add_parameter(p_bisSnowing,dtBool);
  59. add_parameter(p_bFogActive,dtBool);
  60. }
  61. bool add_parameter(unsigned int id, unsigned int datatype){
  62. params[id].datatype = datatype;
  63. return true;
  64. }
  65. float get_float(pParameters id){ return this->params[id].fData; }
  66. int get_int(pParameters id){ return this->params[id].iData; }
  67. bool get_bool(pParameters id){ return this->params[id].bData; }
  68. void set_float(pParameters id, float value){ params[id].fData = value; }
  69. void set_int(pParameters id, int value){ params[id].iData = value; }
  70. void set_bool(pParameters id, bool value){ params[id].bData = value; }
  71. parameter params[numParameters];
  72. private:
  73. unsigned int id;
  74. };
  75. #endif