BsScriptCRenderable.generated.cpp 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. #include "BsScriptCRenderable.generated.h"
  2. #include "BsMonoMethod.h"
  3. #include "BsMonoClass.h"
  4. #include "BsMonoUtil.h"
  5. #include "../../../bsf/Source/Foundation/bsfCore/Components/BsCRenderable.h"
  6. #include "BsScriptResourceManager.h"
  7. #include "Wrappers/BsScriptRRefBase.h"
  8. #include "../../../bsf/Source/Foundation/bsfCore/Mesh/BsMesh.h"
  9. #include "../../../bsf/Source/Foundation/bsfCore/Material/BsMaterial.h"
  10. namespace bs
  11. {
  12. ScriptCRenderable::ScriptCRenderable(MonoObject* managedInstance, const GameObjectHandle<CRenderable>& value)
  13. :TScriptComponent(managedInstance, value)
  14. {
  15. }
  16. void ScriptCRenderable::initRuntimeData()
  17. {
  18. metaData.scriptClass->addInternalCall("Internal_setMesh", (void*)&ScriptCRenderable::Internal_setMesh);
  19. metaData.scriptClass->addInternalCall("Internal_getMesh", (void*)&ScriptCRenderable::Internal_getMesh);
  20. metaData.scriptClass->addInternalCall("Internal_setMaterial", (void*)&ScriptCRenderable::Internal_setMaterial);
  21. metaData.scriptClass->addInternalCall("Internal_setMaterial0", (void*)&ScriptCRenderable::Internal_setMaterial0);
  22. metaData.scriptClass->addInternalCall("Internal_getMaterial", (void*)&ScriptCRenderable::Internal_getMaterial);
  23. metaData.scriptClass->addInternalCall("Internal_setMaterials", (void*)&ScriptCRenderable::Internal_setMaterials);
  24. metaData.scriptClass->addInternalCall("Internal_getMaterials", (void*)&ScriptCRenderable::Internal_getMaterials);
  25. metaData.scriptClass->addInternalCall("Internal_setLayer", (void*)&ScriptCRenderable::Internal_setLayer);
  26. metaData.scriptClass->addInternalCall("Internal_getLayer", (void*)&ScriptCRenderable::Internal_getLayer);
  27. metaData.scriptClass->addInternalCall("Internal_getBounds", (void*)&ScriptCRenderable::Internal_getBounds);
  28. }
  29. void ScriptCRenderable::Internal_setMesh(ScriptCRenderable* thisPtr, MonoObject* mesh)
  30. {
  31. ResourceHandle<Mesh> tmpmesh;
  32. ScriptRRefBase* scriptmesh;
  33. scriptmesh = ScriptRRefBase::toNative(mesh);
  34. if(scriptmesh != nullptr)
  35. tmpmesh = static_resource_cast<Mesh>(scriptmesh->getHandle());
  36. thisPtr->getHandle()->setMesh(tmpmesh);
  37. }
  38. MonoObject* ScriptCRenderable::Internal_getMesh(ScriptCRenderable* thisPtr)
  39. {
  40. ResourceHandle<Mesh> tmp__output;
  41. tmp__output = thisPtr->getHandle()->getMesh();
  42. MonoObject* __output;
  43. ScriptRRefBase* script__output;
  44. script__output = ScriptResourceManager::instance().getScriptRRef(tmp__output);
  45. if(script__output != nullptr)
  46. __output = script__output->getManagedInstance();
  47. else
  48. __output = nullptr;
  49. return __output;
  50. }
  51. void ScriptCRenderable::Internal_setMaterial(ScriptCRenderable* thisPtr, uint32_t idx, MonoObject* material)
  52. {
  53. ResourceHandle<Material> tmpmaterial;
  54. ScriptRRefBase* scriptmaterial;
  55. scriptmaterial = ScriptRRefBase::toNative(material);
  56. if(scriptmaterial != nullptr)
  57. tmpmaterial = static_resource_cast<Material>(scriptmaterial->getHandle());
  58. thisPtr->getHandle()->setMaterial(idx, tmpmaterial);
  59. }
  60. void ScriptCRenderable::Internal_setMaterial0(ScriptCRenderable* thisPtr, MonoObject* material)
  61. {
  62. ResourceHandle<Material> tmpmaterial;
  63. ScriptRRefBase* scriptmaterial;
  64. scriptmaterial = ScriptRRefBase::toNative(material);
  65. if(scriptmaterial != nullptr)
  66. tmpmaterial = static_resource_cast<Material>(scriptmaterial->getHandle());
  67. thisPtr->getHandle()->setMaterial(tmpmaterial);
  68. }
  69. MonoObject* ScriptCRenderable::Internal_getMaterial(ScriptCRenderable* thisPtr, uint32_t idx)
  70. {
  71. ResourceHandle<Material> tmp__output;
  72. tmp__output = thisPtr->getHandle()->getMaterial(idx);
  73. MonoObject* __output;
  74. ScriptRRefBase* script__output;
  75. script__output = ScriptResourceManager::instance().getScriptRRef(tmp__output);
  76. if(script__output != nullptr)
  77. __output = script__output->getManagedInstance();
  78. else
  79. __output = nullptr;
  80. return __output;
  81. }
  82. void ScriptCRenderable::Internal_setMaterials(ScriptCRenderable* thisPtr, MonoArray* materials)
  83. {
  84. Vector<ResourceHandle<Material>> vecmaterials;
  85. if(materials != nullptr)
  86. {
  87. ScriptArray arraymaterials(materials);
  88. vecmaterials.resize(arraymaterials.size());
  89. for(int i = 0; i < (int)arraymaterials.size(); i++)
  90. {
  91. ScriptRRefBase* scriptmaterials;
  92. scriptmaterials = ScriptRRefBase::toNative(arraymaterials.get<MonoObject*>(i));
  93. if(scriptmaterials != nullptr)
  94. vecmaterials[i] = static_resource_cast<Material>(scriptmaterials->getHandle());
  95. }
  96. }
  97. thisPtr->getHandle()->setMaterials(vecmaterials);
  98. }
  99. MonoArray* ScriptCRenderable::Internal_getMaterials(ScriptCRenderable* thisPtr)
  100. {
  101. Vector<ResourceHandle<Material>> vec__output;
  102. vec__output = thisPtr->getHandle()->getMaterials();
  103. MonoArray* __output;
  104. int arraySize__output = (int)vec__output.size();
  105. ScriptArray array__output = ScriptArray::create<ScriptRRefBase>(arraySize__output);
  106. for(int i = 0; i < arraySize__output; i++)
  107. {
  108. ScriptRRefBase* script__output;
  109. script__output = ScriptResourceManager::instance().getScriptRRef(vec__output[i]);
  110. if(script__output != nullptr)
  111. array__output.set(i, script__output->getManagedInstance());
  112. else
  113. array__output.set(i, nullptr);
  114. }
  115. __output = array__output.getInternal();
  116. return __output;
  117. }
  118. void ScriptCRenderable::Internal_setLayer(ScriptCRenderable* thisPtr, uint64_t layer)
  119. {
  120. thisPtr->getHandle()->setLayer(layer);
  121. }
  122. uint64_t ScriptCRenderable::Internal_getLayer(ScriptCRenderable* thisPtr)
  123. {
  124. uint64_t tmp__output;
  125. tmp__output = thisPtr->getHandle()->getLayer();
  126. uint64_t __output;
  127. __output = tmp__output;
  128. return __output;
  129. }
  130. void ScriptCRenderable::Internal_getBounds(ScriptCRenderable* thisPtr, Bounds* __output)
  131. {
  132. Bounds tmp__output;
  133. tmp__output = thisPtr->getHandle()->getBounds();
  134. *__output = tmp__output;
  135. }
  136. }