37#ifndef RVIZ_2D_OVERLAY_PLUGINS_OVERLAY_UTILS_HPP
38#define RVIZ_2D_OVERLAY_PLUGINS_OVERLAY_UTILS_HPP
40#include <OgreHardwarePixelBuffer.h>
41#include <OgreMaterialManager.h>
42#include <OgreTechnique.h>
43#include <OgreTexture.h>
44#include <OgreTextureManager.h>
45#include <Overlay/OgreOverlay.h>
46#include <Overlay/OgreOverlayContainer.h>
47#include <Overlay/OgreOverlayElement.h>
48#include <Overlay/OgreOverlayManager.h>
49#include <Overlay/OgrePanelOverlayElement.h>
55#include "rviz_2d_overlay_msgs/msg/overlay_text.hpp"
57namespace rviz_2d_overlay_plugins {
64 virtual Ogre::HardwarePixelBufferSharedPtr getPixelBuffer();
65 virtual QImage getQImage(
unsigned int width,
unsigned int height);
67 virtual QImage getQImage(
unsigned int width,
unsigned int height, QColor &bg_color);
68 virtual QImage getQImage(
OverlayObject &overlay, QColor &bg_color);
71 Ogre::HardwarePixelBufferSharedPtr pixel_buffer_;
74 enum class VerticalAlignment : uint8_t {
75 CENTER = rviz_2d_overlay_msgs::msg::OverlayText::CENTER,
76 TOP = rviz_2d_overlay_msgs::msg::OverlayText::TOP,
77 BOTTOM = rviz_2d_overlay_msgs::msg::OverlayText::BOTTOM,
80 enum class HorizontalAlignment : uint8_t {
81 LEFT = rviz_2d_overlay_msgs::msg::OverlayText::LEFT,
82 RIGHT = rviz_2d_overlay_msgs::msg::OverlayText::RIGHT,
83 CENTER = rviz_2d_overlay_msgs::msg::OverlayText::CENTER
94 using SharedPtr = std::shared_ptr<OverlayObject>;
99 virtual std::string getName()
const;
102 virtual bool isTextureReady()
const;
103 virtual void updateTextureSize(
unsigned int width,
unsigned int height);
105 virtual void setPosition(
double hor_dist,
double ver_dist,
106 HorizontalAlignment hor_alignment = HorizontalAlignment::LEFT,
107 VerticalAlignment ver_alignment = VerticalAlignment::TOP);
108 virtual void setDimensions(
double width,
double height);
109 virtual bool isVisible()
const;
110 virtual unsigned int getTextureWidth()
const;
111 virtual unsigned int getTextureHeight()
const;
114 const std::string name_;
115 Ogre::Overlay *overlay_;
116 Ogre::PanelOverlayElement *panel_;
117 Ogre::MaterialPtr panel_material_;
118 Ogre::TexturePtr texture_;
Definition overlay_utils.hpp:92
Definition overlay_utils.hpp:60