//********************************** Banshee Engine (www.banshee3d.com) **************************************************// //**************** Copyright (c) 2016 Marko Pintera (marko.pintera@gmail.com). All rights reserved. **********************// #pragma once #include "BsScriptEnginePrerequisites.h" #include "BsScriptObject.h" #include "Renderer/BsRendererMeshData.h" namespace bs { /** @addtogroup ScriptInteropEngine * @{ */ /** @cond SCRIPT_EXTENSIONS */ /** Extension class for RendererMeshData, for adding additional functionality for the script version of the class. */ class BS_SCRIPT_EXPORT(e:RendererMeshData) MeshDataEx { public: BS_SCRIPT_EXPORT(ec:RendererMeshData) static SPtr create(UINT32 numVertices, UINT32 numIndices, VertexLayout layout, IndexType indexType = IT_32BIT); /** An array of all vertex positions. Only valid if the vertex layout contains vertex positions. */ BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:Positions) static Vector getPositions(const SPtr& thisPtr); BS_SCRIPT_EXPORT(e:RendererMeshData,pr:setter,n:Positions) static void setPositions(const SPtr& thisPtr, const Vector& value); /** An array of all vertex normals. Only valid if the vertex layout contains vertex normals. */ BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:Normals) static Vector getNormals(const SPtr& thisPtr); BS_SCRIPT_EXPORT(e:RendererMeshData,pr:setter,n:Normals) static void setNormals(const SPtr& thisPtr, const Vector& value); /** An array of all vertex tangents. Only valid if the vertex layout contains vertex tangents. */ BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:Tangents) static Vector getTangents(const SPtr& thisPtr); BS_SCRIPT_EXPORT(e:RendererMeshData,pr:setter,n:Tangents) static void setTangents(const SPtr& thisPtr, const Vector& value); /** An array of all vertex colors. Only valid if the vertex layout contains vertex colors. */ BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:Colors) static Vector getColors(const SPtr& thisPtr); BS_SCRIPT_EXPORT(e:RendererMeshData,pr:setter,n:Colors) static void setColors(const SPtr& thisPtr, const Vector& value); /** * An array of all vertex texture coordinates in the UV0 channel. Only valid if the vertex layout contains UV0 * coordinates. */ BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:UV0) static Vector getUV0(const SPtr& thisPtr); BS_SCRIPT_EXPORT(e:RendererMeshData,pr:setter,n:UV0) static void setUV0(const SPtr& thisPtr, const Vector& value); /** * An array of all vertex texture coordinates in the UV1 channel. Only valid if the vertex layout contains UV1 * coordinates. */ BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:UV1) static Vector getUV1(const SPtr& thisPtr); BS_SCRIPT_EXPORT(e:RendererMeshData,pr:setter,n:UV1) static void setUV1(const SPtr& thisPtr, const Vector& value); /** An array of all vertex bone weights. Only valid if the vertex layout contains bone weights. */ BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:BoneWeights) static Vector getBoneWeights(const SPtr& thisPtr); BS_SCRIPT_EXPORT(e:RendererMeshData,pr:setter,n:BoneWeights) static void setBoneWeights(const SPtr& thisPtr, const Vector& value); /** An array of all indices. */ BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:Indices) static Vector getIndices(const SPtr& thisPtr); BS_SCRIPT_EXPORT(e:RendererMeshData,pr:setter,n:Indices) static void setIndices(const SPtr& thisPtr, const Vector& value); /** Returns the number of vertices contained in the mesh. */ BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:VertexCount) static int getVertexCount(const SPtr& thisPtr); /** Returns the number of indices contained in the mesh. */ BS_SCRIPT_EXPORT(e:RendererMeshData,pr:getter,n:IndexCount) static int getIndexCount(const SPtr& thisPtr); }; /** @endcond */ /** @} */ }