]> git.tdb.fi Git - libs/gl.git/blobdiff - source/sphere.cpp
Check the flat qualifier from the correct member
[libs/gl.git] / source / sphere.cpp
diff --git a/source/sphere.cpp b/source/sphere.cpp
deleted file mode 100644 (file)
index 0bedf15..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-#include <cmath>
-#include "primitivebuilder.h"
-#include "sphere.h"
-
-namespace Msp {
-namespace GL {
-
-UvSphereBuilder::UvSphereBuilder(float r, unsigned s, unsigned n):
-       radius(r),
-       segments(s),
-       rings(n)
-{
-       if(segments<3)
-               segments = 3;
-
-       if(rings==0)
-               rings = (segments+1)/2;
-       else if(rings<2)
-               rings = 2;
-}
-
-void UvSphereBuilder::build(PrimitiveBuilder &builder) const
-{
-       float u_scale = 1.0f/segments;
-       float v_scale = 1.0f/rings;
-       adjust_texture_scale(u_scale, v_scale, radius*M_PI*2, radius*M_PI);
-
-       for(unsigned i=0; i<=rings; ++i)
-       {
-               float av = i*M_PI/rings-M_PI/2;
-               float cv = cos(av);
-               float sv = sin(av);
-
-               for(unsigned j=0; j<=segments; ++j)
-               {
-                       float au = j*M_PI*2/segments;
-                       float cu = cos(au);
-                       float su = sin(au);
-
-                       builder.normal(cv*cu, cv*su, sv);
-                       builder.texcoord(j*u_scale, i*v_scale);
-                       if(generate_tbn)
-                       {
-                               builder.tangent(-su, cu, 0);
-                               builder.binormal(-sv*cu, -sv*su, cv);
-                       }
-                       builder.vertex(cv*cu*radius, cv*su*radius, sv*radius);
-               }
-       }
-
-       builder.begin(TRIANGLES);
-       for(unsigned j=0; j<segments; ++j)
-       {
-               builder.element(j);
-               builder.element(segments+2+j);
-               builder.element(segments+1+j);
-       }
-       unsigned top = (rings+1)*(segments+1)-1;
-       for(unsigned j=0; j<segments; ++j)
-       {
-               builder.element(top-j);
-               builder.element(top-(segments+2+j));
-               builder.element(top-(segments+1+j));
-       }
-       builder.end();
-
-       for(unsigned i=1; i<rings; ++i)
-       {
-               builder.begin(TRIANGLE_STRIP);
-               unsigned base = i*(segments+1);
-               for(unsigned j=0; j<=segments; ++j)
-               {
-                       builder.element(base+segments+1+j);
-                       builder.element(base+j);
-               }
-               builder.end();
-       }
-}
-
-} // namespace GL
-} // namespace Msp