BsHandleManager.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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()
  23. {
  24. SceneEditorWidget* sceneView = SceneViewLocator::instance();
  25. if (sceneView != nullptr)
  26. {
  27. HCamera sceneCamera = sceneView->getSceneCamera();
  28. queueDrawCommands();
  29. mDrawManager->draw(sceneCamera);
  30. }
  31. }
  32. void HandleManager::handleInput(const Vector2I& inputPos, const Ray& inputRay, bool pressed)
  33. {
  34. SceneEditorWidget* sceneView = SceneViewLocator::instance();
  35. if (sceneView != nullptr)
  36. {
  37. HCamera sceneCamera = sceneView->getSceneCamera();
  38. refreshHandles();
  39. mSliderManager->update(sceneCamera, inputPos, inputRay, pressed);
  40. triggerHandles();
  41. }
  42. }
  43. }