BsScriptMesh.generated.cpp 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. #include "BsScriptMesh.generated.h"
  2. #include "BsMonoMethod.h"
  3. #include "BsMonoClass.h"
  4. #include "BsMonoUtil.h"
  5. #include "../../../bsf/Source/Foundation/bsfCore/Mesh/BsMesh.h"
  6. #include "BsScriptResourceManager.h"
  7. #include "BsScriptSkeleton.generated.h"
  8. #include "BsScriptRendererMeshData.generated.h"
  9. #include "BsScriptMorphShapes.generated.h"
  10. #include "BsScriptSubMesh.generated.h"
  11. #include "BsScriptMesh.generated.h"
  12. #include "../../SBansheeEngine/Extensions/BsMeshEx.h"
  13. namespace bs
  14. {
  15. ScriptMesh::ScriptMesh(MonoObject* managedInstance, const ResourceHandle<Mesh>& value)
  16. :TScriptResource(managedInstance, value)
  17. {
  18. }
  19. void ScriptMesh::initRuntimeData()
  20. {
  21. metaData.scriptClass->addInternalCall("Internal_getSkeleton", (void*)&ScriptMesh::Internal_getSkeleton);
  22. metaData.scriptClass->addInternalCall("Internal_getMorphShapes", (void*)&ScriptMesh::Internal_getMorphShapes);
  23. metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptMesh::Internal_create);
  24. metaData.scriptClass->addInternalCall("Internal_create0", (void*)&ScriptMesh::Internal_create0);
  25. metaData.scriptClass->addInternalCall("Internal_create1", (void*)&ScriptMesh::Internal_create1);
  26. metaData.scriptClass->addInternalCall("Internal_create2", (void*)&ScriptMesh::Internal_create2);
  27. metaData.scriptClass->addInternalCall("Internal_getSubMeshes", (void*)&ScriptMesh::Internal_getSubMeshes);
  28. metaData.scriptClass->addInternalCall("Internal_getSubMeshCount", (void*)&ScriptMesh::Internal_getSubMeshCount);
  29. metaData.scriptClass->addInternalCall("Internal_getBounds", (void*)&ScriptMesh::Internal_getBounds);
  30. metaData.scriptClass->addInternalCall("Internal_getMeshData", (void*)&ScriptMesh::Internal_getMeshData);
  31. metaData.scriptClass->addInternalCall("Internal_setMeshData", (void*)&ScriptMesh::Internal_setMeshData);
  32. }
  33. MonoObject*ScriptMesh::createInstance()
  34. {
  35. bool dummy = false;
  36. void* ctorParams[1] = { &dummy };
  37. return metaData.scriptClass->createInstance("bool", ctorParams);
  38. }
  39. MonoObject* ScriptMesh::Internal_getSkeleton(ScriptMesh* thisPtr)
  40. {
  41. SPtr<Skeleton> tmp__output;
  42. tmp__output = thisPtr->getHandle()->getSkeleton();
  43. MonoObject* __output;
  44. __output = ScriptSkeleton::create(tmp__output);
  45. return __output;
  46. }
  47. MonoObject* ScriptMesh::Internal_getMorphShapes(ScriptMesh* thisPtr)
  48. {
  49. SPtr<MorphShapes> tmp__output;
  50. tmp__output = thisPtr->getHandle()->getMorphShapes();
  51. MonoObject* __output;
  52. __output = ScriptMorphShapes::create(tmp__output);
  53. return __output;
  54. }
  55. void ScriptMesh::Internal_create(MonoObject* managedInstance, int32_t numVertices, int32_t numIndices, DrawOperationType topology, MeshUsage usage, VertexLayout vertex, IndexType index)
  56. {
  57. ResourceHandle<Mesh> instance = MeshEx::create(numVertices, numIndices, topology, usage, vertex, index);
  58. ScriptResourceManager::instance().createBuiltinScriptResource(instance, managedInstance);
  59. }
  60. void ScriptMesh::Internal_create0(MonoObject* managedInstance, int32_t numVertices, int32_t numIndices, MonoArray* subMeshes, MeshUsage usage, VertexLayout vertex, IndexType index)
  61. {
  62. Vector<SubMesh> vecsubMeshes;
  63. if(subMeshes != nullptr)
  64. {
  65. ScriptArray arraysubMeshes(subMeshes);
  66. vecsubMeshes.resize(arraysubMeshes.size());
  67. for(int i = 0; i < (int)arraysubMeshes.size(); i++)
  68. {
  69. vecsubMeshes[i] = arraysubMeshes.get<SubMesh>(i);
  70. }
  71. }
  72. ResourceHandle<Mesh> instance = MeshEx::create(numVertices, numIndices, vecsubMeshes, usage, vertex, index);
  73. ScriptResourceManager::instance().createBuiltinScriptResource(instance, managedInstance);
  74. }
  75. void ScriptMesh::Internal_create1(MonoObject* managedInstance, MonoObject* data, DrawOperationType topology, MeshUsage usage)
  76. {
  77. SPtr<RendererMeshData> tmpdata;
  78. ScriptRendererMeshData* scriptdata;
  79. scriptdata = ScriptRendererMeshData::toNative(data);
  80. tmpdata = scriptdata->getInternal();
  81. ResourceHandle<Mesh> instance = MeshEx::create(tmpdata, topology, usage);
  82. ScriptResourceManager::instance().createBuiltinScriptResource(instance, managedInstance);
  83. }
  84. void ScriptMesh::Internal_create2(MonoObject* managedInstance, MonoObject* data, MonoArray* subMeshes, MeshUsage usage)
  85. {
  86. SPtr<RendererMeshData> tmpdata;
  87. ScriptRendererMeshData* scriptdata;
  88. scriptdata = ScriptRendererMeshData::toNative(data);
  89. tmpdata = scriptdata->getInternal();
  90. Vector<SubMesh> vecsubMeshes;
  91. if(subMeshes != nullptr)
  92. {
  93. ScriptArray arraysubMeshes(subMeshes);
  94. vecsubMeshes.resize(arraysubMeshes.size());
  95. for(int i = 0; i < (int)arraysubMeshes.size(); i++)
  96. {
  97. vecsubMeshes[i] = arraysubMeshes.get<SubMesh>(i);
  98. }
  99. }
  100. ResourceHandle<Mesh> instance = MeshEx::create(tmpdata, vecsubMeshes, usage);
  101. ScriptResourceManager::instance().createBuiltinScriptResource(instance, managedInstance);
  102. }
  103. MonoArray* ScriptMesh::Internal_getSubMeshes(ScriptMesh* thisPtr)
  104. {
  105. Vector<SubMesh> vec__output;
  106. vec__output = MeshEx::getSubMeshes(thisPtr->getHandle());
  107. MonoArray* __output;
  108. int arraySize__output = (int)vec__output.size();
  109. ScriptArray array__output = ScriptArray::create<ScriptSubMesh>(arraySize__output);
  110. for(int i = 0; i < arraySize__output; i++)
  111. {
  112. array__output.set(i, vec__output[i]);
  113. }
  114. __output = array__output.getInternal();
  115. return __output;
  116. }
  117. uint32_t ScriptMesh::Internal_getSubMeshCount(ScriptMesh* thisPtr)
  118. {
  119. uint32_t tmp__output;
  120. tmp__output = MeshEx::getSubMeshCount(thisPtr->getHandle());
  121. uint32_t __output;
  122. __output = tmp__output;
  123. return __output;
  124. }
  125. void ScriptMesh::Internal_getBounds(ScriptMesh* thisPtr, AABox* box, Sphere* sphere)
  126. {
  127. MeshEx::getBounds(thisPtr->getHandle(), box, sphere);
  128. }
  129. MonoObject* ScriptMesh::Internal_getMeshData(ScriptMesh* thisPtr)
  130. {
  131. SPtr<RendererMeshData> tmp__output;
  132. tmp__output = MeshEx::getMeshData(thisPtr->getHandle());
  133. MonoObject* __output;
  134. __output = ScriptRendererMeshData::create(tmp__output);
  135. return __output;
  136. }
  137. void ScriptMesh::Internal_setMeshData(ScriptMesh* thisPtr, MonoObject* value)
  138. {
  139. SPtr<RendererMeshData> tmpvalue;
  140. ScriptRendererMeshData* scriptvalue;
  141. scriptvalue = ScriptRendererMeshData::toNative(value);
  142. tmpvalue = scriptvalue->getInternal();
  143. MeshEx::setMeshData(thisPtr->getHandle(), tmpvalue);
  144. }
  145. }