X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fsphere.h;h=b20ff5413954ce80048c03bdf2982d22957b18c8;hp=b69c4083ba4159c1066824b9247cc2a8945c68de;hb=4e4a3514961d130045619ea74d0bbab71580838c;hpb=093ed86110ebbcd1bc09f693a89bac09ec8198e4 diff --git a/source/sphere.h b/source/sphere.h index b69c4083..b20ff541 100644 --- a/source/sphere.h +++ b/source/sphere.h @@ -20,6 +20,31 @@ public: virtual void build(PrimitiveBuilder &) const; }; + +class IcoSphereBuilder: public GeometryBuilder +{ +private: + float radius; + unsigned subdivision; + + static float base_vertices[]; + static unsigned base_triangles[]; + static unsigned base_edges[]; + static unsigned base_tri_edges[]; + +public: + IcoSphereBuilder(float, unsigned); +private: + static void initialize_edges(); + +public: + using GeometryBuilder::build; + virtual void build(PrimitiveBuilder &) const; + +private: + unsigned edge_vertex(unsigned, unsigned) const; +}; + } // namespace GL } // namespace Msp