Ignition Rendering

API Reference

5.1.0
BaseScene.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015 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 #ifndef IGNITION_RENDERING_BASE_BASESCENE_HH_
18 #define IGNITION_RENDERING_BASE_BASESCENE_HH_
19 
20 #include <array>
21 #include <set>
22 #include <string>
23 
26 
30 
31 namespace ignition
32 {
33  namespace rendering
34  {
35  inline namespace IGNITION_RENDERING_VERSION_NAMESPACE {
36  //
37  class IGNITION_RENDERING_VISIBLE BaseScene :
39  public std::enable_shared_from_this<BaseScene>,
41  public virtual Scene
42  {
43  protected: BaseScene(unsigned int _id, const std::string &_name);
44 
45  public: virtual ~BaseScene();
46 
47  public: virtual void Load() override;
48 
49  public: virtual void Init() override;
50 
51  public: virtual void Fini() override;
52 
53  public: virtual bool IsLoaded() const;
54 
55  public: virtual bool IsInitialized() const override;
56 
57  public: virtual unsigned int Id() const override;
58 
59  public: virtual std::string Name() const override;
60 
61  public: virtual void IGN_DEPRECATED(4)
62  SetSimTime(const common::Time &_time) override;
63 
64  public: virtual common::Time IGN_DEPRECATED(4) SimTime() const override;
65 
66  public: virtual std::chrono::steady_clock::duration Time()
67  const override;
68 
69  public: virtual void SetTime(
70  const std::chrono::steady_clock::duration &_time) override;
71 
72  public: virtual void SetAmbientLight(double _r, double _g, double _b,
73  double _a = 1.0) override;
74 
75  public: virtual void SetAmbientLight(const math::Color &_color)
76  override = 0;
77 
78  public: virtual math::Color BackgroundColor() const override;
79 
80  public: virtual void SetBackgroundColor(double _r, double _g, double _b,
81  double _a = 1.0) override;
82 
83  public: virtual void SetBackgroundColor(const math::Color &_color)
84  override;
85 
86  // Documentation inherited.
87  public: virtual bool IsGradientBackgroundColor() const override;
88 
89  // Documentation inherited.
90  public: virtual std::array<math::Color, 4> GradientBackgroundColor()
91  const override;
92 
93  // Documentation inherited.
94  public: virtual void SetGradientBackgroundColor(
95  const std::array<math::Color, 4> &_colors) override;
96 
97  // Documentation inherited.
98  public: virtual void RemoveGradientBackgroundColor() override;
99 
100  // Documentation inherited.
101  public: virtual MaterialPtr BackgroundMaterial() const override;
102 
103  // Documentation inherited.
104  public: virtual void SetBackgroundMaterial(MaterialPtr _material)
105  override;
106 
107  public: virtual unsigned int NodeCount() const override;
108 
109  public: virtual bool HasNode(ConstNodePtr _node) const override;
110 
111  public: virtual bool HasNodeId(unsigned int _id) const override;
112 
113  public: virtual bool HasNodeName(const std::string &_name) const override;
114 
115  public: virtual NodePtr NodeById(unsigned int _id) const override;
116 
117  public: virtual NodePtr NodeByName(const std::string &_name) const
118  override;
119 
120  public: virtual NodePtr NodeByIndex(unsigned int _index) const override;
121 
122  // Documentation inherited.
123  public: virtual void DestroyNode(NodePtr _node, bool _recursive = false)
124  override;
125 
126  public: virtual void DestroyNodeById(unsigned int _id) override;
127 
128  public: virtual void DestroyNodeByName(const std::string &_name) override;
129 
130  public: virtual void DestroyNodeByIndex(unsigned int _index) override;
131 
132  public: virtual void DestroyNodes() override;
133 
134  public: virtual unsigned int LightCount() const override;
135 
136  public: virtual bool HasLight(ConstLightPtr _light) const override;
137 
138  public: virtual bool HasLightId(unsigned int _id) const override;
139 
140  public: virtual bool HasLightName(const std::string &_name) const
141  override;
142 
143  public: virtual LightPtr LightById(unsigned int _id) const override;
144 
145  public: virtual LightPtr LightByName(const std::string &_name) const
146  override;
147 
148  public: virtual LightPtr LightByIndex(unsigned int _index) const override;
149 
150  // Documentation inherited.
151  public: virtual void DestroyLight(LightPtr _light,
152  bool _recursive = false) override;
153 
154  public: virtual void DestroyLightById(unsigned int _id) override;
155 
156  public: virtual void DestroyLightByName(const std::string &_name)
157  override;
158 
159  public: virtual void DestroyLightByIndex(unsigned int _index) override;
160 
161  public: virtual void DestroyLights() override;
162 
163  public: virtual unsigned int SensorCount() const override;
164 
165  public: virtual bool HasSensor(ConstSensorPtr _sensor) const override;
166 
167  public: virtual bool HasSensorId(unsigned int _id) const override;
168 
169  public: virtual bool HasSensorName(const std::string &_name) const
170  override;
171 
172  public: virtual SensorPtr SensorById(unsigned int _id) const override;
173 
174  public: virtual SensorPtr SensorByName(const std::string &_name) const
175  override;
176 
177  public: virtual SensorPtr SensorByIndex(unsigned int _index) const
178  override;
179 
180  // Documentation inherited.
181  public: virtual void DestroySensor(SensorPtr _sensor,
182  bool _recursive = false) override;
183 
184  public: virtual void DestroySensorById(unsigned int _id) override;
185 
186  public: virtual void DestroySensorByName(const std::string &_name)
187  override;
188 
189  public: virtual void DestroySensorByIndex(unsigned int _index) override;
190 
191  public: virtual void DestroySensors() override;
192 
193  public: virtual unsigned int VisualCount() const override;
194 
195  public: virtual bool HasVisual(ConstVisualPtr _visual) const override;
196 
197  public: virtual bool HasVisualId(unsigned int _id) const override;
198 
199  public: virtual bool HasVisualName(const std::string &_name) const
200  override;
201 
202  public: virtual VisualPtr VisualById(unsigned int _id) const override;
203 
204  public: virtual VisualPtr VisualByName(const std::string &_name) const
205  override;
206 
207  public: virtual VisualPtr VisualByIndex(unsigned int _index) const
208  override;
209 
210  // Documentation inherited
211  public: virtual VisualPtr VisualAt(const CameraPtr &_camera,
212  const ignition::math::Vector2i &_mousePos) override;
213 
214  // Documentation inherited.
215  public: virtual void DestroyVisual(VisualPtr _visual,
216  bool _recursive = false) override;
217 
218  public: virtual void DestroyVisualById(unsigned int _id) override;
219 
220  public: virtual void DestroyVisualByName(const std::string &_name)
221  override;
222 
223  public: virtual void DestroyVisualByIndex(unsigned int _index) override;
224 
225  public: virtual void DestroyVisuals() override;
226 
227  public: virtual bool MaterialRegistered(const std::string &_name) const
228  override;
229 
230  public: virtual MaterialPtr Material(const std::string &_name) const
231  override;
232 
233  public: virtual void RegisterMaterial(const std::string &_name,
234  MaterialPtr _material) override;
235 
236  public: virtual void UnregisterMaterial(const std::string &_name)
237  override;
238 
239  public: virtual void UnregisterMaterials() override;
240 
241  // Documentation inherited
242  public: virtual void DestroyMaterial(MaterialPtr _material) override;
243 
244  // Documentation inherited
245  public: virtual void DestroyMaterials() override;
246 
247  public: virtual DirectionalLightPtr CreateDirectionalLight() override;
248 
249  public: virtual DirectionalLightPtr CreateDirectionalLight(
250  unsigned int _id) override;
251 
252  public: virtual DirectionalLightPtr CreateDirectionalLight(
253  const std::string &_name) override;
254 
255  public: virtual DirectionalLightPtr CreateDirectionalLight(
256  unsigned int _id, const std::string &_name) override;
257 
258  public: virtual PointLightPtr CreatePointLight() override;
259 
260  public: virtual PointLightPtr CreatePointLight(unsigned int _id) override;
261 
262  public: virtual PointLightPtr CreatePointLight(const std::string &_name)
263  override;
264 
265  public: virtual PointLightPtr CreatePointLight(unsigned int _id,
266  const std::string &_name) override;
267 
271  protected: virtual LightVisualPtr CreateLightVisualImpl(unsigned int _id,
272  const std::string &_name) = 0;
273 
274  public: virtual SpotLightPtr CreateSpotLight() override;
275 
276  public: virtual SpotLightPtr CreateSpotLight(unsigned int _id) override;
277 
278  public: virtual SpotLightPtr CreateSpotLight(const std::string &_name)
279  override;
280 
281  public: virtual SpotLightPtr CreateSpotLight(unsigned int _id,
282  const std::string &_name) override;
283 
284  public: virtual CameraPtr CreateCamera() override;
285 
286  public: virtual CameraPtr CreateCamera(unsigned int _id) override;
287 
288  public: virtual CameraPtr CreateCamera(const std::string &_name) override;
289 
290  public: virtual CameraPtr CreateCamera(unsigned int _id,
291  const std::string &_name) override;
292 
293  public: virtual DepthCameraPtr CreateDepthCamera() override;
294 
295  public: virtual DepthCameraPtr CreateDepthCamera(const unsigned int _id)
296  override;
297 
298  public: virtual DepthCameraPtr CreateDepthCamera(
299  const std::string &_name) override;
300 
301  public: virtual DepthCameraPtr CreateDepthCamera(const unsigned int _id,
302  const std::string &_name) override;
303 
304  // Documentation inherited.
305  public: virtual ThermalCameraPtr CreateThermalCamera() override;
306 
307  // Documentation inherited.
308  public: virtual ThermalCameraPtr CreateThermalCamera(
309  const unsigned int _id) override;
310 
311  // Documentation inherited.
312  public: virtual ThermalCameraPtr CreateThermalCamera(
313  const std::string &_name) override;
314 
315  // Documentation inherited.
316  public: virtual ThermalCameraPtr CreateThermalCamera(
317  const unsigned int _id, const std::string &_name) override;
318 
319  // Documentation inherited.
320  public: virtual GpuRaysPtr CreateGpuRays() override;
321 
322  // Documentation inherited.
323  public: virtual GpuRaysPtr CreateGpuRays(const unsigned int _id) override;
324 
325  // Documentation inherited.
326  public: virtual GpuRaysPtr CreateGpuRays(
327  const std::string &_name) override;
328 
329  // Documentation inherited.
330  public: virtual GpuRaysPtr CreateGpuRays(const unsigned int _id,
331  const std::string &_name) override;
332 
333  public: virtual VisualPtr CreateVisual() override;
334 
335  public: virtual VisualPtr CreateVisual(unsigned int _id) override;
336 
337  public: virtual VisualPtr CreateVisual(const std::string &_name) override;
338 
339  public: virtual VisualPtr CreateVisual(unsigned int _id,
340  const std::string &_name) override;
341 
342  public: virtual ArrowVisualPtr CreateArrowVisual() override;
343 
344  public: virtual ArrowVisualPtr CreateArrowVisual(unsigned int _id)
345  override;
346 
347  public: virtual ArrowVisualPtr CreateArrowVisual(
348  const std::string &_name) override;
349 
350  public: virtual ArrowVisualPtr CreateArrowVisual(unsigned int _id,
351  const std::string &_name) override;
352 
353  public: virtual AxisVisualPtr CreateAxisVisual() override;
354 
355  public: virtual AxisVisualPtr CreateAxisVisual(unsigned int _id) override;
356 
357  public: virtual AxisVisualPtr CreateAxisVisual(const std::string &_name)
358  override;
359 
360  public: virtual AxisVisualPtr CreateAxisVisual(unsigned int _id,
361  const std::string &_name) override;
362 
363  // Documentation inherited
364  public: virtual LightVisualPtr CreateLightVisual() override;
365 
366  // Documentation inherited
367  public: virtual LightVisualPtr CreateLightVisual(unsigned int _id)
368  override;
369 
370  // Documentation inherited
371  public: virtual LightVisualPtr CreateLightVisual(const std::string &_name)
372  override;
373 
374  // Documentation inherited
375  public: virtual LightVisualPtr CreateLightVisual(unsigned int _id,
376  const std::string &_name) override;
377 
378  // Documentation inherited
379  public: virtual GizmoVisualPtr CreateGizmoVisual() override;
380 
381  // Documentation inherited
382  public: virtual GizmoVisualPtr CreateGizmoVisual(unsigned int _id)
383  override;
384 
385  // Documentation inherited
386  public: virtual GizmoVisualPtr CreateGizmoVisual(const std::string &_name)
387  override;
388 
389  // Documentation inherited
390  public: virtual GizmoVisualPtr CreateGizmoVisual(unsigned int _id,
391  const std::string &_name) override;
392 
393 
394  public: virtual GeometryPtr CreateBox() override;
395 
396  public: virtual GeometryPtr CreateCone() override;
397 
398  public: virtual GeometryPtr CreateCylinder() override;
399 
400  public: virtual GeometryPtr CreatePlane() override;
401 
402  public: virtual GeometryPtr CreateSphere() override;
403 
404  public: virtual MeshPtr CreateMesh(const std::string &_meshName) override;
405 
406  public: virtual MeshPtr CreateMesh(const common::Mesh *_mesh) override;
407 
408  public: virtual MeshPtr CreateMesh(const MeshDescriptor &_desc) override;
409 
410  // Documentation inherited.
411  public: virtual CapsulePtr CreateCapsule() override;
412 
413  // Documentation inherited.
414  public: virtual GridPtr CreateGrid() override;
415 
416  // Documentation inherited.
417  public: virtual MarkerPtr CreateMarker() override;
418 
419  // Documentation inherited.
420  public: virtual LidarVisualPtr CreateLidarVisual() override;
421 
422  // Documentation inherited.
423  public: virtual LidarVisualPtr CreateLidarVisual(
424  unsigned int _id) override;
425 
426  // Documentation inherited.
427  public: virtual LidarVisualPtr CreateLidarVisual(
428  const std::string &_name) override;
429 
430  // Documentation inherited.
431  public: virtual LidarVisualPtr CreateLidarVisual(unsigned int _id,
432  const std::string &_name) override;
433 
434  // Documentation inherited.
435  public: virtual HeightmapPtr CreateHeightmap(
436  const HeightmapDescriptor &_desc) override;
437 
438  // Documentation inherited.
439  public: virtual WireBoxPtr CreateWireBox() override;
440 
441  // Documentation inherited.
442  public: virtual TextPtr CreateText() override;
443 
444  public: virtual MaterialPtr CreateMaterial(const std::string &_name = "")
445  override;
446 
447  public: virtual MaterialPtr CreateMaterial(
448  const common::Material &_material) override;
449 
450  public: virtual RenderTexturePtr CreateRenderTexture() override;
451 
452  // Documentation inherited.
453  public: virtual RenderWindowPtr CreateRenderWindow() override;
454 
455  public: virtual RayQueryPtr CreateRayQuery() override;
456 
457  // Documentation inherited.
458  public: virtual ParticleEmitterPtr CreateParticleEmitter() override;
459 
460  // Documentation inherited.
461  public: virtual ParticleEmitterPtr CreateParticleEmitter(unsigned int _id)
462  override;
463 
464  // Documentation inherited.
465  public: virtual ParticleEmitterPtr CreateParticleEmitter(
466  const std::string &_name) override;
467 
468  // Documentation inherited.
469  public: virtual ParticleEmitterPtr CreateParticleEmitter(
470  unsigned int _id, const std::string &_name) override;
471 
472  // Documentation inherited.
473  public: virtual void SetSkyEnabled(bool _enabled) override;
474 
475  // Documentation inherited.
476  public: virtual bool SkyEnabled() const override;
477 
478  public: virtual void PreRender() override;
479 
480  public: virtual void Clear() override;
481 
482  public: virtual void Destroy() override;
483 
484  protected: virtual unsigned int CreateObjectId();
485 
486  protected: virtual std::string CreateObjectName(unsigned int _id,
487  const std::string &_prefix);
488 
489  protected: virtual bool RegisterLight(LightPtr _light);
490 
491  protected: virtual bool RegisterSensor(SensorPtr _vensor);
492 
493  protected: virtual bool RegisterVisual(VisualPtr _visual);
494 
495  protected: virtual DirectionalLightPtr CreateDirectionalLightImpl(
496  unsigned int _id, const std::string &_name) = 0;
497 
498  protected: virtual PointLightPtr CreatePointLightImpl(unsigned int _id,
499  const std::string &_name) = 0;
500 
501  protected: virtual SpotLightPtr CreateSpotLightImpl(unsigned int _id,
502  const std::string &_name) = 0;
503 
504  protected: virtual CameraPtr CreateCameraImpl(unsigned int _id,
505  const std::string &_name) = 0;
506 
507  protected: virtual DepthCameraPtr CreateDepthCameraImpl(unsigned int _id,
508  const std::string &_name) = 0;
509 
514  unsigned int _id, const std::string &_name)
515  {
516  // The following two lines will avoid doxygen warnings
517  (void)_id;
518  (void)_name;
519  ignerr << "Thermal camera not supported by: "
520  << this->Engine()->Name() << std::endl;
521  return ThermalCameraPtr();
522  }
523 
527  protected: virtual GpuRaysPtr CreateGpuRaysImpl(unsigned int _id,
528  const std::string & _name)
529  {
530  (void)_id;
531  (void)_name;
532  ignerr << "GpuRays not supported by: "
533  << this->Engine()->Name() << std::endl;
534  return GpuRaysPtr();
535  }
536 
537  protected: virtual VisualPtr CreateVisualImpl(unsigned int _id,
538  const std::string &_name) = 0;
539 
540  protected: virtual ArrowVisualPtr CreateArrowVisualImpl(unsigned int _id,
541  const std::string &_name) = 0;
542 
543  protected: virtual AxisVisualPtr CreateAxisVisualImpl(unsigned int _id,
544  const std::string &_name) = 0;
545 
549  protected: virtual GizmoVisualPtr CreateGizmoVisualImpl(unsigned int _id,
550  const std::string &_name)
551  {
552  (void)_id;
553  (void)_name;
554  ignerr << "GizmoVisual not supported by: "
555  << this->Engine()->Name() << std::endl;
556  return GizmoVisualPtr();
557  }
558 
559  protected: virtual GeometryPtr CreateBoxImpl(unsigned int _id,
560  const std::string &_name) = 0;
561 
562  protected: virtual GeometryPtr CreateConeImpl(unsigned int _id,
563  const std::string &_name) = 0;
564 
565  protected: virtual GeometryPtr CreateCylinderImpl(unsigned int _id,
566  const std::string &_name) = 0;
567 
568  protected: virtual GeometryPtr CreatePlaneImpl(unsigned int _id,
569  const std::string &_name) = 0;
570 
571  protected: virtual GeometryPtr CreateSphereImpl(unsigned int _id,
572  const std::string &_name) = 0;
573 
574  protected: virtual MeshPtr CreateMeshImpl(unsigned int _id,
575  const std::string &_name,
576  const MeshDescriptor &_desc) = 0;
577 
582  protected: virtual CapsulePtr CreateCapsuleImpl(unsigned int _id,
583  const std::string &_name) = 0;
584 
589  protected: virtual GridPtr CreateGridImpl(unsigned int _id,
590  const std::string &_name) = 0;
591 
596  protected: virtual MarkerPtr CreateMarkerImpl(unsigned int _id,
597  const std::string &_name) = 0;
598 
603  protected: virtual LidarVisualPtr CreateLidarVisualImpl(unsigned int _id,
604  const std::string &_name) = 0;
605 
611  protected: virtual HeightmapPtr CreateHeightmapImpl(unsigned int _id,
612  const std::string &_name,
613  const HeightmapDescriptor &_desc) = 0;
614 
619  protected: virtual WireBoxPtr CreateWireBoxImpl(unsigned int _id,
620  const std::string &_name) = 0;
621 
626  protected: virtual TextPtr CreateTextImpl(unsigned int _id,
627  const std::string &_name);
628 
629  protected: virtual MaterialPtr CreateMaterialImpl(unsigned int _id,
630  const std::string &_name) = 0;
631 
632  protected: virtual RenderTexturePtr CreateRenderTextureImpl(
633  unsigned int _id, const std::string &_name) = 0;
634 
640  protected: virtual RenderWindowPtr CreateRenderWindowImpl(
641  unsigned int _id, const std::string &_name) = 0;
642 
643  protected: virtual RayQueryPtr CreateRayQueryImpl(
644  unsigned int _id, const std::string &_name) = 0;
645 
651  unsigned int _id, const std::string &_name)
652  {
653  (void)_id;
654  (void)_name;
655  ignerr << "ParticleEmitter not supported by: "
656  << this->Engine()->Name() << std::endl;
657  return ParticleEmitterPtr();
658  }
659 
660  protected: virtual LightStorePtr Lights() const = 0;
661 
662  protected: virtual SensorStorePtr Sensors() const = 0;
663 
664  protected: virtual VisualStorePtr Visuals() const = 0;
665 
666  protected: virtual MaterialMapPtr Materials() const = 0;
667 
668  protected: virtual bool LoadImpl() = 0;
669 
670  protected: virtual bool InitImpl() = 0;
671 
672  private: virtual void CreateNodeStore();
673 
674  private: virtual void CreateMaterials();
675 
681  private: void DestroyNodeRecursive(NodePtr _node,
682  std::set<unsigned int> &_nodeIds);
683 
684  protected: unsigned int id;
685 
687  protected: std::string name;
689 
690  protected: common::Time IGN_DEPRECATED(4) simTime;
691 
692  protected: std::chrono::steady_clock::duration time =
693  std::chrono::steady_clock::duration::zero();
694 
695  protected: bool loaded;
696 
697  protected: bool initialized;
698 
700  protected: math::Color backgroundColor;
701 
709  protected: std::array<math::Color, 4> gradientBackgroundColor;
710 
712  protected: bool isGradientBackgroundColor = false;
713 
715  protected: MaterialPtr backgroundMaterial;
716 
717  private: unsigned int nextObjectId;
718 
719  IGN_COMMON_WARN_IGNORE__DLL_INTERFACE_MISSING
720  private: NodeStorePtr nodes;
721  IGN_COMMON_WARN_RESUME__DLL_INTERFACE_MISSING
722  };
723  }
724  }
725 }
726 #endif
virtual ThermalCameraPtr CreateThermalCameraImpl(unsigned int _id, const std::string &_name)
Implementation for creating a thermal camera.
Definition: BaseScene.hh:513
virtual ParticleEmitterPtr CreateParticleEmitterImpl(unsigned int _id, const std::string &_name)
Implementation for creating a ParticleEmitter.
Definition: BaseScene.hh:650
Describes how a Mesh should be loaded.
Definition: MeshDescriptor.hh:44
shared_ptr< ParticleEmitter > ParticleEmitterPtr
Shared pointer to ParticleEmitter.
Definition: RenderTypes.hh:190
T endl(T... args)
STL namespace.
#define IGN_COMMON_WARN_RESUME__DLL_INTERFACE_MISSING
STL class.
virtual GizmoVisualPtr CreateGizmoVisualImpl(unsigned int _id, const std::string &_name)
Implementation for creating a GizmoVisual.
Definition: BaseScene.hh:549
Manages a single scene-graph. This class updates scene-wide properties and holds the root scene node...
Definition: Scene.hh:49
std::string name
Definition: BaseScene.hh:687
Definition: BaseScene.hh:37
shared_ptr< GpuRays > GpuRaysPtr
Shared pointer to GpuRays.
Definition: RenderTypes.hh:114
Describes how a Heightmap should be loaded.
Definition: HeightmapDescriptor.hh:146
STL class.
#define ignerr
STL class.
unsigned int id
Definition: BaseScene.hh:684
Represents a surface material of a Geometry.
Definition: Material.hh:47
virtual GpuRaysPtr CreateGpuRaysImpl(unsigned int _id, const std::string &_name)
Implementation for creating GpuRays sensor.
Definition: BaseScene.hh:527
shared_ptr< GizmoVisual > GizmoVisualPtr
Shared pointer to GizmoVisual.
Definition: RenderTypes.hh:130
#define IGN_COMMON_WARN_IGNORE__DLL_INTERFACE_MISSING
shared_ptr< ThermalCamera > ThermalCameraPtr
Shared pointer to ThermalCamera.
Definition: RenderTypes.hh:110