BsMeshDataEx.h 4.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsScriptEnginePrerequisites.h"
  5. #include "BsScriptObject.h"
  6. #include "Renderer/BsRendererMeshData.h"
  7. namespace bs
  8. {
  9. /** @addtogroup ScriptInteropEngine
  10. * @{
  11. */
  12. /** @cond SCRIPT_EXTENSIONS */
  13. /** Extension class for RendererMeshData, for adding additional functionality for the script version of the class. */
  14. class BS_SCRIPT_EXPORT(e:RendererMeshData) MeshDataEx
  15. {
  16. public:
  17. BS_SCRIPT_EXPORT(ec:RendererMeshData)
  18. static SPtr<RendererMeshData> create(UINT32 numVertices, UINT32 numIndices, VertexLayout layout,
  19. IndexType indexType = IT_32BIT);
  20. /** An array of all vertex positions. Only valid if the vertex layout contains vertex positions. */
  21. BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:Positions)
  22. static Vector<Vector3> getPositions(const SPtr<RendererMeshData>& thisPtr);
  23. BS_SCRIPT_EXPORT(e:RendererMeshData,pr:setter,n:Positions)
  24. static void setPositions(const SPtr<RendererMeshData>& thisPtr, const Vector<Vector3>& value);
  25. /** An array of all vertex normals. Only valid if the vertex layout contains vertex normals. */
  26. BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:Normals)
  27. static Vector<Vector3> getNormals(const SPtr<RendererMeshData>& thisPtr);
  28. BS_SCRIPT_EXPORT(e:RendererMeshData,pr:setter,n:Normals)
  29. static void setNormals(const SPtr<RendererMeshData>& thisPtr, const Vector<Vector3>& value);
  30. /** An array of all vertex tangents. Only valid if the vertex layout contains vertex tangents. */
  31. BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:Tangents)
  32. static Vector<Vector4> getTangents(const SPtr<RendererMeshData>& thisPtr);
  33. BS_SCRIPT_EXPORT(e:RendererMeshData,pr:setter,n:Tangents)
  34. static void setTangents(const SPtr<RendererMeshData>& thisPtr, const Vector<Vector4>& value);
  35. /** An array of all vertex colors. Only valid if the vertex layout contains vertex colors. */
  36. BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:Colors)
  37. static Vector<Color> getColors(const SPtr<RendererMeshData>& thisPtr);
  38. BS_SCRIPT_EXPORT(e:RendererMeshData,pr:setter,n:Colors)
  39. static void setColors(const SPtr<RendererMeshData>& thisPtr, const Vector<Color>& value);
  40. /**
  41. * An array of all vertex texture coordinates in the UV0 channel. Only valid if the vertex layout contains UV0
  42. * coordinates.
  43. */
  44. BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:UV0)
  45. static Vector<Vector2> getUV0(const SPtr<RendererMeshData>& thisPtr);
  46. BS_SCRIPT_EXPORT(e:RendererMeshData,pr:setter,n:UV0)
  47. static void setUV0(const SPtr<RendererMeshData>& thisPtr, const Vector<Vector2>& value);
  48. /**
  49. * An array of all vertex texture coordinates in the UV1 channel. Only valid if the vertex layout contains UV1
  50. * coordinates.
  51. */
  52. BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:UV1)
  53. static Vector<Vector2> getUV1(const SPtr<RendererMeshData>& thisPtr);
  54. BS_SCRIPT_EXPORT(e:RendererMeshData,pr:setter,n:UV1)
  55. static void setUV1(const SPtr<RendererMeshData>& thisPtr, const Vector<Vector2>& value);
  56. /** An array of all vertex bone weights. Only valid if the vertex layout contains bone weights. */
  57. BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:BoneWeights)
  58. static Vector<BoneWeight> getBoneWeights(const SPtr<RendererMeshData>& thisPtr);
  59. BS_SCRIPT_EXPORT(e:RendererMeshData,pr:setter,n:BoneWeights)
  60. static void setBoneWeights(const SPtr<RendererMeshData>& thisPtr, const Vector<BoneWeight>& value);
  61. /** An array of all indices. */
  62. BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:Indices)
  63. static Vector<UINT32> getIndices(const SPtr<RendererMeshData>& thisPtr);
  64. BS_SCRIPT_EXPORT(e:RendererMeshData,pr:setter,n:Indices)
  65. static void setIndices(const SPtr<RendererMeshData>& thisPtr, const Vector<UINT32>& value);
  66. /** Returns the number of vertices contained in the mesh. */
  67. BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:VertexCount)
  68. static int getVertexCount(const SPtr<RendererMeshData>& thisPtr);
  69. /** Returns the number of indices contained in the mesh. */
  70. BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:IndexCount)
  71. static int getIndexCount(const SPtr<RendererMeshData>& thisPtr);
  72. };
  73. /** @endcond */
  74. /** @} */
  75. }