src
nodes
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
47
#include <
multires_image/multires_view_node.h
>
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
63
MultiresViewNode::~MultiresViewNode
()
64
{
65
delete
node_
;
66
}
67
68
void
MultiresViewNode::Spin
()
69
{
70
if
(
thread_
==
NULL
)
71
{
72
thread_
=
new
boost::thread(&
MultiresViewNode::SpinLoop
,
this
);
73
}
74
}
75
76
void
MultiresViewNode::SpinLoop
()
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
91
void
MultiresViewNode::Initialize
()
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
102
tile_set_
=
new
TileSet
(
image_path_
);
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
}
NULL
#define NULL
multires_image
Definition:
multires_view_node.h:51
multires_image::MultiresViewNode::argc_
int argc_
Definition:
multires_view_node.h:70
multires_image::MultiresViewNode::showEvent
virtual void showEvent(QShowEvent *event)
Definition:
multires_view_node.cpp:86
ros::init
ROSCPP_DECL void init(const M_string &remappings, const std::string &name, uint32_t options=0)
multires_image::MultiresViewNode::Initialize
void Initialize()
Definition:
multires_view_node.cpp:91
multires_image::MultiresViewNode::tile_set_
TileSet * tile_set_
Definition:
multires_view_node.h:80
multires_image::TileSet::Load
bool Load()
Definition:
tile_set.cpp:79
multires_view_node.h
multires_image::MultiresViewNode::~MultiresViewNode
~MultiresViewNode()
Definition:
multires_view_node.cpp:63
ros::spinOnce
ROSCPP_DECL void spinOnce()
multires_image::MultiresViewNode::node_
ros::NodeHandle * node_
Definition:
multires_view_node.h:73
ros::ok
ROSCPP_DECL bool ok()
multires_image::MultiresViewNode::MultiresViewNode
MultiresViewNode(int argc, char **argv, QWidget *parent=0, Qt::WindowFlags flags=0)
Definition:
multires_view_node.cpp:51
multires_image::MultiresViewNode::thread_
boost::thread * thread_
Definition:
multires_view_node.h:74
multires_image::MultiresViewNode::Spin
void Spin()
Definition:
multires_view_node.cpp:68
multires_image::MultiresViewNode
Definition:
multires_view_node.h:53
ros::this_node::getName
const ROSCPP_DECL std::string & getName()
multires_image::MultiresViewNode::initialized_
bool initialized_
Definition:
multires_view_node.h:76
ros::NodeHandle::param
T param(const std::string ¶m_name, const T &default_val) const
multires_image::QGLMap::UpdateView
void UpdateView()
Definition:
QGLMap.cpp:67
multires_image::MultiresViewNode::argv_
char ** argv_
Definition:
multires_view_node.h:71
multires_image::MultiresViewNode::image_path_
std::string image_path_
Definition:
multires_view_node.h:78
multires_image::QGLMap::SetTiles
void SetTiles(TileSet *tiles)
Definition:
QGLMap.cpp:93
main
int main(int argc, char **argv)
Definition:
multires_view_node.cpp:122
multires_image::MultiresViewNode::SpinLoop
void SpinLoop()
Definition:
multires_view_node.cpp:76
app
app
multires_image::TileSet
Definition:
tile_set.h:43
multires_image::QGLMap
Definition:
QGLMap.h:48
ros::NodeHandle
multires_image
Author(s): Marc Alban
autogenerated on Sun Sep 8 2024 02:27:21