BsScriptLightInternal.cpp 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. #include "BsScriptLightInternal.h"
  2. #include "BsScriptSceneObject.h"
  3. #include "BsSceneObject.h"
  4. namespace BansheeEngine
  5. {
  6. ScriptLightInternal::ScriptLightInternal(MonoObject* managedInstance, const HSceneObject& parentSO)
  7. :ScriptObject(managedInstance), mLightInternal(nullptr), mLastUpdateHash(0)
  8. {
  9. mLightInternal = LightInternal::create();
  10. }
  11. ScriptLightInternal::~ScriptLightInternal()
  12. {
  13. }
  14. void ScriptLightInternal::initRuntimeData()
  15. {
  16. metaData.scriptClass->addInternalCall("Internal_Create", &ScriptLightInternal::internal_create);
  17. metaData.scriptClass->addInternalCall("Internal_GetPosition", &ScriptLightInternal::internal_getPosition);
  18. metaData.scriptClass->addInternalCall("Internal_SetPosition", &ScriptLightInternal::internal_setPosition);
  19. metaData.scriptClass->addInternalCall("Internal_GetRotation", &ScriptLightInternal::internal_getRotation);
  20. metaData.scriptClass->addInternalCall("Internal_SetRotation", &ScriptLightInternal::internal_setRotation);
  21. metaData.scriptClass->addInternalCall("Internal_GetType", &ScriptLightInternal::internal_getType);
  22. metaData.scriptClass->addInternalCall("Internal_SetType", &ScriptLightInternal::internal_setType);
  23. metaData.scriptClass->addInternalCall("Internal_GetCastsShadow", &ScriptLightInternal::internal_getCastsShadow);
  24. metaData.scriptClass->addInternalCall("Internal_SetCastsShadow", &ScriptLightInternal::internal_setCastsShadow);
  25. metaData.scriptClass->addInternalCall("Internal_GetColor", &ScriptLightInternal::internal_getColor);
  26. metaData.scriptClass->addInternalCall("Internal_SetColor", &ScriptLightInternal::internal_setColor);
  27. metaData.scriptClass->addInternalCall("Internal_GetRange", &ScriptLightInternal::internal_getRange);
  28. metaData.scriptClass->addInternalCall("Internal_SetRange", &ScriptLightInternal::internal_setRange);
  29. metaData.scriptClass->addInternalCall("Internal_GetLuminousFlux", &ScriptLightInternal::internal_getLuminousFlux);
  30. metaData.scriptClass->addInternalCall("Internal_SetLuminousFlux", &ScriptLightInternal::internal_setLuminousFlux);
  31. metaData.scriptClass->addInternalCall("Internal_GetSpotAngle", &ScriptLightInternal::internal_getSpotAngle);
  32. metaData.scriptClass->addInternalCall("Internal_SetSpotAngle", &ScriptLightInternal::internal_setSpotAngle);
  33. metaData.scriptClass->addInternalCall("Internal_OnDestroy", &ScriptLightInternal::internal_onDestroy);
  34. }
  35. void ScriptLightInternal::internal_create(MonoObject* managedInstance, ScriptSceneObject* parentSO)
  36. {
  37. HSceneObject so;
  38. if (parentSO != nullptr)
  39. so = parentSO->getNativeHandle();
  40. ScriptLightInternal* nativeInstance = new (bs_alloc<ScriptLightInternal>()) ScriptLightInternal(managedInstance, so);
  41. }
  42. Vector3 ScriptLightInternal::internal_getPosition(ScriptLightInternal* thisPtr)
  43. {
  44. return thisPtr->getInternal()->getPosition();
  45. }
  46. void ScriptLightInternal::internal_setPosition(ScriptLightInternal* thisPtr, Vector3 position)
  47. {
  48. thisPtr->getInternal()->setPosition(position);
  49. }
  50. Quaternion ScriptLightInternal::internal_getRotation(ScriptLightInternal* thisPtr)
  51. {
  52. return thisPtr->getInternal()->getRotation();
  53. }
  54. void ScriptLightInternal::internal_setRotation(ScriptLightInternal* thisPtr, Quaternion rotation)
  55. {
  56. thisPtr->getInternal()->setRotation(rotation);
  57. }
  58. LightType ScriptLightInternal::internal_getType(ScriptLightInternal* thisPtr)
  59. {
  60. return thisPtr->getInternal()->getType();
  61. }
  62. void ScriptLightInternal::internal_setType(ScriptLightInternal* thisPtr, LightType type)
  63. {
  64. thisPtr->getInternal()->setType(type);
  65. }
  66. bool ScriptLightInternal::internal_getCastsShadow(ScriptLightInternal* thisPtr)
  67. {
  68. return thisPtr->getInternal()->getCastsShadow();
  69. }
  70. void ScriptLightInternal::internal_setCastsShadow(ScriptLightInternal* thisPtr, bool castsShadow)
  71. {
  72. thisPtr->getInternal()->setCastsShadow(castsShadow);
  73. }
  74. Color ScriptLightInternal::internal_getColor(ScriptLightInternal* thisPtr)
  75. {
  76. return thisPtr->getInternal()->getColor();
  77. }
  78. void ScriptLightInternal::internal_setColor(ScriptLightInternal* thisPtr, Color color)
  79. {
  80. thisPtr->getInternal()->setColor(color);
  81. }
  82. float ScriptLightInternal::internal_getRange(ScriptLightInternal* thisPtr)
  83. {
  84. return thisPtr->getInternal()->getRange();
  85. }
  86. void ScriptLightInternal::internal_setRange(ScriptLightInternal* thisPtr, float range)
  87. {
  88. thisPtr->getInternal()->setRange(range);
  89. }
  90. float ScriptLightInternal::internal_getLuminousFlux(ScriptLightInternal* thisPtr)
  91. {
  92. return thisPtr->getInternal()->getLuminousFlux();
  93. }
  94. void ScriptLightInternal::internal_setLuminousFlux(ScriptLightInternal* thisPtr, float luminousFlux)
  95. {
  96. thisPtr->getInternal()->setLuminousFlux(luminousFlux);
  97. }
  98. Degree ScriptLightInternal::internal_getSpotAngle(ScriptLightInternal* thisPtr)
  99. {
  100. return thisPtr->getInternal()->getSpotAngle();
  101. }
  102. void ScriptLightInternal::internal_setSpotAngle(ScriptLightInternal* thisPtr, Degree spotAngle)
  103. {
  104. thisPtr->getInternal()->setSpotAngle(spotAngle);
  105. }
  106. void ScriptLightInternal::internal_onDestroy(ScriptLightInternal* instance)
  107. {
  108. instance->getInternal()->destroy();
  109. }
  110. }