]> git.tdb.fi Git - libs/gl.git/blobdiff - source/capsule.cpp
Fix capsule end vertex coordinates
[libs/gl.git] / source / capsule.cpp
index 86f5d57a8d50d0f42f2cc2c5ea76e6012910c3e1..e4c93ae78bdbd43c85426b21048d264551867645 100644 (file)
@@ -43,7 +43,7 @@ void CapsuleBuilder::build(PrimitiveBuilder &builder) const
 
        builder.normal(0, 0, -1);
        builder.texcoord(0.5, 0);
-       builder.vertex(0, 0, -length/2+radius);
+       builder.vertex(0, 0, -length/2-radius);
        for(unsigned i=1; i<rings; ++i)
        {
                float cz = length*(i>rings/2 ? 0.5 : -0.5);
@@ -57,18 +57,17 @@ void CapsuleBuilder::build(PrimitiveBuilder &builder) const
                        float sc = cos(sa);
                        float ss = sin(sa);
                        builder.normal(rs*sc, rs*ss, -rc);
-                       if(tangent_attr)
-                       {
+                       if(tangent_attr>=0)
                                builder.attrib(tangent_attr, -ss, sc, 0);
+                       if(binormal_attr>=0)
                                builder.attrib(binormal_attr, rc*sc, rc*ss, rs);
-                       }
                        builder.texcoord(j*u_scale, v);
                        builder.vertex(rs*sc*radius, rs*ss*radius, cz-rc*radius);
                }
        }
        builder.normal(0, 0, 1);
        builder.texcoord(0.5, (length+radius*M_PI)*v_scale);
-       builder.vertex(0, 0, length/2-radius);
+       builder.vertex(0, 0, length/2+radius);
 
        for(unsigned i=0; i<segments; ++i)
        {