19 #ifndef SNARK_GRAPHICS_APPLICATIONS_LABELPOINTS_TOOLS_H_
20 #define SNARK_GRAPHICS_APPLICATIONS_LABELPOINTS_TOOLS_H_
22 #include <boost/optional.hpp>
23 #include <boost/scoped_ptr.hpp>
24 #include <boost/date_time/posix_time/posix_time.hpp>
28 #include <comma/base/types.h>
29 #include <snark/math/interval.h>
31 #include <Qt3D/qcolor4ub.h>
32 #include <Qt3D/qglpainter.h>
35 namespace snark {
namespace graphics {
namespace View {
class Viewer; } } }
37 namespace snark {
namespace graphics {
namespace View {
namespace Tools {
39 QColor4ub colorFromId( comma::uint32
id );
41 class Tool :
public QObject
44 Tool( Viewer& viewer, QCursor* cursor );
46 void toggle(
bool checked );
47 virtual void onMousePress( QMouseEvent* e );
48 virtual void onMouseRelease( QMouseEvent* e );
49 virtual void onMouseMove( QMouseEvent* e );
50 virtual void draw( QGLPainter* painter );
54 boost::scoped_ptr< QCursor > m_cursor;
55 virtual void init() {}
56 virtual void reset() {}
59 struct Navigate :
public Tool
61 Navigate( Viewer& viewer );
64 class PickId :
public Tool
69 PickId( Viewer& viewer );
70 void onMousePress( QMouseEvent* e );
74 void valueChanged( comma::uint32
id );
77 struct Fill :
public Tool
79 Fill( Viewer& viewer );
80 void onMousePress( QMouseEvent* e );
83 struct SelectPartition :
public Tool
85 SelectPartition( Viewer& viewer );
86 void onMousePress( QMouseEvent* e );
87 void onMouseRelease( QMouseEvent* e );
88 void onMouseMove( QMouseEvent* e );
91 struct SelectId :
public Tool
93 SelectId( Viewer& viewer );
94 void onMousePress( QMouseEvent* e );
95 void onMouseRelease( QMouseEvent* e );
96 void onMouseMove( QMouseEvent* e );
99 class SelectClip :
public Tool
102 SelectClip( Viewer& viewer );
103 void onMousePress( QMouseEvent* e );
104 void onMouseRelease( QMouseEvent* e );
105 void onMouseMove( QMouseEvent* e );
106 void draw( QGLPainter* painter );
109 boost::optional< QRect > m_rectangle;
110 Eigen::Vector3d m_center;
111 Eigen::Vector3d m_radius;
116 #endif // SNARK_GRAPHICS_APPLICATIONS_LABELPOINTS_TOOLS_H_