Gazebo Rendering

API Reference

9.0.0~pre2
OgreThermalCamera.hh
Go to the documentation of this file.
1/*
2 * Copyright (C) 2019 Open Source Robotics Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16*/
17
18#ifndef GZ_RENDERING_OGRE_OGRETHERMALCAMERA_HH_
19#define GZ_RENDERING_OGRE_OGRETHERMALCAMERA_HH_
20
21#ifdef _WIN32
22 // Ensure that Winsock2.h is included before Windows.h, which can get
23 // pulled in by anybody (e.g., Boost).
24 #include <Winsock2.h>
25#endif
26
27#include <memory>
28#include <string>
29
32#include "gz/rendering/ogre/Export.hh"
40
41#include "gz/common/Event.hh"
42#include "gz/common/Console.hh"
43
44
45namespace Ogre
46{
47 class Material;
48 class Camera;
49}
50
51namespace gz
52{
53 namespace rendering
54 {
55 inline namespace GZ_RENDERING_VERSION_NAMESPACE {
56 //
57 // forward declaration
58 class OgreThermalCameraPrivate;
59
64 class GZ_RENDERING_OGRE_VISIBLE OgreThermalCamera :
65 public virtual BaseThermalCamera<OgreSensor>,
66 public virtual OgreObjectInterface
67 {
69 protected: OgreThermalCamera();
70
72 public: virtual ~OgreThermalCamera();
73
75 public: virtual void Init() override;
76
78 public: virtual void CreateRenderTexture();
79
82 protected: void DestroyRenderTexture();
83
85 public: virtual void PostRender() override;
86
91 std::function<void(const uint16_t *, unsigned int, unsigned int,
92 unsigned int, const std::string &)> _subscriber) override;
93
94 // Documentation inherited.
95 public: virtual void PreRender() override;
96
98 public: virtual void Render() override;
99
100 // Documentation inherited
101 public: virtual void Destroy() override;
102
103 // Documentation inherited.
104 public: virtual Ogre::Camera *Camera() const override;
105
108 protected: virtual RenderTargetPtr RenderTarget() const override;
109
111 protected: void CreateCamera();
112
114 private: void CreateThermalTexture();
115
117 protected: Ogre::Camera *ogreCamera = nullptr;
118
122
123 private: friend class OgreScene;
124 };
125 }
126 }
127}
128#endif