7 #include <glm/gtc/type_ptr.hpp> 10 #include "texture.hpp" 28 std::vector<Vertex> vertices;
29 std::vector<GLuint> indices;
33 glm::vec3 boundingSphereCenter;
34 glm::vec3 boundingSphereFarthestPoint;
37 std::shared_ptr<Texture> texDiffuse, texSpecular, texNormal;
44 GLuint vertexBuffer, indexBuffer;
52 Surface(
const std::vector<Vertex> &vertices_,
const std::vector<GLuint> &indices_,
const std::shared_ptr<Texture> &texDiffuse_,
const std::shared_ptr<Texture> &texSpecular_,
const std::shared_ptr<Texture> &texNormal_);
55 std::vector<Vertex> getVertices();
56 std::vector<GLuint> getIndices();
63 void draw(
Shader *shader, Texture::FilterType filterType);
70 glm::vec3 getBoundingSphereCenter();
78 glm::vec3 getBoundingSphereFarthestPoint();
85 void calculateBoundingSphere();
A Surface holds mesh data (vertex data and indices) and textures.
Definition: surface.h:25
Shader class.
Definition: shader.h:15
Vertex struct for internal representation.
Definition: surface.h:14