9 #include "alg/mussa_class.hh"
10 #include "qui/GlSequence.h"
15 /*! \brief Render mussa sequences and paths
17 class PathScene: public QGLWidget
22 PathScene(Mussa *analysis=0, QWidget *parent=0);
24 QSize sizeHint() const;
27 std::vector<GlSequence> tracks;
31 void setClipPlane(int z);
33 //! load a mussa parameter file (which specifies an analysis to run)
35 //! load a previously run analysis
36 void loadSavedAnalysis();
37 //! set the soft threshold used by the Nway_Path algorithm
38 void setSoftThreshold(int thres);
39 //! indicate that we should update our scene
43 //! emitted when our analysis has changed
44 void analysisUpdated();
52 // true if we have a selection
54 // indicate which paths are selected
55 std::vector<bool> selectedPaths;
56 // which track is selected (it only makes sense to have one track selected).
57 unsigned int selectedTrack;
60 void resizeGL(int width, int height);
64 //! draw all of our sequence tracks
65 void draw_tracks() const;
66 void draw_lines() const;
67 GLuint make_line_list();
68 //! convert opengl selections into the list of paths we should highlight
69 void processSelection(GLuint hits, GLuint buffer[], GLuint bufsize);
70 //! Provide a logical name for a type discriminator for our glName stack
71 enum FeatureType { MussaTracks, MussaPaths };
73 //! \defgroup Selection
74 QRubberBand *rubberBand;
78 void mousePressEvent(QMouseEvent *);
79 void mouseMoveEvent(QMouseEvent *);
80 void mouseReleaseEvent(QMouseEvent *);