123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #include <fstream>
- #include "client/rendering/Mesh.h"
- Mesh::Mesh() {
- vertexBuffer.bind();
- vertexBuffer.setFloatAttribute(0, 3, 0, 11);
- vertexBuffer.setFloatAttribute(1, 2, 3, 11);
- vertexBuffer.setFloatAttribute(2, 3, 5, 11);
- vertexBuffer.setFloatAttribute(3, 3, 8, 11);
- }
- void Mesh::add(const Triangle& data) {
- buffer.add(data);
- }
- void Mesh::clear() {
- buffer.clear();
- }
- void Mesh::build() {
- vertexBuffer.bindBuffer();
- vertexBuffer.setData(sizeof (Triangle) * buffer.getLength(), buffer.getData());
- }
- void Mesh::draw() const {
- vertexBuffer.bindArray();
- vertexBuffer.draw(buffer.getLength() * 3);
- }
- void Mesh::save() {
- std::ofstream out;
- out.open("scene");
- for(Triangle& t : buffer) {
- out << t.a.position[0] << ", ";
- out << t.a.position[1] << ", ";
- out << t.a.position[2] << ", ";
- out << t.a.texture[0] << ", ";
- out << t.a.texture[1] << "\n";
- out << t.b.position[0] << ", ";
- out << t.b.position[1] << ", ";
- out << t.b.position[2] << ", ";
- out << t.b.texture[0] << ", ";
- out << t.b.texture[1] << "\n";
- out << t.c.position[0] << ", ";
- out << t.c.position[1] << ", ";
- out << t.c.position[2] << ", ";
- out << t.c.texture[0] << ", ";
- out << t.c.texture[1] << "\n";
- }
- }
|