#pragma once /** * @file IKGLCanvas.h * * @brief Canvas class for drawing OpenGL scenes. * * Nom: * Code permanent : * Email : * */ #include #include #include class IKApplication; // An OpenGL canvas class to draw point clouds // class IKGLCanvas : public nanogui::Canvas { public: IKGLCanvas(IKApplication* _app); virtual void draw_contents() override; virtual bool mouse_drag_event(const nanogui::Vector2i& p, const nanogui::Vector2i& rel, int button, int modifiers) override; virtual bool scroll_event(const nanogui::Vector2i& p, const nanogui::Vector2f& rel) override; void resetCamera(); private: nanogui::ref m_shader; nanogui::ref m_lineShader; IKApplication* m_app; // Camera parameters float phi[2]; float dist; };