void Sphere::draw( const std::string &_shaderName, ngl::TransformStack &_transformStack, const ngl::Mat4 &_globalTx, ngl::Camera *_cam )const { // draw wireframe if hit if(m_hit) { glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); } else { glPolygonMode(GL_FRONT_AND_BACK,GL_FILL); } ngl::ShaderLib *shader=ngl::ShaderLib::instance(); shader->use(_shaderName); // grab an instance of the primitives for drawing ngl::VAOPrimitives *prim=ngl::VAOPrimitives::instance(); _transformStack.pushTransform(); { _transformStack.setPosition(m_pos); _transformStack.setScale(m_radius,m_radius,m_radius); loadMatricesToShader(_transformStack,_globalTx,_cam); prim->draw("sphere"); } // and before a pop _transformStack.popTransform(); glPolygonMode(GL_FRONT_AND_BACK,GL_FILL); }