--- /dev/null
+#include "geometrybuilder.h"
+#include "meshbuilder.h"
+
+namespace Msp {
+namespace GL {
+
+GeometryBuilder::GeometryBuilder():
+ generate_tbn(false),
+ tex_fit(STRETCH)
+{ }
+
+GeometryBuilder &GeometryBuilder::tbn(bool t)
+{
+ generate_tbn = t;
+ return *this;
+}
+
+GeometryBuilder &GeometryBuilder::texture_fit(TextureFit tf)
+{
+ tex_fit = tf;
+ return *this;
+}
+
+void GeometryBuilder::adjust_texture_scale(float &u_scale, float &v_scale, float width, float height) const
+{
+ if(tex_fit!=STRETCH)
+ {
+ if((width<height)==(tex_fit==CROP))
+ u_scale *= width/height;
+ else
+ v_scale *= height/width;
+ }
+}
+
+void GeometryBuilder::build(Mesh &mesh) const
+{
+ MeshBuilder builder(mesh);
+ builder.auto_offset();
+ build(builder);
+}
+
+} // namespace GL
+} // namespace Msp