BsScriptMeshData.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #pragma once
  2. #include "BsScriptEnginePrerequisites.h"
  3. #include "BsScriptObject.h"
  4. #include "BsRendererMeshData.h"
  5. namespace BansheeEngine
  6. {
  7. // Note: Do not modify, it must match the layout of C# enum IndexType
  8. enum class ScriptIndexType
  9. {
  10. Index16,
  11. Index32
  12. };
  13. class BS_SCR_BE_EXPORT ScriptMeshData : public ScriptObject <ScriptMeshData>
  14. {
  15. public:
  16. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "MeshData")
  17. RendererMeshDataPtr getInternalValue() const { return mMeshData; }
  18. static MonoObject* create(const RendererMeshDataPtr& meshData);
  19. static MonoObject* create(const MeshDataPtr& meshData);
  20. private:
  21. ScriptMeshData(MonoObject* managedInstance);
  22. ~ScriptMeshData();
  23. void initialize(const RendererMeshDataPtr& meshData);
  24. static void internal_CreateInstance(MonoObject* instance, int numVertices,
  25. int numIndices, VertexLayout vertex, ScriptIndexType index);
  26. static MonoArray* internal_GetPositions(ScriptMeshData* thisPtr);
  27. static void internal_SetPositions(ScriptMeshData* thisPtr, MonoArray* value);
  28. static MonoArray* internal_GetNormals(ScriptMeshData* thisPtr);
  29. static void internal_SetNormals(ScriptMeshData* thisPtr, MonoArray* value);
  30. static MonoArray* internal_GetTangents(ScriptMeshData* thisPtr);
  31. static void internal_SetTangents(ScriptMeshData* thisPtr, MonoArray* value);
  32. static MonoArray* internal_GetColors(ScriptMeshData* thisPtr);
  33. static void internal_SetColors(ScriptMeshData* thisPtr, MonoArray* value);
  34. static MonoArray* internal_GetUV0(ScriptMeshData* thisPtr);
  35. static void internal_SetUV0(ScriptMeshData* thisPtr, MonoArray* value);
  36. static MonoArray* internal_GetUV1(ScriptMeshData* thisPtr);
  37. static void internal_SetUV1(ScriptMeshData* thisPtr, MonoArray* value);
  38. static MonoArray* internal_GetBoneWeights(ScriptMeshData* thisPtr);
  39. static void internal_SetBoneWeights(ScriptMeshData* thisPtr, MonoArray* value);
  40. static MonoArray* internal_GetIndices(ScriptMeshData* thisPtr);
  41. static void internal_SetIndices(ScriptMeshData* thisPtr, MonoArray* value);
  42. static int internal_GetVertexCount(ScriptMeshData* thisPtr);
  43. static int internal_GetIndexCount(ScriptMeshData* thisPtr);
  44. static bool checkIsLocked(ScriptMeshData* thisPtr);
  45. RendererMeshDataPtr mMeshData;
  46. };
  47. }