aboutsummaryrefslogtreecommitdiff
path: root/NvCloth/samples/SampleBase/renderer/ClothRenderMesh.h
diff options
context:
space:
mode:
authormtamis <[email protected]>2017-02-28 18:24:59 +0100
committermtamis <[email protected]>2017-02-28 18:24:59 +0100
commit5581909a4d19db97304449f66404ff99a0429d3f (patch)
treea90f7eb85c095a8aba45cf5e909c82c1cdbed77d /NvCloth/samples/SampleBase/renderer/ClothRenderMesh.h
parentFix cmake visual studio project generation (locate_gw_root.bat) (diff)
downloadnvcloth-5581909a4d19db97304449f66404ff99a0429d3f.tar.xz
nvcloth-5581909a4d19db97304449f66404ff99a0429d3f.zip
Add visual samples.
Diffstat (limited to 'NvCloth/samples/SampleBase/renderer/ClothRenderMesh.h')
-rw-r--r--NvCloth/samples/SampleBase/renderer/ClothRenderMesh.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/NvCloth/samples/SampleBase/renderer/ClothRenderMesh.h b/NvCloth/samples/SampleBase/renderer/ClothRenderMesh.h
new file mode 100644
index 0000000..1af0027
--- /dev/null
+++ b/NvCloth/samples/SampleBase/renderer/ClothRenderMesh.h
@@ -0,0 +1,68 @@
+/*
+* Copyright (c) 2008-2017, NVIDIA CORPORATION. All rights reserved.
+*
+* NVIDIA CORPORATION and its licensors retain all intellectual property
+* and proprietary rights in and to this software, related documentation
+* and any modifications thereto. Any use, reproduction, disclosure or
+* distribution of this software and related documentation without an express
+* license agreement from NVIDIA CORPORATION is strictly prohibited.
+*/
+
+#ifndef CLOTH_RENDER_MESH_H
+#define CLOTH_RENDER_MESH_H
+
+#include "Renderable.h"
+
+namespace nv
+{
+namespace cloth
+{
+ class ClothMeshDesc;
+}
+}
+
+struct Vertex
+{
+ PxVec3 position;
+ PxVec3 normal;
+};
+
+/**
+Simple �loth render mesh
+*/
+class ClothRenderMesh : public IRenderMesh
+{
+public:
+ ClothRenderMesh(const void* vertices, uint32_t numVertices, uint32_t vertexSize,
+ std::vector<D3D11_INPUT_ELEMENT_DESC>& inputDesc, const uint16_t* faces = nullptr, uint32_t numFaces = 0);
+ ClothRenderMesh(const nv::cloth::ClothMeshDesc& desc);
+ virtual ~ClothRenderMesh();
+
+ void update(const PxVec3* positions, uint32_t numVertices);
+
+ const std::vector<D3D11_INPUT_ELEMENT_DESC>& getInputElementDesc() const { return mInputDesc; }
+ void render(ID3D11DeviceContext& context) const;
+
+protected:
+ ClothRenderMesh();
+ void initialize(const void* vertices, uint32_t numVertices, uint32_t vertexSize,
+ std::vector<D3D11_INPUT_ELEMENT_DESC>& inputDesc, const uint16_t* faces, uint32_t numFaces);
+
+private:
+ ID3D11Device* mDevice;
+
+ ID3D11Buffer* mVertexBuffer;
+ ID3D11Buffer* mIndexBuffer;
+
+ std::vector<Vertex> mVertices;
+ std::vector<uint16_t> mIndices;
+
+ uint32_t mNumFaces;
+ uint32_t mNumVertices;
+ uint32_t mVertexSize;
+
+ std::vector<D3D11_INPUT_ELEMENT_DESC> mInputDesc;
+};
+
+
+#endif //CLOTH_RENDER_MESH_H \ No newline at end of file