diff options
| author | mtamis <[email protected]> | 2017-02-28 18:24:59 +0100 |
|---|---|---|
| committer | mtamis <[email protected]> | 2017-02-28 18:24:59 +0100 |
| commit | 5581909a4d19db97304449f66404ff99a0429d3f (patch) | |
| tree | a90f7eb85c095a8aba45cf5e909c82c1cdbed77d /NvCloth/samples/SampleBase/renderer/ClothRenderMesh.h | |
| parent | Fix cmake visual studio project generation (locate_gw_root.bat) (diff) | |
| download | nvcloth-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.h | 68 |
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 |