]> git.tdb.fi Git - libs/gl.git/blobdiff - source/builders/geometrybuilder.cpp
Rearrange soucre files into subdirectories
[libs/gl.git] / source / builders / geometrybuilder.cpp
diff --git a/source/builders/geometrybuilder.cpp b/source/builders/geometrybuilder.cpp
new file mode 100644 (file)
index 0000000..729b40f
--- /dev/null
@@ -0,0 +1,43 @@
+#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