IVT
OpenGLVisualizerControl.h
Go to the documentation of this file.
1 // ****************************************************************************
2 // This file is part of the Integrating Vision Toolkit (IVT).
3 //
4 // The IVT is maintained by the Karlsruhe Institute of Technology (KIT)
5 // (www.kit.edu) in cooperation with the company Keyetech (www.keyetech.de).
6 //
7 // Copyright (C) 2014 Karlsruhe Institute of Technology (KIT).
8 // All rights reserved.
9 //
10 // Redistribution and use in source and binary forms, with or without
11 // modification, are permitted provided that the following conditions are met:
12 //
13 // 1. Redistributions of source code must retain the above copyright
14 // notice, this list of conditions and the following disclaimer.
15 //
16 // 2. Redistributions in binary form must reproduce the above copyright
17 // notice, this list of conditions and the following disclaimer in the
18 // documentation and/or other materials provided with the distribution.
19 //
20 // 3. Neither the name of the KIT nor the names of its contributors may be
21 // used to endorse or promote products derived from this software
22 // without specific prior written permission.
23 //
24 // THIS SOFTWARE IS PROVIDED BY THE KIT AND CONTRIBUTORS “AS IS” AND ANY
25 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27 // DISCLAIMED. IN NO EVENT SHALL THE KIT OR CONTRIBUTORS BE LIABLE FOR ANY
28 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
33 // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 // ****************************************************************************
35 // ****************************************************************************
36 // Filename: OpenGLVisualizerControl.h
37 // Author: Florian Hecht
38 // Date: 2009
39 // ****************************************************************************
40 
41 
42 #ifndef _OPENGL_VISUALIZER_CONTROL_H_
43 #define _OPENGL_VISUALIZER_CONTROL_H_
44 
45 
46 // ****************************************************************************
47 // Necessary includes
48 // ****************************************************************************
49 
51 #include "Math/Math3d.h"
52 
53 
54 // ****************************************************************************
55 // Forward declarations
56 // ****************************************************************************
57 
59 class COpenGLVisualizer;
60 
61 
62 
63 // ****************************************************************************
64 // COpenGLVisualizerControl
65 // ****************************************************************************
66 
68 {
69 public:
70  // constructor
71  COpenGLVisualizerControl(WIDGET_HANDLE widget, int width, int height, COpenGLVisualizer *visualizer, CMainWindowInterface *main_window, CMainWindowEventInterface *event_callback);
72 
73 
74  // public methods
75  void SetViewMatrix(const Transformation3d &transformation);
77  void ResetViewMatrix();
78 
79  void Update();
80 
81  // CMainWindowEventInterface
82 
83  // this two events are specific for the image widget
84  void RectSelected(WIDGET_HANDLE widget, int x0, int y0, int x1, int y1);
85  void PointClicked(WIDGET_HANDLE widget, int x, int y);
86 
87  // the following events are only generated for image and GL widgets
88  void MouseDown(WIDGET_HANDLE widget, int button, int x, int y);
89  void MouseUp(WIDGET_HANDLE widget, int button, int x, int y);
90  void MouseMove(WIDGET_HANDLE widget, int x, int y);
91  void KeyDown(WIDGET_HANDLE widget, int key);
92  void KeyUp(WIDGET_HANDLE widget, int key);
93 
94  // this event is only emitted for buttons
95  void ButtonPushed(WIDGET_HANDLE widget);
96 
97  // this event is generated by check boxes, sliders, text edits (value = -1)
98  // and combo boxes
99  void ValueChanged(WIDGET_HANDLE widget, int value);
100 
101 
102 private:
103  WIDGET_HANDLE m_widget;
104  COpenGLVisualizer *m_visualizer;
105  CMainWindowInterface *m_main_window;
106  CMainWindowEventInterface *m_event_callback;
107 
108  Transformation3d m_ViewMatrix;
109 
110  int m_width;
111  int m_height;
112 
113  int m_mouse_mode;
114  int m_mouse_old_x;
115  int m_mouse_old_y;
116 };
117 
118 
119 
120 #endif /* _OPENGL_VISUALIZER_CONTROL_H_ */
void * WIDGET_HANDLE
void MouseDown(WIDGET_HANDLE widget, int button, int x, int y)
COpenGLVisualizerControl(WIDGET_HANDLE widget, int width, int height, COpenGLVisualizer *visualizer, CMainWindowInterface *main_window, CMainWindowEventInterface *event_callback)
void RectSelected(WIDGET_HANDLE widget, int x0, int y0, int x1, int y1)
void KeyUp(WIDGET_HANDLE widget, int key)
const Transformation3d & GetViewMatrix()
void PointClicked(WIDGET_HANDLE widget, int x, int y)
void ButtonPushed(WIDGET_HANDLE widget)
void SetViewMatrix(const Transformation3d &transformation)
void KeyDown(WIDGET_HANDLE widget, int key)
void ValueChanged(WIDGET_HANDLE widget, int value)
Interface for the creation of GUIs with the GUI toolkit of the IVT.
Interface for the event mechanism of GUIs using the GUI toolkit of the IVT.
void MouseMove(WIDGET_HANDLE widget, int x, int y)
Data structure for the representation of a 3D rigid body transformation.
Definition: Math3d.h:105
void MouseUp(WIDGET_HANDLE widget, int button, int x, int y)