MLRPointLight.hpp 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. //===========================================================================//
  2. // Copyright (C) Microsoft Corporation. All rights reserved. //
  3. //===========================================================================//
  4. #pragma once
  5. #define MLR_MLRPOINTLIGHT_HPP
  6. #include "MLR.hpp"
  7. #include "MLRInfiniteLightWithFalloff.hpp"
  8. namespace MidLevelRenderer {
  9. //##########################################################################
  10. //###################### MLRPointLight ###############################
  11. //##########################################################################
  12. class MLRPointLight:
  13. public MLRInfiniteLightWithFalloff
  14. {
  15. public:
  16. static void
  17. InitializeClass();
  18. static void
  19. TerminateClass();
  20. MLRPointLight();
  21. MLRPointLight(
  22. Stuff::MemoryStream *stream,
  23. int version
  24. );
  25. MLRPointLight(Stuff::Page *page);
  26. ~MLRPointLight();
  27. void
  28. Save(Stuff::MemoryStream *stream);
  29. void
  30. Write(Stuff::Page *page);
  31. virtual void
  32. LightVertex(const MLRVertexData&);
  33. virtual LightType
  34. GetLightType()
  35. { Check_Object(this); return PointLight; }
  36. void
  37. SetLightMap(MLRLightMap *light_map);
  38. virtual MLRLightMap *
  39. GetLightMap()
  40. {Check_Object(this); return lightMap; }
  41. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  42. // Class Data Support
  43. //
  44. public:
  45. static ClassData
  46. *DefaultData;
  47. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  48. // Testing
  49. //
  50. public:
  51. void
  52. TestInstance();
  53. protected:
  54. MLRLightMap *lightMap;
  55. };
  56. }