-/* $Id$
-
-This file is part of libmspgl
-Copyright © 2011 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
#include "geometrybuilder.h"
#include "meshbuilder.h"
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);
}