From f527cde6342c5b8109a20f0a6b483327c6569844 Mon Sep 17 00:00:00 2001 From: salinasd Date: Tue, 27 Jan 2015 10:20:13 +0000 Subject: Merge GudhUI, a UI for gudhi based on Qt git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/trunk@427 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 17fedd974f14a8225b27d94361e835964eeb5cba --- src/GudhUI/view/Viewer.h | 96 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100755 src/GudhUI/view/Viewer.h (limited to 'src/GudhUI/view/Viewer.h') diff --git a/src/GudhUI/view/Viewer.h b/src/GudhUI/view/Viewer.h new file mode 100755 index 00000000..5639aa56 --- /dev/null +++ b/src/GudhUI/view/Viewer.h @@ -0,0 +1,96 @@ +#ifndef VIEWER_H +#define VIEWER_H + +#include +#include "View_parameter.h" +#include "model/Complex_typedefs.h" +#include "Color.h" +#include "Viewer_instructor.h" + +class Viewer_instructor; + +class Viewer : public QGLViewer { + Q_OBJECT + + Viewer_instructor * instructor; + + /** + * light angles + */ + double theta,phi; + typedef Complex::GT Gudhi_kernel; + typedef Gudhi_kernel::Point_3 Point_3; +public: + Viewer(QWidget* parent); + + void set_instructor(Viewer_instructor* instructor_); + + void show_entire_scene(); + + void draw(); + + + void set_bounding_box(const Point_3 & lower_left,const Point_3 & upper_right); + + void update_GL(); + + void init_scene(); + + void init_light(); + + void set_light(); + + void set_light_direction(double theta,double phi); + + /** + * set the light in the direction of the observer + */ + void set_light_direction(); + + +protected: + virtual void postSelection(const QPoint& point); + + +public: + + //////////////////////// + // draw + //////////////////////// + void set_size_point(double size_points); + + void set_color(const Color& color); + + void draw_point(const Point_3& p,const Color& color,double size_points); + + void begin_draw_points(double size,bool light=false); + + void draw_points(const Point_3 & point); + + void end_draw_points(); + + void draw_edge(const Point_3 &a,const Point_3 &b,const Color& color,double size); + + void begin_draw_edges(double size,bool light=false); + + void draw_edges(const Point_3 &a,const Point_3 &b); + + void end_draw_edges(); + + void begin_draw_triangles(double size,bool light,bool transparent = false); + + void draw_triangles(const Point_3& p1,const Point_3& p2,const Point_3& p3); + + //todo remove + void draw_triangles(const std::vector& points); + + void end_draw_triangles(); + + + signals: + void click(const Point_3& position); +}; + + + +#endif -- cgit v1.2.3