multires_view_node.cpp
Go to the documentation of this file.
1 // *****************************************************************************
2 //
3 // Copyright (c) 2014, Southwest Research Institute® (SwRI®)
4 // All rights reserved.
5 //
6 // Redistribution and use in source and binary forms, with or without
7 // modification, are permitted provided that the following conditions are met:
8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // * Neither the name of Southwest Research Institute® (SwRI®) nor the
14 // names of its contributors may be used to endorse or promote products
15 // derived from this software without specific prior written permission.
16 //
17 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 // ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
21 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 //
28 // *****************************************************************************
29 
38 #include <string>
39 
40 // QT libraries
41 #include <QString>
42 #include <QApplication>
43 #include <QMessageBox>
44 #include <QImage>
45 #include <QFileInfo>
46 
48 
49 namespace multires_image
50 {
51  MultiresViewNode::MultiresViewNode(int argc, char **argv, QWidget *parent, Qt::WindowFlags flags) :
52  QMainWindow(parent, flags),
53  argc_(argc),
54  argv_(argv),
55  node_(NULL),
56  thread_(NULL),
57  initialized_(false)
58  {
59  setCentralWidget(new QGLMap());
60  this->setMinimumSize(640, 480);
61  }
62 
64  {
65  delete node_;
66  }
67 
69  {
70  if (thread_ == NULL)
71  {
72  thread_ = new boost::thread(&MultiresViewNode::SpinLoop, this);
73  }
74  }
75 
77  {
78  while (ros::ok())
79  {
80  ros::spinOnce();
81 
82  usleep(10);
83  }
84  }
85 
86  void MultiresViewNode::showEvent(QShowEvent* event)
87  {
88  Initialize();
89  }
90 
92  {
93  if (!initialized_)
94  {
95  ros::init(argc_, argv_, "multires_view_node");
96 
97  node_ = new ros::NodeHandle();
98 
99  node_->param(ros::this_node::getName() + "/image_path", image_path_, std::string(""));
100 
101 
103 
104  if (tile_set_->Load())
105  {
106  QGLMap* glMap = reinterpret_cast<QGLMap*>(centralWidget());
107  glMap->SetTiles(tile_set_);
108  glMap->UpdateView();
109  }
110  else
111  {
112  QMessageBox::warning(this, "Error", "Failed to load tiles.");
113  }
114 
115  Spin();
116 
117  initialized_ = true;
118  }
119  }
120 }
121 
122 int main(int argc, char **argv)
123 {
124  // Initialize QT
125  QApplication app(argc, argv);
126 
127  multires_image::MultiresViewNode node(argc, argv);
128  node.show();
129 
130  return app.exec();
131 }
app
#define NULL
ROSCPP_DECL void init(int &argc, char **argv, const std::string &name, uint32_t options=0)
int main(int argc, char **argv)
ROSCPP_DECL const std::string & getName()
virtual void showEvent(QShowEvent *event)
MultiresViewNode(int argc, char **argv, QWidget *parent=0, Qt::WindowFlags flags=0)
bool param(const std::string &param_name, T &param_val, const T &default_val) const
ROSCPP_DECL bool ok()
void SetTiles(TileSet *tiles)
Definition: QGLMap.cpp:93
ROSCPP_DECL void spinOnce()


multires_image
Author(s): Marc Alban
autogenerated on Fri Mar 19 2021 02:44:42