00001 #ifndef GL_ICOSAHEDRON_H 00002 #define GL_ICOSAHEDRON_H 00003 00004 #include <X3DTK/GL/scenegraph.h> 00005 00006 namespace X3DTK { 00007 namespace GL { 00008 00009 // Class providing an implementation of the GL node corresponding to 00010 // X3D::Icosahedron. 00011 00012 class Icosahedron : public X3DGeometry3DNode 00013 { 00014 public: 00015 Icosahedron(); 00016 virtual SFAbstractNode clone() const; 00017 00018 void setRadius(const SFFloat &radius); 00019 inline const SFFloat &getRadius() const {return _radius;}; 00020 00021 virtual void update(); 00022 virtual void draw() const; 00023 00024 protected: 00025 Icosahedron(const Icosahedron &I); 00026 00027 private: 00028 MFVec3f _vertices; 00029 short _indexes[12][5]; 00030 MFVec3f _normal; 00031 SFFloat _radius; 00032 }; 00033 00034 } 00035 } 00036 00037 #endif