Point Cloud Library (PCL)
1.15.1
Toggle main menu visibility
Loading...
Searching...
No Matches
pcl
visualization
keyboard_event.h
1
/*
2
* Software License Agreement (BSD License)
3
*
4
* Point Cloud Library (PCL) - www.pointclouds.org
5
* Copyright (c) 2010-2011, Willow Garage, Inc.
6
* Copyright (c) 2012-, Open Perception, Inc.
7
*
8
* All rights reserved.
9
*
10
* Redistribution and use in source and binary forms, with or without
11
* modification, are permitted provided that the following conditions
12
* are met:
13
*
14
* * Redistributions of source code must retain the above copyright
15
* notice, this list of conditions and the following disclaimer.
16
* * Redistributions in binary form must reproduce the above
17
* copyright notice, this list of conditions and the following
18
* disclaimer in the documentation and/or other materials provided
19
* with the distribution.
20
* * Neither the name of the copyright holder(s) nor the names of its
21
* contributors may be used to endorse or promote products derived
22
* from this software without specific prior written permission.
23
*
24
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
27
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
28
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
29
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
30
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
31
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35
* POSSIBILITY OF SUCH DAMAGE.
36
*
37
*/
38
39
#pragma once
40
41
#include <string>
42
43
namespace
pcl
44
{
45
namespace
visualization
46
{
47
/** /brief Class representing key hit/release events */
48
class
KeyboardEvent
49
{
50
public
:
51
/** \brief bit pattern for the ALT key*/
52
static
const
unsigned
int
Alt
= 1;
53
/** \brief bit pattern for the Control key*/
54
static
const
unsigned
int
Ctrl
= 2;
55
/** \brief bit pattern for the Shift key*/
56
static
const
unsigned
int
Shift
= 4;
57
58
/** \brief Constructor
59
* \param[in] action true for key was pressed, false for released
60
* \param[in] key_sym the key-name that caused the action
61
* \param[in] key the key code that caused the action
62
* \param[in] alt whether the alt key was pressed at the time where this event was triggered
63
* \param[in] ctrl whether the ctrl was pressed at the time where this event was triggered
64
* \param[in] shift whether the shift was pressed at the time where this event was triggered
65
*/
66
inline
KeyboardEvent
(
bool
action,
const
std::string& key_sym,
unsigned
char
key,
67
bool
alt,
bool
ctrl,
bool
shift);
68
69
/**
70
* \return whether the alt key was pressed at the time where this event was triggered
71
*/
72
inline
bool
73
isAltPressed
()
const
;
74
75
/**
76
* \return whether the ctrl was pressed at the time where this event was triggered
77
*/
78
inline
bool
79
isCtrlPressed
()
const
;
80
81
/**
82
* \return whether the shift was pressed at the time where this event was triggered
83
*/
84
inline
bool
85
isShiftPressed
()
const
;
86
87
/**
88
* \return the ASCII Code of the key that caused the event. If 0, then it was a special key, like ALT, F1, F2,... PgUp etc. Then the name of the key is in the keysym field.
89
*/
90
inline
unsigned
char
91
getKeyCode
()
const
;
92
93
/**
94
* \return name of the key that caused the event
95
*/
96
inline
const
std::string&
97
getKeySym
()
const
;
98
99
/**
100
* \return true if a key-press caused the event, false otherwise
101
*/
102
inline
bool
103
keyDown
()
const
;
104
105
/**
106
* \return true if a key-release caused the event, false otherwise
107
*/
108
inline
bool
109
keyUp
()
const
;
110
111
protected
:
112
113
bool
action_
;
114
unsigned
int
modifiers_
{0};
115
unsigned
char
key_code_
;
116
std::string
key_sym_
;
117
};
118
119
KeyboardEvent::KeyboardEvent
(
bool
action,
const
std::string& key_sym,
unsigned
char
key,
120
bool
alt,
bool
ctrl,
bool
shift)
121
:
action_
(action)
122
,
123
key_code_
(key)
124
,
key_sym_
(key_sym)
125
{
126
if
(alt)
127
modifiers_
=
Alt
;
128
129
if
(ctrl)
130
modifiers_
|=
Ctrl
;
131
132
if
(shift)
133
modifiers_
|=
Shift
;
134
}
135
136
bool
137
KeyboardEvent::isAltPressed
()
const
138
{
139
return
(
modifiers_
&
Alt
) != 0;
140
}
141
142
bool
143
KeyboardEvent::isCtrlPressed
()
const
144
{
145
return
(
modifiers_
&
Ctrl
) != 0;
146
}
147
148
bool
149
KeyboardEvent::isShiftPressed
()
const
150
{
151
return
(
modifiers_
&
Shift
) != 0;
152
}
153
154
unsigned
char
155
KeyboardEvent::getKeyCode
()
const
156
{
157
return
(
key_code_
);
158
}
159
160
const
std::string&
161
KeyboardEvent::getKeySym
()
const
162
{
163
return
(
key_sym_
);
164
}
165
166
bool
167
KeyboardEvent::keyDown
()
const
168
{
169
return
(
action_
);
170
}
171
172
bool
173
KeyboardEvent::keyUp
()
const
174
{
175
return
(!
action_
);
176
}
177
}
// namespace visualization
178
}
// namespace pcl
pcl::visualization::KeyboardEvent::keyDown
bool keyDown() const
Definition
keyboard_event.h:167
pcl::visualization::KeyboardEvent::key_code_
unsigned char key_code_
Definition
keyboard_event.h:115
pcl::visualization::KeyboardEvent::isShiftPressed
bool isShiftPressed() const
Definition
keyboard_event.h:149
pcl::visualization::KeyboardEvent::KeyboardEvent
KeyboardEvent(bool action, const std::string &key_sym, unsigned char key, bool alt, bool ctrl, bool shift)
Constructor.
Definition
keyboard_event.h:119
pcl::visualization::KeyboardEvent::getKeySym
const std::string & getKeySym() const
Definition
keyboard_event.h:161
pcl::visualization::KeyboardEvent::getKeyCode
unsigned char getKeyCode() const
Definition
keyboard_event.h:155
pcl::visualization::KeyboardEvent::Alt
static const unsigned int Alt
bit pattern for the ALT key
Definition
keyboard_event.h:52
pcl::visualization::KeyboardEvent::keyUp
bool keyUp() const
Definition
keyboard_event.h:173
pcl::visualization::KeyboardEvent::Shift
static const unsigned int Shift
bit pattern for the Shift key
Definition
keyboard_event.h:56
pcl::visualization::KeyboardEvent::isCtrlPressed
bool isCtrlPressed() const
Definition
keyboard_event.h:143
pcl::visualization::KeyboardEvent::modifiers_
unsigned int modifiers_
Definition
keyboard_event.h:114
pcl::visualization::KeyboardEvent::isAltPressed
bool isAltPressed() const
Definition
keyboard_event.h:137
pcl::visualization::KeyboardEvent::key_sym_
std::string key_sym_
Definition
keyboard_event.h:116
pcl::visualization::KeyboardEvent::action_
bool action_
Definition
keyboard_event.h:113
pcl::visualization::KeyboardEvent::Ctrl
static const unsigned int Ctrl
bit pattern for the Control key
Definition
keyboard_event.h:54
pcl::visualization
Definition
color_handler.h:46
pcl
Definition
convolution.h:46