Main Page
Namespaces
Classes
Files
File List
File Members
src
screenshot_listener_tool.cpp
Go to the documentation of this file.
1
// -*- mode: c++ -*-
2
/*********************************************************************
3
* Software License Agreement (BSD License)
4
*
5
* Copyright (c) 2014, JSK Lab
6
* All rights reserved.
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
10
* are met:
11
*
12
* * Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
14
* * Redistributions in binary form must reproduce the above
15
* copyright notice, this list of conditions and the following
16
* disclaimer in the documentation and/o2r other materials provided
17
* with the distribution.
18
* * Neither the name of the JSK Lab nor the names of its
19
* contributors may be used to endorse or promote products derived
20
* from this software without specific prior written permission.
21
*
22
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33
* POSSIBILITY OF SUCH DAMAGE.
34
*********************************************************************/
35
36
#include <
ros/ros.h
>
37
#include <
rviz/tool_manager.h
>
38
#include <
rviz/display_context.h
>
39
#include <
rviz/view_manager.h
>
40
#include <
rviz/display_group.h
>
41
#include <
rviz/display.h
>
42
#include <
rviz/render_panel.h
>
43
#include <QImageWriter>
44
#include "
screenshot_listener_tool.h
"
45
46
namespace
jsk_rviz_plugins
47
{
48
ScreenshotListenerTool::ScreenshotListenerTool
()
49
:
rviz
::
Tool
()
50
{
51
52
}
53
ScreenshotListenerTool::~ScreenshotListenerTool
()
54
{
55
56
}
57
58
void
ScreenshotListenerTool::onInitialize
()
59
{
60
ros::NodeHandle
nh;
61
screenshot_service_
= nh.
advertiseService
(
62
"/rviz/screenshot"
,
63
&
ScreenshotListenerTool::takeScreenShot
,
this
);
64
}
65
66
void
ScreenshotListenerTool::activate
()
67
{
68
69
}
70
71
void
ScreenshotListenerTool::deactivate
()
72
{
73
74
}
75
76
bool
ScreenshotListenerTool::takeScreenShot
(
77
jsk_rviz_plugins::Screenshot::Request& req,
78
jsk_rviz_plugins::Screenshot::Response& res)
79
{
80
QPixmap screenshot = QPixmap::grabWindow(
context_
->
getViewManager
()->
getRenderPanel
()->winId());
81
QString output_file = QString::fromStdString(req.file_name);
82
QImageWriter writer(output_file);
83
writer.write(screenshot.toImage());
84
return
true
;
85
}
86
87
}
88
89
#include <
pluginlib/class_list_macros.h
>
90
PLUGINLIB_EXPORT_CLASS
(
jsk_rviz_plugins::ScreenshotListenerTool
,
rviz::Tool
)
jsk_rviz_plugins::ScreenshotListenerTool::ScreenshotListenerTool
ScreenshotListenerTool()
Definition:
screenshot_listener_tool.cpp:48
ros::NodeHandle
rviz::Tool
jsk_rviz_plugins::ScreenshotListenerTool::~ScreenshotListenerTool
virtual ~ScreenshotListenerTool()
Definition:
screenshot_listener_tool.cpp:53
PLUGINLIB_EXPORT_CLASS
PLUGINLIB_EXPORT_CLASS(jsk_rviz_plugins::PictogramArrayDisplay, rviz::Display)
rviz::DisplayContext::getViewManager
virtual ViewManager * getViewManager() const =0
jsk_rviz_plugins
Definition:
__init__.py:1
jsk_rviz_plugins::ScreenshotListenerTool::takeScreenShot
virtual bool takeScreenShot(jsk_rviz_plugins::Screenshot::Request &req, jsk_rviz_plugins::Screenshot::Response &res)
Definition:
screenshot_listener_tool.cpp:76
ros::NodeHandle::advertiseService
ServiceServer advertiseService(const std::string &service, bool(T::*srv_func)(MReq &, MRes &), T *obj)
rviz
display.h
display_context.h
class_list_macros.h
jsk_rviz_plugins::ScreenshotListenerTool::deactivate
virtual void deactivate()
Definition:
screenshot_listener_tool.cpp:71
jsk_rviz_plugins::ScreenshotListenerTool::onInitialize
virtual void onInitialize()
Definition:
screenshot_listener_tool.cpp:58
jsk_rviz_plugins::ScreenshotListenerTool::screenshot_service_
ros::ServiceServer screenshot_service_
Definition:
screenshot_listener_tool.h:59
jsk_rviz_plugins::ScreenshotListenerTool::activate
virtual void activate()
Definition:
screenshot_listener_tool.cpp:66
tool_manager.h
ros.h
render_panel.h
rviz::Tool::context_
DisplayContext * context_
view_manager.h
display_group.h
rviz::ViewManager::getRenderPanel
RenderPanel * getRenderPanel() const
jsk_rviz_plugins::ScreenshotListenerTool
Definition:
screenshot_listener_tool.h:47
screenshot_listener_tool.h
jsk_rviz_plugins
Author(s): Kei Okada
, Yohei Kakiuchi
, Shohei Fujii
, Ryohei Ueda
autogenerated on Sat Mar 20 2021 03:03:18