MVSim
Lightweight simulator for 2.5D vehicles and robots
SkyBox.h
1 /*+-------------------------------------------------------------------------+
2  | MultiVehicle simulator (libmvsim) |
3  | |
4  | Copyright (C) 2014-2026 Jose Luis Blanco Claraco |
5  | Copyright (C) 2017 Borys Tymchenko (Odessa Polytechnic University) |
6  | Distributed under 3-clause BSD License |
7  | See COPYING |
8  +-------------------------------------------------------------------------+ */
9 
10 #pragma once
11 
12 #include <mrpt/opengl/CSetOfObjects.h>
13 #include <mvsim/WorldElements/WorldElementBase.h>
14 
15 namespace mvsim
16 {
23 class SkyBox : public WorldElementBase
24 {
25  DECLARES_REGISTER_WORLD_ELEMENT(SkyBox)
26  public:
27  SkyBox(World* parent, const rapidxml::xml_node<char>* root);
28  virtual ~SkyBox();
29 
30  virtual void loadConfigFrom(const rapidxml::xml_node<char>* root) override;
31 
32  protected:
33  virtual void internalGuiUpdate(
34  const mrpt::optional_ref<mrpt::opengl::COpenGLScene>& viz,
35  const mrpt::optional_ref<mrpt::opengl::COpenGLScene>& physical, bool childrenOnly) override;
36 
37  // It holds a CSkyBox object. Stored as base CRenderizable to prevent
38  // depending in this public header on mrpt >=2.7.0 so mvsim can still be
39  // built with older mrpt versions.
40  mrpt::opengl::CRenderizable::Ptr glSkyBox_;
41 
42  mrpt::opengl::CRenderizable::Ptr glSkyBoxPrepared_;
43 };
44 } // namespace mvsim
Definition: SkyBox.h:24
Definition: WorldElementBase.h:28
Definition: World.h:132