pictogram_display.h
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/or 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 
37 #ifndef JSK_RVIZ_PLUGIN_PICTOGRAM_DISPLAY_H_
38 #define JSK_RVIZ_PLUGIN_PICTOGRAM_DISPLAY_H_
39 
40 #ifndef Q_MOC_RUN
41 #include <rviz/display.h>
50 #include <OGRE/OgreSceneNode.h>
51 #include <OGRE/OgreSceneManager.h>
52 #include <jsk_rviz_plugins/Pictogram.h>
53 #include "facing_visualizer.h"
54 #endif
55 
56 namespace jsk_rviz_plugins
57 {
58  void setupFont();
59  int addFont(unsigned char* data, unsigned int data_len);
60  bool isFontAwesome(std::string);
61  bool isEntypo(std::string);
62  bool isCharacterSupported(std::string character);
63  QFont getFont(std::string character);
64  QString lookupPictogramText(std::string character);
66  // PictogramObject
68  class PictogramObject: public FacingTexturedObject
69  {
70  public:
71 #if ROS_VERSION_MINIMUM(1,12,0)
72  typedef std::shared_ptr<PictogramObject> Ptr;
73 #else
75 #endif
76  PictogramObject(Ogre::SceneManager* manager,
77  Ogre::SceneNode* parent,
78  double size);
79  virtual void update(float wall_dt, float ros_dt);
80  virtual void setEnable(bool enable);
81  virtual void setText(std::string text);
82  virtual void setAlpha(double alpha);
83  virtual void setColor(QColor color);
84  virtual void setSize(double size);
85  virtual void setSpeed(double speed);
86  virtual void setPose(const geometry_msgs::Pose& pose,
87  const std::string& frame_id);
88  virtual void start();
89  virtual void setContext(rviz::DisplayContext* context);
90  virtual void setAction(uint8_t action);
91  virtual void setMode(uint8_t mode);
92  virtual void setTTL(double ttl);
93  protected:
94  virtual void updatePose(float dt);
95  virtual void updateColor();
96  virtual void updateText();
97 
98  bool need_to_update_;
99  uint8_t action_;
100  geometry_msgs::Pose pose_;
101  std::string frame_id_;
104  double ttl_;
105  double speed_;
106  uint8_t mode_;
107  private:
108 
109  };
110 
111 
113  // Display to visualize pictogram on rviz
115  class PictogramDisplay:
116  public rviz::MessageFilterDisplay<jsk_rviz_plugins::Pictogram>
117  {
118  Q_OBJECT
119  public:
121  virtual ~PictogramDisplay();
122  protected:
123 
125  // methods
127  virtual void onInitialize();
128  virtual void reset();
129  virtual void onEnable();
130  void processMessage(const jsk_rviz_plugins::Pictogram::ConstPtr& msg);
131  void update(float wall_dt, float ros_dt);
132 
134  // parameters
136  boost::mutex mutex_;
138  private Q_SLOTS:
139 
140  private:
141  };
142 }
143 
144 #endif
jsk_rviz_plugins::PictogramObject::setAction
virtual void setAction(uint8_t action)
Definition: pictogram_display.cpp:223
jsk_rviz_plugins::PictogramObject::updateColor
virtual void updateColor()
Definition: pictogram_display.cpp:360
jsk_rviz_plugins::PictogramObject::updateText
virtual void updateText()
Definition: pictogram_display.cpp:364
rviz::MessageFilterDisplay
jsk_rviz_plugins::PictogramObject::setColor
virtual void setColor(QColor color)
Definition: pictogram_display.cpp:368
jsk_rviz_plugins::PictogramObject::update
virtual void update(float wall_dt, float ros_dt)
Definition: pictogram_display.cpp:308
jsk_rviz_plugins::PictogramObject::PictogramObject
PictogramObject(Ogre::SceneManager *manager, Ogre::SceneNode *parent, double size)
Definition: pictogram_display.cpp:158
boost::shared_ptr< PictogramObject >
jsk_rviz_plugins::PictogramDisplay
Definition: pictogram_display.h:147
jsk_rviz_plugins::getFont
QFont getFont(std::string character)
Definition: pictogram_display.cpp:114
jsk_rviz_plugins::PictogramObject::ttl_
double ttl_
Definition: pictogram_display.h:136
pictogram.mode
mode
Definition: pictogram.py:1710
jsk_rviz_plugins::PictogramObject::setPose
virtual void setPose(const geometry_msgs::Pose &pose, const std::string &frame_id)
Definition: pictogram_display.cpp:201
jsk_rviz_plugins::PictogramDisplay::onInitialize
virtual void onInitialize()
Definition: pictogram_display.cpp:404
pictogram.character
character
Definition: pictogram.py:1718
jsk_rviz_plugins::PictogramObject::updatePose
virtual void updatePose(float dt)
Definition: pictogram_display.cpp:234
jsk_rviz_plugins::PictogramDisplay::mutex_
boost::mutex mutex_
Definition: pictogram_display.h:168
enum_property.h
jsk_rviz_plugins::PictogramObject::time_
ros::WallTime time_
Definition: pictogram_display.h:135
display.h
jsk_rviz_plugins::PictogramObject::setEnable
virtual void setEnable(bool enable)
Definition: pictogram_display.cpp:175
jsk_rviz_plugins::PictogramObject::start
virtual void start()
Definition: pictogram_display.cpp:183
jsk_rviz_plugins::isEntypo
bool isEntypo(std::string text)
Definition: pictogram_display.cpp:144
jsk_rviz_plugins::PictogramObject::setTTL
virtual void setTTL(double ttl)
Definition: pictogram_display.cpp:218
float_property.h
jsk_rviz_plugins::PictogramObject::need_to_update_
bool need_to_update_
Definition: pictogram_display.h:130
jsk_rviz_plugins::addFont
int addFont(unsigned char *data, unsigned int data_len)
Definition: pictogram_display.cpp:85
overlay_sample.text
text
Definition: overlay_sample.py:21
torus_array_sample.pose
pose
Definition: torus_array_sample.py:23
jsk_rviz_plugins::PictogramDisplay::~PictogramDisplay
virtual ~PictogramDisplay()
Definition: pictogram_display.cpp:399
jsk_rviz_plugins::PictogramDisplay::onEnable
virtual void onEnable()
Definition: pictogram_display.cpp:427
jsk_rviz_plugins::PictogramDisplay::update
void update(float wall_dt, float ros_dt)
Definition: pictogram_display.cpp:468
jsk_rviz_plugins::PictogramObject::setContext
virtual void setContext(rviz::DisplayContext *context)
Definition: pictogram_display.cpp:208
editable_enum_property.h
jsk_rviz_plugins::isCharacterSupported
bool isCharacterSupported(std::string character)
Definition: pictogram_display.cpp:104
jsk_rviz_plugins::PictogramObject::action_
uint8_t action_
Definition: pictogram_display.h:131
jsk_rviz_plugins::PictogramObject::setSize
virtual void setSize(double size)
Definition: pictogram_display.cpp:188
jsk_rviz_plugins::PictogramObject::setText
virtual void setText(std::string text)
Definition: pictogram_display.cpp:378
message_filter_display.h
contact_state_marker.alpha
alpha
Definition: contact_state_marker.py:90
rviz::DisplayContext
ros::WallTime
jsk_rviz_plugins::PictogramObject::setMode
virtual void setMode(uint8_t mode)
Definition: pictogram_display.cpp:213
tf_frame_property.h
jsk_rviz_plugins::lookupPictogramText
QString lookupPictogramText(std::string character)
Definition: pictogram_display.cpp:129
jsk_rviz_plugins::PictogramObject::setAlpha
virtual void setAlpha(double alpha)
Definition: pictogram_display.cpp:386
pictogram.speed
speed
Definition: pictogram.py:1711
facing_visualizer.h
jsk_rviz_plugins::PictogramDisplay::processMessage
void processMessage(const jsk_rviz_plugins::Pictogram::ConstPtr &msg)
Definition: pictogram_display.cpp:437
jsk_rviz_plugins::PictogramObject::mode_
uint8_t mode_
Definition: pictogram_display.h:138
jsk_rviz_plugins::PictogramObject::setSpeed
virtual void setSpeed(double speed)
Definition: pictogram_display.cpp:196
jsk_rviz_plugins::setupFont
void setupFont()
Definition: pictogram_font_mapping.h:74
jsk_rviz_plugins::PictogramObject::frame_id_
std::string frame_id_
Definition: pictogram_display.h:133
string_property.h
jsk_rviz_plugins::PictogramDisplay::pictogram_
PictogramObject::Ptr pictogram_
Definition: pictogram_display.h:169
jsk_rviz_plugins::PictogramDisplay::reset
virtual void reset()
Definition: pictogram_display.cpp:421
jsk_rviz_plugins::PictogramObject::speed_
double speed_
Definition: pictogram_display.h:137
pictogram.size
size
Definition: pictogram.py:1713
jsk_rviz_plugins::PictogramObject::Ptr
boost::shared_ptr< PictogramObject > Ptr
Definition: pictogram_display.h:106
jsk_rviz_plugins
Definition: __init__.py:1
jsk_rviz_plugins::PictogramObject::pose_
geometry_msgs::Pose pose_
Definition: pictogram_display.h:132
color_property.h
jsk_rviz_plugins::PictogramObject::context_
rviz::DisplayContext * context_
Definition: pictogram_display.h:134
ros_topic_property.h
jsk_rviz_plugins::PictogramDisplay::PictogramDisplay
PictogramDisplay()
Definition: pictogram_display.cpp:394
overlay_menu_sample.action
action
Definition: overlay_menu_sample.py:17
jsk_rviz_plugins::isFontAwesome
bool isFontAwesome(std::string text)
Definition: pictogram_display.cpp:151


jsk_rviz_plugins
Author(s): Kei Okada , Yohei Kakiuchi , Shohei Fujii , Ryohei Ueda
autogenerated on Fri Aug 2 2024 08:50:14