X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbox.cpp;fp=source%2Fbox.cpp;h=21d5f33f984ebfbbcb0411b3dcfa0148c3fe38c3;hb=aa9884e69bc543682d1fe36ec5d054fdf11bcfac;hp=3d6f15fdc6f422e3259088de7a599b8eba6ba762;hpb=bbfb79181f716736df413f463b55825866400ed8;p=libs%2Fgl.git diff --git a/source/box.cpp b/source/box.cpp index 3d6f15fd..21d5f33f 100644 --- a/source/box.cpp +++ b/source/box.cpp @@ -42,22 +42,27 @@ void BoxBuilder::build(PrimitiveBuilder &builder) const void BoxBuilder::build_face(PrimitiveBuilder &builder, const Vector3 &o, const Vector3 &s1, const Vector3 &s2) const { + float l1 = 1, l2 = 1; + if(tangent_attr>=0 || tex_fit!=STRETCH) + l1 = sqrt(s1.x*s1.x+s1.y*s1.y+s1.z*s1.z); + if(binormal_attr>=0 || tex_fit!=STRETCH) + l2 = sqrt(s2.x*s2.x+s2.y*s2.y+s2.z*s2.z); + if(tangent_attr>=0) - { - builder.attrib(tangent_attr, s1.x, s1.y, s1.z); - builder.attrib(binormal_attr, s2.x, s2.y, s2.z); - } + builder.attrib(tangent_attr, s1.x/l1, s1.y/l1, s1.z/l1); + if(binormal_attr>=0) + builder.attrib(binormal_attr, s2.x/l2, s2.y/l2, s2.z/l2); + float u_size = 1; float v_size = 1; if(tex_fit!=STRETCH) { - float l1 = sqrt(s1.x*s1.x+s1.y*s1.y+s1.z*s1.z); - float l2 = sqrt(s2.x*s2.x+s2.y*s2.y+s2.z*s2.z); if((l1