BsScriptControllerCollision.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsScriptEnginePrerequisites.h"
  5. #include "BsScriptObject.h"
  6. #include "BsCharacterController.h"
  7. namespace bs
  8. {
  9. /** @addtogroup ScriptInteropEngine
  10. * @{
  11. */
  12. /** Interop struct between C++ & CLR for ControllerCollision. */
  13. struct ScriptControllerCollision // Note: Must match C++ struct ScriptControllerCollision
  14. {
  15. Vector3 position;
  16. Vector3 normal;
  17. Vector3 motionDir;
  18. float motionAmount;
  19. MonoObject* collider;
  20. int triangleIndex;
  21. MonoObject* controller;
  22. };
  23. /** Helper class for dealing with ControllerCollision structure. */
  24. class BS_SCR_BE_EXPORT ScriptControllerCollisionHelper : public ScriptObject<ScriptControllerCollisionHelper>
  25. {
  26. public:
  27. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "ScriptControllerCollision")
  28. /** Converts native collision data to its managed counterpart. */
  29. static ScriptControllerCollision create(const ControllerColliderCollision& data);
  30. /** Converts native collision data to its managed counterpart. */
  31. static ScriptControllerCollision create(const ControllerControllerCollision& data);
  32. /** Unboxes a boxed managed ScriptControllerCollision struct and returns the native version of the structure. */
  33. static ScriptControllerCollision unbox(MonoObject* obj);
  34. /** Boxes a native ScriptControllerCollision struct and returns a managed object containing it. */
  35. static MonoObject* box(const ScriptControllerCollision& value);
  36. private:
  37. ScriptControllerCollisionHelper(MonoObject* instance);
  38. };
  39. /** @} */
  40. }