MainWindowPrivate.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015-2016 Open Source Robotics Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16 */
17 #ifndef _GAZEBO_GUI_MAINWINDOW_PRIVATE_HH_
18 #define _GAZEBO_GUI_MAINWINDOW_PRIVATE_HH_
19 
20 #include <map>
21 #include <string>
22 #include <vector>
23 
24 #include "gazebo/gazebo_config.h"
25 #include "gazebo/gui/qt.h"
26 #include "gazebo/msgs/MessageTypes.hh"
28 
29 #ifdef HAVE_OCULUS
31 #endif
32 
33 namespace gazebo
34 {
35  namespace gui
36  {
37  class DataLogger;
38  class Editor;
39  class HotkeyDialog;
40  class InsertModelWidget;
41  class ModelListWidget;
42  class RenderWidget;
43  class SpaceNav;
44  class ToolsWidget;
45  class UserCmdHistory;
46 
48  {
51 
54 
57 
60 
63 
66 
69 
72 
76 
79 
82 
85 
88 
91 
94 
96  public: std::vector<event::ConnectionPtr> connections;
97 
99  public: std::map<std::string, unsigned int> entities;
100 
102  public: msgs::Request *requestMsg;
103 
105  public: QTabWidget *tabWidget;
106 
108  public: QMenuBar *menuBar;
109 
111  public: QMenu *editMenu;
112 
114  public: QHBoxLayout *menuLayout;
115 
117  public: QStackedWidget *leftColumn;
118 
120  public: std::map<std::string, int> leftColumnStack;
121 
124  public: std::string saveFilename;
125 
127  public: int inputStepSize;
128 
130  public: std::map<std::string, Editor *> editors;
131 
133  public: std::vector<QActionGroup *> alignActionGroups;
134 
136  public: SpaceNav *spacenav;
137 
138 #ifdef HAVE_OCULUS
139  public: OculusWindow *oculusWindow;
141 #endif
142 
144  public: std::vector<std::shared_ptr<msgs::Plugin const> > pluginMsgs;
145 
147  public: std::mutex pluginLoadMutex;
148 
150  public: QSplitter *splitter;
151 
154 
157 
160 
163  };
164  }
165 }
166 #endif
std::vector< QActionGroup * > alignActionGroups
List of all the align action groups.
Definition: MainWindowPrivate.hh:133
transport::PublisherPtr worldControlPub
Publish world control messages.
Definition: MainWindowPrivate.hh:62
transport::PublisherPtr requestPub
Publish request messages.
Definition: MainWindowPrivate.hh:68
QSplitter * splitter
Splitter for the main window.
Definition: MainWindowPrivate.hh:150
InsertModelWidget * insertModel
Tab to insert models.
Definition: MainWindowPrivate.hh:159
RenderWidget * renderWidget
Pointer to the render widget.
Definition: MainWindowPrivate.hh:50
std::map< std::string, int > leftColumnStack
Map of names to widgets in the leftColumn QStackedWidget.
Definition: MainWindowPrivate.hh:120
A widget that provides data logging functionality.
Definition: DataLogger.hh:37
Interface to the space navigator joystick.
Definition: SpaceNav.hh:51
transport::SubscriberPtr guiSub
Subscribe to response messages.
Definition: MainWindowPrivate.hh:81
ModelListWidget * modelListWidget
Pointer to the model list widget.
Definition: MainWindowPrivate.hh:56
transport::SubscriberPtr responseSub
Subscribe to response messages.
Definition: MainWindowPrivate.hh:78
A widget that renders a camera view suitable for the Oculus Rift.
Definition: OculusWindow.hh:39
boost::shared_ptr< Subscriber > SubscriberPtr
Definition: TransportTypes.hh:53
Forward declarations for transport.
transport::SubscriberPtr worldModSub
Subscribe to world modify messages.
Definition: MainWindowPrivate.hh:87
A widget that manages all the tools on the right side of the render widget.
Definition: ToolsWidget.hh:39
msgs::Request * requestMsg
Message used to field requests.
Definition: MainWindowPrivate.hh:102
Definition: InsertModelWidget.hh:41
std::vector< event::ConnectionPtr > connections
Vector of event connections.
Definition: MainWindowPrivate.hh:96
transport::SubscriberPtr newEntitySub
Subscribe to model info messages.
Definition: MainWindowPrivate.hh:84
Definition: RenderWidget.hh:37
QHBoxLayout * menuLayout
A layout for the menu bar.
Definition: MainWindowPrivate.hh:114
std::vector< std::shared_ptr< msgs::Plugin const > > pluginMsgs
Buffer of plugin messages to process.
Definition: MainWindowPrivate.hh:144
transport::NodePtr node
Transport node used for communication.
Definition: MainWindowPrivate.hh:59
ToolsWidget * toolsWidget
Pointer to the tools widget.
Definition: MainWindowPrivate.hh:53
Definition: MainWindowPrivate.hh:47
std::map< std::string, Editor * > editors
Map of all the editors to their names.
Definition: MainWindowPrivate.hh:130
transport::PublisherPtr userCmdPub
Publish user command messages for the server to place in the undo queue.
Definition: MainWindowPrivate.hh:75
Dialog displaying the keyboard shortcuts.
Definition: HotkeyDialog.hh:32
transport::PublisherPtr serverControlPub
Publish server control messages.
Definition: MainWindowPrivate.hh:65
std::map< std::string, unsigned int > entities
A map that associates physics_id's with entity names.
Definition: MainWindowPrivate.hh:99
transport::SubscriberPtr lightFactorySub
Subscriber to the light factory topic.
Definition: MainWindowPrivate.hh:93
HotkeyDialog * hotkeyDialog
Hotkey chart dialog.
Definition: MainWindowPrivate.hh:156
std::string saveFilename
The filename set via "Save As".
Definition: MainWindowPrivate.hh:124
QMenuBar * menuBar
Mainwindow's menubar.
Definition: MainWindowPrivate.hh:108
std::mutex pluginLoadMutex
Mutex to protect plugin loading.
Definition: MainWindowPrivate.hh:147
QTabWidget * tabWidget
The left-hand tab widget.
Definition: MainWindowPrivate.hh:105
boost::shared_ptr< Node > NodePtr
Definition: TransportTypes.hh:57
Definition: ModelListWidget.hh:40
UserCmdHistory * userCmdHistory
Class which manages user commands and undoing / redoing them.
Definition: MainWindowPrivate.hh:162
Class which manages user commands in the client side.
Definition: UserCmdHistory.hh:35
boost::shared_ptr< Publisher > PublisherPtr
Definition: TransportTypes.hh:49
OculusWindow * oculusWindow
Window for Oculus VR set.
Definition: MainWindowPrivate.hh:140
QStackedWidget * leftColumn
Used to control size of each pane.
Definition: MainWindowPrivate.hh:117
QMenu * editMenu
The Edit menu.
Definition: MainWindowPrivate.hh:111
transport::SubscriberPtr lightModifySub
Subscriber to the light modify topic.
Definition: MainWindowPrivate.hh:90
SpaceNav * spacenav
Space navigator interface.
Definition: MainWindowPrivate.hh:136
transport::PublisherPtr scenePub
Publish scene messages.
Definition: MainWindowPrivate.hh:71
int inputStepSize
User specified step size for manually stepping the world.
Definition: MainWindowPrivate.hh:127
DataLogger * dataLogger
Data logger dialog.
Definition: MainWindowPrivate.hh:153