]> git.tdb.fi Git - libs/gl.git/blobdiff - source/builders/meshbuilder.cpp
Rearrange soucre files into subdirectories
[libs/gl.git] / source / builders / meshbuilder.cpp
diff --git a/source/builders/meshbuilder.cpp b/source/builders/meshbuilder.cpp
new file mode 100644 (file)
index 0000000..92e2ee0
--- /dev/null
@@ -0,0 +1,41 @@
+#include "mesh.h"
+#include "meshbuilder.h"
+
+namespace Msp {
+namespace GL {
+
+MeshBuilder::MeshBuilder(Mesh &m):
+       PrimitiveBuilder(m.vertices),
+       mesh(m),
+       batch(0)
+{ }
+
+MeshBuilder::~MeshBuilder()
+{
+       mesh.check_buffers(Mesh::VERTEX_BUFFER);
+}
+
+void MeshBuilder::auto_offset()
+{
+       offset(mesh.get_vertices().size());
+}
+
+void MeshBuilder::begin_()
+{
+       batch = new Batch(type);
+}
+
+void MeshBuilder::end_()
+{
+       mesh.add_batch(*batch);
+       delete batch;
+       batch = 0;
+}
+
+void MeshBuilder::element_(unsigned i)
+{
+       batch->append(i);
+}
+
+} // namespace GL
+} // namespace Msp