Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
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
45
MarkerSelectionHandler::MarkerSelectionHandler
(
const
MarkerBase
* marker,
MarkerID
id
,
DisplayContext
* context )
46
:
SelectionHandler
( context )
47
, marker_( marker )
48
, marker_id_( QString::fromStdString( id.first ) +
"/"
+ QString::number( id.second ))
49
{
50
}
51
52
MarkerSelectionHandler::~MarkerSelectionHandler
()
53
{
54
}
55
56
Ogre::Vector3
MarkerSelectionHandler::getPosition
()
57
{
58
return
Ogre::Vector3(
marker_
->
getMessage
()->pose.position.x,
59
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
rviz::MarkerSelectionHandler::createProperties
virtual void createProperties(const Picked &obj, Property *parent_property)
Override to create properties of the given picked object(s).
Definition:
marker_selection_handler.cpp:71
marker_selection_handler.h
interactive_marker_control.h
rviz::Property::expand
virtual void expand()
Expand (show the children of) this Property.
Definition:
property.cpp:542
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:45
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:56
rviz::QuaternionProperty::setReadOnly
virtual void setReadOnly(bool read_only)
Overridden from Property to propagate read-only-ness to children.
Definition:
quaternion_property.cpp:157
property.h
rviz::MarkerSelectionHandler::updateProperties
virtual void updateProperties()
Override to update property values.
Definition:
marker_selection_handler.cpp:85
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::MarkerSelectionHandler::~MarkerSelectionHandler
virtual ~MarkerSelectionHandler()
Definition:
marker_selection_handler.cpp:52
rviz::DisplayContext
Pure-virtual base class for objects which give Display subclasses context in which to work...
Definition:
display_context.h:76
quaternion_property.h
marker_display.h
rviz::Picked
Definition:
forwards.h:54
rviz::VectorProperty::setReadOnly
virtual void setReadOnly(bool read_only)
Overridden from Property to propagate read-only-ness to children.
Definition:
vector_property.cpp:146
rviz::QuaternionProperty::setQuaternion
virtual bool setQuaternion(const Ogre::Quaternion &quaternion)
Definition:
quaternion_property.cpp:62
rviz::MarkerBase::getMessage
const MarkerConstPtr & getMessage() const
Definition:
marker_base.h:75
marker_base.h
rviz::VectorProperty
Definition:
vector_property.h:39
rviz::SelectionHandler::properties_
QList< Property * > properties_
Definition:
selection_handler.h:140
rviz::MarkerSelectionHandler::orientation_property_
QuaternionProperty * orientation_property_
Definition:
marker_selection_handler.h:60
rviz::QuaternionProperty
Definition:
quaternion_property.h:39
rviz
Author(s): Dave Hershberger, David Gossow, Josh Faust
autogenerated on Sat Apr 27 2019 02:33:41