ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
cc3DMouseManager.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 // ##########################################################################
11 // # #
12 // # CLOUDVIEWER #
13 // # #
14 // # This program is free software; you can redistribute it and/or modify #
15 // # it under the terms of the GNU General Public License as published by #
16 // # the Free Software Foundation; version 2 or later of the License. #
17 // # #
18 // # This program is distributed in the hope that it will be useful, #
19 // # but WITHOUT ANY WARRANTY; without even the implied warranty of #
20 // # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
21 // # GNU General Public License for more details. #
22 // # #
23 // # COPYRIGHT: ACloudViewer project #
24 // # #
25 // ##########################################################################
26 
27 #include <QObject>
28 
29 #include "CVAppCommon.h"
30 
31 class QAction;
32 class QMenu;
33 
35 class Mouse3DInput;
36 
37 class CVAPPCOMMON_LIB_API cc3DMouseManager : public QObject {
38  Q_OBJECT
39 
40 public:
41  cc3DMouseManager(ecvMainAppInterface *appInterface, QObject *parent);
43 
45  QMenu *menu() { return m_menu; }
46 
47 private:
48  void enableDevice(bool state, bool silent);
49  void releaseDevice();
50 
51  void setupMenu();
52 
53  void on3DMouseKeyUp(int key);
54  void on3DMouseCMDKeyUp(int cmd);
55  void on3DMouseKeyDown(int key);
56  void on3DMouseCMDKeyDown(int cmd);
57  void on3DMouseMove(std::vector<float> &vec);
58  void on3DMouseReleased();
59 
60  ecvMainAppInterface *m_appInterface;
61 
62  Mouse3DInput *m3dMouseInput;
63 
64  QMenu *m_menu;
65  QAction *m_actionEnable;
66 };
#define CVAPPCOMMON_LIB_API
Definition: CVAppCommon.h:15
3DxWare driver wrapper for 3D mouse handling
Definition: Mouse3DInput.h:43
QMenu * menu()
Gets the menu associated with the 3D mouse.
Main application interface (for plugins)