src
rviz
default_plugin
markers
marker_selection_handler.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2009, Willow Garage, Inc.
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are met:
7
*
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 the Willow Garage, Inc. nor the names of its
14
* contributors may be used to endorse or promote products derived from
15
* 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 THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
* POSSIBILITY OF SUCH DAMAGE.
28
*/
29
30
#include <OgreQuaternion.h>
31
#include <OgreVector3.h>
32
33
#include "
rviz/default_plugin/interactive_markers/interactive_marker_control.h
"
34
#include "
rviz/default_plugin/marker_display.h
"
35
#include "
rviz/default_plugin/markers/marker_base.h
"
36
#include "
rviz/properties/property.h
"
37
#include "
rviz/properties/quaternion_property.h
"
38
#include "
rviz/properties/vector_property.h
"
39
40
#include "
rviz/default_plugin/markers/marker_selection_handler.h
"
41
42
namespace
rviz
43
{
44
MarkerSelectionHandler::MarkerSelectionHandler
(
const
MarkerBase
* marker,
45
MarkerID
id
,
46
DisplayContext
* context)
47
:
SelectionHandler
(context)
48
, marker_(marker)
49
, marker_id_(QString::fromStdString(id.first) +
"/"
+ QString::number(id.second))
50
{
51
}
52
53
MarkerSelectionHandler::~MarkerSelectionHandler
()
54
{
55
}
56
57
Ogre::Vector3
MarkerSelectionHandler::getPosition
()
58
{
59
return
Ogre::Vector3(
marker_
->
getMessage
()->pose.position.x,
marker_
->
getMessage
()->pose.position.y,
60
marker_
->
getMessage
()->pose.position.z);
61
}
62
63
Ogre::Quaternion
MarkerSelectionHandler::getOrientation
()
64
{
65
return
Ogre::Quaternion(
marker_
->
getMessage
()->pose.orientation.w,
66
marker_
->
getMessage
()->pose.orientation.x,
67
marker_
->
getMessage
()->pose.orientation.y,
68
marker_
->
getMessage
()->pose.orientation.z);
69
}
70
71
void
MarkerSelectionHandler::createProperties
(
const
Picked
&
/*obj*/
,
Property
* parent_property)
72
{
73
Property
* group =
new
Property
(
"Marker "
+
marker_id_
, QVariant(),
""
, parent_property);
74
properties_
.push_back(group);
75
76
position_property_
=
new
VectorProperty
(
"Position"
,
getPosition
(),
""
, group);
77
position_property_
->
setReadOnly
(
true
);
78
79
orientation_property_
=
new
QuaternionProperty
(
"Orientation"
,
getOrientation
(),
""
, group);
80
orientation_property_
->
setReadOnly
(
true
);
81
82
group->
expand
();
83
}
84
85
void
MarkerSelectionHandler::updateProperties
()
86
{
87
position_property_
->
setVector
(
getPosition
());
88
orientation_property_
->
setQuaternion
(
getOrientation
());
89
}
90
91
}
// end namespace rviz
rviz::SelectionHandler
Definition:
selection_handler.h:64
rviz::MarkerSelectionHandler::marker_
const MarkerBase * marker_
Definition:
marker_selection_handler.h:57
marker_selection_handler.h
interactive_marker_control.h
rviz::Property::expand
virtual void expand()
Expand (show the children of) this Property.
Definition:
property.cpp:555
rviz::VectorProperty::setVector
virtual bool setVector(const Ogre::Vector3 &vector)
Definition:
vector_property.cpp:59
rviz::MarkerSelectionHandler::position_property_
VectorProperty * position_property_
Definition:
marker_selection_handler.h:59
rviz::Property
A single element of a property tree, with a name, value, description, and possibly children...
Definition:
property.h:100
rviz::MarkerSelectionHandler::MarkerSelectionHandler
MarkerSelectionHandler(const MarkerBase *marker, MarkerID id, DisplayContext *context)
Definition:
marker_selection_handler.cpp:44
rviz::QuaternionProperty::setReadOnly
void setReadOnly(bool read_only) override
Overridden from Property to propagate read-only-ness to children.
Definition:
quaternion_property.cpp:158
rviz::MarkerSelectionHandler::getOrientation
Ogre::Quaternion getOrientation()
Definition:
marker_selection_handler.cpp:63
vector_property.h
rviz::MarkerBase
Definition:
marker_base.h:59
rviz::MarkerSelectionHandler::getPosition
Ogre::Vector3 getPosition()
Definition:
marker_selection_handler.cpp:57
rviz::MarkerSelectionHandler::createProperties
void createProperties(const Picked &obj, Property *parent_property) override
Override to create properties of the given picked object(s).
Definition:
marker_selection_handler.cpp:71
property.h
rviz::VectorProperty::setReadOnly
void setReadOnly(bool read_only) override
Overridden from Property to propagate read-only-ness to children.
Definition:
vector_property.cpp:145
rviz::MarkerSelectionHandler::~MarkerSelectionHandler
~MarkerSelectionHandler() override
Definition:
marker_selection_handler.cpp:53
rviz
Definition:
add_display_dialog.cpp:54
rviz::MarkerSelectionHandler::marker_id_
QString marker_id_
Definition:
marker_selection_handler.h:58
rviz::MarkerID
std::pair< std::string, int32_t > MarkerID
Definition:
interactive_marker_display.h:59
rviz::DisplayContext
Pure-virtual base class for objects which give Display subclasses context in which to work...
Definition:
display_context.h:81
quaternion_property.h
marker_display.h
rviz::Picked
Definition:
forwards.h:53
rviz::QuaternionProperty::setQuaternion
virtual bool setQuaternion(const Ogre::Quaternion &quaternion)
Definition:
quaternion_property.cpp:62
marker_base.h
rviz::VectorProperty
Definition:
vector_property.h:39
rviz::SelectionHandler::properties_
QList< Property * > properties_
Definition:
selection_handler.h:149
rviz::MarkerBase::getMessage
const MarkerConstPtr & getMessage() const
Definition:
marker_base.h:75
rviz::MarkerSelectionHandler::updateProperties
void updateProperties() override
Override to update property values.
Definition:
marker_selection_handler.cpp:85
rviz::MarkerSelectionHandler::orientation_property_
QuaternionProperty * orientation_property_
Definition:
marker_selection_handler.h:60
rviz::QuaternionProperty
Definition:
quaternion_property.h:38
rviz
Author(s): Dave Hershberger, David Gossow, Josh Faust
autogenerated on Fri Feb 3 2023 03:06:42