BsScriptSceneSelection.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsScriptEditorPrerequisites.h"
  5. #include "BsScriptObject.h"
  6. #include "Scene/BsScenePicking.h"
  7. #include "Scene/BsGizmoManager.h"
  8. namespace bs
  9. {
  10. class ScriptCCamera;
  11. /** @addtogroup ScriptInteropEditor
  12. * @{
  13. */
  14. /** Interop class between C++ & CLR for SceneSelection. */
  15. class BS_SCR_BED_EXPORT ScriptSceneSelection : public ScriptObject <ScriptSceneSelection>
  16. {
  17. public:
  18. SCRIPT_OBJ(EDITOR_ASSEMBLY, EDITOR_NS, "SceneSelection")
  19. private:
  20. ScriptSceneSelection(MonoObject* object, const SPtr<Camera>& camera, const GizmoDrawSettings& gizmoDrawSettings);
  21. ~ScriptSceneSelection();
  22. SPtr<Camera> mCamera;
  23. SelectionRenderer* mSelectionRenderer = nullptr;
  24. GizmoDrawSettings mGizmoDrawSettings;
  25. /************************************************************************/
  26. /* CLR HOOKS */
  27. /************************************************************************/
  28. static void internal_Create(MonoObject* managedInstance, ScriptCCamera* camera, GizmoDrawSettings* gizmoDrawSettings);
  29. static void internal_Draw(ScriptSceneSelection* thisPtr);
  30. static void internal_PickObject(ScriptSceneSelection* thisPtr, Vector2I* inputPos, bool additive, MonoArray* ignoreRenderables);
  31. static void internal_PickObjects(ScriptSceneSelection* thisPtr, Vector2I* inputPos, Vector2I* area, bool additive, MonoArray* ignoreRenderables);
  32. static MonoObject* internal_Snap(ScriptSceneSelection* thisPtr, Vector2I* inputPos, SnapData* data, MonoArray* ignoreRenderables);
  33. static void internal_SetGizmoDrawSettings(ScriptSceneSelection* thisPtr, GizmoDrawSettings* gizmoDrawSettings);
  34. static void internal_GetGizmoDrawSettings(ScriptSceneSelection* thisPtr, GizmoDrawSettings* gizmoDrawSettings);
  35. };
  36. /** @} */
  37. }