2
0

BsScriptJointCommon.cpp 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "BsScriptJointCommon.h"
  4. #include "BsMonoClass.h"
  5. #include "BsMonoMethod.h"
  6. #include "BsMonoUtil.h"
  7. namespace BansheeEngine
  8. {
  9. ScriptD6JointDrive::GetNativeDataThunkDef ScriptD6JointDrive::getNativeDataThunk = nullptr;
  10. ScriptD6JointDrive::ScriptD6JointDrive(MonoObject* instance)
  11. :ScriptObject(instance)
  12. { }
  13. void ScriptD6JointDrive::initRuntimeData()
  14. {
  15. getNativeDataThunk = (GetNativeDataThunkDef)metaData.scriptClass->getMethod("Internal_GetNative", 1)->getThunk();
  16. }
  17. D6Joint::Drive ScriptD6JointDrive::convert(MonoObject* instance)
  18. {
  19. D6Joint::Drive output;
  20. MonoUtil::invokeThunk(getNativeDataThunk, instance, &output);
  21. return output;
  22. }
  23. ScriptHingeJointDrive::GetNativeDataThunkDef ScriptHingeJointDrive::getNativeDataThunk = nullptr;
  24. ScriptHingeJointDrive::ScriptHingeJointDrive(MonoObject* instance)
  25. :ScriptObject(instance)
  26. { }
  27. void ScriptHingeJointDrive::initRuntimeData()
  28. {
  29. getNativeDataThunk = (GetNativeDataThunkDef)metaData.scriptClass->getMethod("Internal_GetNative", 1)->getThunk();
  30. }
  31. HingeJoint::Drive ScriptHingeJointDrive::convert(MonoObject* instance)
  32. {
  33. HingeJoint::Drive output;
  34. MonoUtil::invokeThunk(getNativeDataThunk, instance, &output);
  35. return output;
  36. }
  37. ScriptLimitLinearRange::GetNativeDataThunkDef ScriptLimitLinearRange::getNativeDataThunk = nullptr;
  38. ScriptLimitLinearRange::ScriptLimitLinearRange(MonoObject* instance)
  39. :ScriptObject(instance)
  40. { }
  41. void ScriptLimitLinearRange::initRuntimeData()
  42. {
  43. getNativeDataThunk = (GetNativeDataThunkDef)metaData.scriptClass->getMethod("Internal_GetNative", 1)->getThunk();
  44. }
  45. LimitLinearRange ScriptLimitLinearRange::convert(MonoObject* instance)
  46. {
  47. LimitLinearRange output;
  48. MonoUtil::invokeThunk(getNativeDataThunk, instance, &output);
  49. return output;
  50. }
  51. ScriptLimitLinear::GetNativeDataThunkDef ScriptLimitLinear::getNativeDataThunk = nullptr;
  52. ScriptLimitLinear::ScriptLimitLinear(MonoObject* instance)
  53. :ScriptObject(instance)
  54. { }
  55. void ScriptLimitLinear::initRuntimeData()
  56. {
  57. getNativeDataThunk = (GetNativeDataThunkDef)metaData.scriptClass->getMethod("Internal_GetNative", 1)->getThunk();
  58. }
  59. LimitLinear ScriptLimitLinear::convert(MonoObject* instance)
  60. {
  61. LimitLinear output;
  62. MonoUtil::invokeThunk(getNativeDataThunk, instance, &output);
  63. return output;
  64. }
  65. ScriptLimitAngularRange::GetNativeDataThunkDef ScriptLimitAngularRange::getNativeDataThunk = nullptr;
  66. ScriptLimitAngularRange::ScriptLimitAngularRange(MonoObject* instance)
  67. :ScriptObject(instance)
  68. { }
  69. void ScriptLimitAngularRange::initRuntimeData()
  70. {
  71. getNativeDataThunk = (GetNativeDataThunkDef)metaData.scriptClass->getMethod("Internal_GetNative", 1)->getThunk();
  72. }
  73. LimitAngularRange ScriptLimitAngularRange::convert(MonoObject* instance)
  74. {
  75. LimitAngularRange output;
  76. MonoUtil::invokeThunk(getNativeDataThunk, instance, &output);
  77. return output;
  78. }
  79. ScriptLimitConeRange::GetNativeDataThunkDef ScriptLimitConeRange::getNativeDataThunk = nullptr;
  80. ScriptLimitConeRange::ScriptLimitConeRange(MonoObject* instance)
  81. :ScriptObject(instance)
  82. { }
  83. void ScriptLimitConeRange::initRuntimeData()
  84. {
  85. getNativeDataThunk = (GetNativeDataThunkDef)metaData.scriptClass->getMethod("Internal_GetNative", 1)->getThunk();
  86. }
  87. LimitConeRange ScriptLimitConeRange::convert(MonoObject* instance)
  88. {
  89. LimitConeRange output;
  90. MonoUtil::invokeThunk(getNativeDataThunk, instance, &output);
  91. return output;
  92. }
  93. }