#pragma once #include #include #include #include using std::vector; struct Vertex; struct Edge; struct Triangle; struct Face; struct Tetrahedron; class Mesh; class SoftBody { public: explicit SoftBody(Mesh* mesh, float compliance); uint32_t firstIndex = 0; int32_t vertexOffset = 0; uint32_t partitionCount = 0; float compliance; vector vertices; vector edges; vector triangles; vector faces; vector tetrahedra; void applyOffset(const glm::vec3& offset); SoftBody& operator =(const SoftBody& other) = delete; private: };