--- /dev/null
+/* $Id$
+
+This file is part of libmspgl
+Copyright © 2007 Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
+#include "mesh.h"
+#include "meshbuilder.h"
+
+namespace Msp {
+namespace GL {
+
+MeshBuilder::MeshBuilder(Mesh &m):
+ PrimitiveBuilder(m.vertices),
+ mesh(m),
+ first(0)
+{ }
+
+void MeshBuilder::begin_()
+{
+ first=array.size();
+}
+
+void MeshBuilder::end_()
+{
+ Batch batch(type);
+ unsigned last=array.size();
+ for(unsigned i=first; i<last; ++i)
+ batch.append(i);
+ mesh.add_batch(batch);
+}
+
+} // namespace GL
+} // namespace Msp
--- /dev/null
+/* $Id$
+
+This file is part of libmspgl
+Copyright © 2007 Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
+#ifndef MSP_GL_MESHBUILDER_H_
+#define MSP_GL_MESHBUILDER_H_
+
+#include "primitivebuilder.h"
+
+namespace Msp {
+namespace GL {
+
+class Mesh;
+
+class MeshBuilder: public PrimitiveBuilder
+{
+private:
+ Mesh &mesh;
+ unsigned first;
+
+public:
+ MeshBuilder(Mesh &);
+private:
+ virtual void begin_();
+ virtual void end_();
+};
+
+} // namespace GL
+} // namespace Msp
+
+#endif