]> git.tdb.fi Git - libs/gl.git/blobdiff - source/geometrybuilder.cpp
Don't try to access a nonexistent return expression
[libs/gl.git] / source / geometrybuilder.cpp
index 97c88e06def4cabe37d917d15ebc93ed119668ad..729b40facc1709ddecc794aa2637c65ac1bdd391 100644 (file)
@@ -1,10 +1,3 @@
-/* $Id$
-
-This file is part of libmspgl
-Copyright © 2011  Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
 #include "geometrybuilder.h"
 #include "meshbuilder.h"
 
@@ -12,32 +5,37 @@ namespace Msp {
 namespace GL {
 
 GeometryBuilder::GeometryBuilder():
-       tangent_attr(-1),
-       binormal_attr(-1),
+       generate_tbn(false),
        tex_fit(STRETCH)
 { }
 
-GeometryBuilder &GeometryBuilder::tangent(unsigned t)
+GeometryBuilder &GeometryBuilder::tbn(bool t)
 {
-       tangent_attr = t;
+       generate_tbn = t;
        return *this;
 }
 
-GeometryBuilder &GeometryBuilder::binormal(unsigned b)
+GeometryBuilder &GeometryBuilder::texture_fit(TextureFit tf)
 {
-       binormal_attr = b;
+       tex_fit = tf;
        return *this;
 }
 
-GeometryBuilder &GeometryBuilder::texture_fit(TextureFit tf)
+void GeometryBuilder::adjust_texture_scale(float &u_scale, float &v_scale, float width, float height) const
 {
-       tex_fit = tf;
-       return *this;
+       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);
 }