BsCReflectionProbe.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "BsCReflectionProbe.h"
  4. #include "BsCReflectionProbeRTTI.h"
  5. #include "BsSceneManager.h"
  6. namespace bs
  7. {
  8. CReflectionProbe::CReflectionProbe()
  9. {
  10. setFlag(ComponentFlag::AlwaysRun, true);
  11. setName("ReflectionProbe");
  12. }
  13. CReflectionProbe::CReflectionProbe(const HSceneObject& parent)
  14. : Component(parent)
  15. {
  16. setFlag(ComponentFlag::AlwaysRun, true);
  17. setName("ReflectionProbe");
  18. }
  19. CReflectionProbe::~CReflectionProbe()
  20. {
  21. mInternal->destroy();
  22. }
  23. Sphere CReflectionProbe::getBounds() const
  24. {
  25. mInternal->_updateTransform(SO());
  26. return mInternal->getBounds();
  27. }
  28. void CReflectionProbe::onInitialized()
  29. {
  30. // If mInternal already exists this means this object was deserialized,
  31. // so all we need to do is initialize it.
  32. if (mInternal != nullptr)
  33. mInternal->initialize();
  34. else
  35. mInternal = ReflectionProbe::createBox(Vector3::ONE);
  36. gSceneManager()._registerReflectionProbe(mInternal, sceneObject());
  37. }
  38. void CReflectionProbe::onDestroyed()
  39. {
  40. gSceneManager()._unregisterReflectionProbe(mInternal);
  41. }
  42. RTTITypeBase* CReflectionProbe::getRTTIStatic()
  43. {
  44. return CReflectionProbeRTTI::instance();
  45. }
  46. RTTITypeBase* CReflectionProbe::getRTTI() const
  47. {
  48. return CReflectionProbe::getRTTIStatic();
  49. }
  50. }