BsHandleSliderManager.cpp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #include "BsHandleSliderManager.h"
  2. #include "BsDrawHelper.h"
  3. #include "BsMaterial.h"
  4. #include "BsBuiltinEditorResources.h"
  5. #include "BsCoreThread.h"
  6. #include "BsRendererManager.h"
  7. #include "BsRenderer.h"
  8. #include "BsTransientMesh.h"
  9. #include "BsCamera.h"
  10. #include "BsHandleSlider.h"
  11. using namespace std::placeholders;
  12. namespace BansheeEngine
  13. {
  14. HandleSliderManager::HandleSliderManager()
  15. {
  16. }
  17. HandleSliderManager::~HandleSliderManager()
  18. {
  19. }
  20. void HandleSliderManager::update(const Vector2I& inputPos, const Ray& inputRay, const Matrix4& viewMatrix, bool pressed)
  21. {
  22. // TODO - Handle mouse input
  23. // - Detect active and hover sliders
  24. }
  25. bool HandleSliderManager::isSliderActive() const
  26. {
  27. for (auto& slider : mSliders)
  28. {
  29. if (slider->getState() == HandleSlider::State::Active)
  30. return true;
  31. }
  32. return false;
  33. }
  34. void HandleSliderManager::_registerCapsuleCollider(const Capsule& collider, HandleSlider* slider)
  35. {
  36. if (mSliders.find(slider) == mSliders.end())
  37. mSliders.insert(slider);
  38. mCapsuleColliders[slider] = collider;
  39. }
  40. void HandleSliderManager::_registerSphereCollider(const Sphere& collider, HandleSlider* slider)
  41. {
  42. if (mSliders.find(slider) == mSliders.end())
  43. mSliders.insert(slider);
  44. mSphereColliders[slider] = collider;
  45. }
  46. void HandleSliderManager::_registerRectCollider(const Rect3& collider, HandleSlider* slider)
  47. {
  48. if (mSliders.find(slider) == mSliders.end())
  49. mSliders.insert(slider);
  50. mRectColliders[slider] = collider;
  51. }
  52. void HandleSliderManager::_registerTorusCollider(const Torus& collider, HandleSlider* slider)
  53. {
  54. if (mSliders.find(slider) == mSliders.end())
  55. mSliders.insert(slider);
  56. mTorusColliders[slider] = collider;
  57. }
  58. void HandleSliderManager::_unregisterSlider(HandleSlider* slider)
  59. {
  60. mCapsuleColliders.erase(slider);
  61. mSphereColliders.erase(slider);
  62. mRectColliders.erase(slider);
  63. mTorusColliders.erase(slider);
  64. mSliders.erase(slider);
  65. }
  66. }