BsMeshDataEx.h 4.2 KB

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