object_roots.h
上传用户:liujun12jf
上传日期:2022-07-12
资源大小:638k
文件大小:2k
源码类别:

OpenGL

开发平台:

Visual C++

  1. // brm
  2. #ifndef _OBJECT_ROOTS_H_
  3. #define _OBJECT_ROOTS_H_
  4. #include "main.h"
  5. class CObjectsRoot : public CSceneNode
  6. {
  7. public:
  8. CObjectsRoot() {}
  9. ~CObjectsRoot() {}
  10. void Update(float fTime);
  11. void Render();
  12. SN_RTTI GetType() { return SN_ROOT; }
  13. };
  14. class CBlendingRoot : public CSceneNode
  15. {
  16. public:
  17. CBlendingRoot() {}
  18. ~CBlendingRoot() {}
  19. void Update(float fTime) {}
  20. void Render();
  21. SN_RTTI GetType() { return SN_BLENDING_ROOT; }
  22. };
  23. //////////////////////////////////////////////////////////////////////////////////////////////////
  24. // SCENE ROOT - MAIN ROOT, everything is updated and rendered using UpdateAll() and RenderAll() //
  25. //////////////////////////////////////////////////////////////////////////////////////////////////
  26. class CSceneRoot : public CSceneNode
  27. {
  28. public:
  29. CSceneRoot()
  30. {
  31. pBlendRoot = new CBlendingRoot;
  32. }
  33. ~CSceneRoot() {}
  34. CBlendingRoot *pBlendRoot;
  35. void UpdateScene(CSceneNode *n, float fTime);
  36. void RenderScene(CSceneNode *n);
  37. void UpdateSceneChildren(CSceneNode *n, float fTime);
  38. void RenderSceneChildren(CSceneNode *n);
  39. void Update(float fTime);
  40. void Render();
  41. SN_RTTI GetType() { return SN_MAIN_ROOT; }
  42. };
  43. /////////////////////////////////////////////////////////////////////////////////////
  44. class CSkyRoot
  45. {
  46. public:
  47. // sky_root (sky in night, day, moons, its lighting properties)
  48. };
  49. class CWorldRoot
  50. {
  51. public:
  52. // world_root (rain, weather effects, dynamic objects, spells)
  53. // world_object_root (cells->all objects->properties of each of them, ambient light, savegame)
  54. // world_pickobject_root (cells, selectable objects :/)
  55. // world_landscape_root (9 landscapes, some of their parts are culled)
  56. // world_spell_root (?)
  57. // world_vfx_root (all magic effects and other particle-objects, each made of couple of emitter things, properties)
  58. // world_water_node (many water nodes, some of them culled)
  59. // world_camera_root (positions, etc, some cameras, frustum, glare)
  60. };
  61. class CMenuRoot
  62. {
  63. public:
  64. // menu_scene (faders, mainmenu, helping gui, debuging, fps, grid, collide, textures, cursors)
  65. };
  66. class CInvetoryRoot
  67. {
  68. public:
  69. // inventory_scene (camera, directional light for player model)
  70. };
  71. class CGameScene
  72. {
  73. public:
  74. // sky_root
  75. // world_root
  76. // menu_scene
  77. // inventory_scene
  78. };
  79. #endif