BsScriptSceneSelection.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. namespace bs
  8. {
  9. class ScriptCCamera;
  10. /** @addtogroup ScriptInteropEditor
  11. * @{
  12. */
  13. /** Interop class between C++ & CLR for SceneSelection. */
  14. class BS_SCR_BED_EXPORT ScriptSceneSelection : public ScriptObject <ScriptSceneSelection>
  15. {
  16. public:
  17. SCRIPT_OBJ(EDITOR_ASSEMBLY, EDITOR_NS, "SceneSelection")
  18. private:
  19. ScriptSceneSelection(MonoObject* object, const SPtr<Camera>& camera);
  20. ~ScriptSceneSelection();
  21. SPtr<Camera> mCamera;
  22. SelectionRenderer* mSelectionRenderer;
  23. /************************************************************************/
  24. /* CLR HOOKS */
  25. /************************************************************************/
  26. static void internal_Create(MonoObject* managedInstance, ScriptCCamera* camera);
  27. static void internal_Draw(ScriptSceneSelection* thisPtr);
  28. static void internal_PickObject(ScriptSceneSelection* thisPtr, Vector2I* inputPos, bool additive, MonoArray* ignoreRenderables);
  29. static void internal_PickObjects(ScriptSceneSelection* thisPtr, Vector2I* inputPos, Vector2I* area, bool additive, MonoArray* ignoreRenderables);
  30. static MonoObject* internal_Snap(ScriptSceneSelection* thisPtr, Vector2I* inputPos, SnapData* data, MonoArray* ignoreRenderables);
  31. };
  32. /** @} */
  33. }