#ifndef SHAPE_H #define SHAPE_H #include #include #include class Shader; class Shape { public: Shape(); // void init(const std::vector &vertices, const std::vector &normals, const std::vector &triangles); void init(const std::vector &vertices, const std::vector &triangles); void init(const std::vector &vertices, const std::vector &triangles, const std::vector &tetIndices); void setVertices(const std::vector &vertices, const std::vector &normals); void setVertices(const std::vector &vertices); void setVerticesF(const std::vector &vertices, const std::vector &forces); void setModelMatrix(const Eigen::Affine3f &model); void toggleWireframe(); void draw(Shader *shader); void setColor(float r, float g, float b); void toggleForce(); private: GLuint m_surfaceVao; GLuint m_tetVao; GLuint m_surfaceVbo; GLuint m_tetVbo; GLuint m_surfaceIbo; GLuint m_tetIbo; unsigned int m_numSurfaceVertices; unsigned int m_numTetVertices; unsigned int m_verticesSize; float m_red; float m_blue; float m_green; float m_alpha; std::vector m_faces; Eigen::Matrix4f m_modelMatrix; bool m_wireframe; int m_force; }; #endif // SHAPE_H