2
0

BsScriptCollisionData.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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 "BsPhysicsCommon.h"
  7. namespace BansheeEngine
  8. {
  9. /** @addtogroup ScriptInteropEngine
  10. * @{
  11. */
  12. /** Interop struct between C++ & CLR for CollisionData. */
  13. struct ScriptCollisionData // Must match C# ScriptCollisionData struct layout
  14. {
  15. MonoObject* colliderA;
  16. MonoObject* colliderB;
  17. MonoArray* contactPoints;
  18. };
  19. /** Helper class for dealing with CollisionData structure. */
  20. class BS_SCR_BE_EXPORT ScriptCollisionDataHelper : public ScriptObject<ScriptCollisionDataHelper>
  21. {
  22. public:
  23. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "ScriptCollisionData")
  24. /** Converts native collision data to its managed counterpart. */
  25. static ScriptCollisionData create(const CollisionData& data);
  26. /** Unboxes a boxed managed ScriptCollisionData struct and returns the native version of the structure. */
  27. static ScriptCollisionData unbox(MonoObject* obj);
  28. /** Boxes a native ScriptCollisionData struct and returns a managed object containing it. */
  29. static MonoObject* box(const ScriptCollisionData& value);
  30. private:
  31. ScriptCollisionDataHelper(MonoObject* instance);
  32. };
  33. /** Helper class for dealing with ContactPoint structure. */
  34. class BS_SCR_BE_EXPORT ScriptContactPointHelper : public ScriptObject<ScriptContactPointHelper>
  35. {
  36. public:
  37. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "ContactPoint")
  38. /** Unboxes a boxed managed ContactPoint struct and returns the native version of the structure. */
  39. static ContactPoint unbox(MonoObject* obj);
  40. /** Boxes a native ContactPoint struct and returns a managed object containing it. */
  41. static MonoObject* box(const ContactPoint& value);
  42. private:
  43. ScriptContactPointHelper(MonoObject* instance);
  44. };
  45. /** @} */
  46. }