BsHandleManager.cpp 957 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include "BsHandleManager.h"
  2. #include "BsHandleDrawManager.h"
  3. #include "BsHandleSliderManager.h"
  4. #include "BsSceneEditorWidget.h"
  5. namespace BansheeEngine
  6. {
  7. HandleManager::HandleManager()
  8. :mSliderManager(nullptr), mDrawManager(nullptr)
  9. {
  10. mSliderManager = bs_new<HandleSliderManager>();
  11. mDrawManager = bs_new<HandleDrawManager>();
  12. }
  13. HandleManager::~HandleManager()
  14. {
  15. bs_delete(mSliderManager);
  16. bs_delete(mDrawManager);
  17. }
  18. bool HandleManager::isHandleActive() const
  19. {
  20. return mSliderManager->isSliderActive();
  21. }
  22. void HandleManager::update(const Vector2I& inputPos, const Ray& inputRay, bool pressed)
  23. {
  24. SceneEditorWidget* sceneView = SceneViewLocator::instance();
  25. if (sceneView != nullptr)
  26. {
  27. HCamera sceneCamera = sceneView->getSceneCamera();
  28. refreshHandles();
  29. mSliderManager->update(sceneCamera, inputPos, inputRay, pressed);
  30. triggerHandles();
  31. queueDrawCommands();
  32. mDrawManager->draw(sceneCamera);
  33. }
  34. }
  35. }