14 #include <mrpt/version.h> 15 #if MRPT_VERSION >= 0x270 16 #include <mrpt/opengl/CSkyBox.h> 25 using namespace mvsim;
42 std::string texturesPattern;
45 params[
"textures"] =
TParamEntry(
"%s", &texturesPattern);
51 !texturesPattern.empty(),
52 "Textures must be defined in a <textures>...</textures> tag.");
55 texturesPattern.find(
"%s") != std::string::npos,
56 "Texture pattern URI in <textures>...</textures> must contain one '%s' " 59 #if MRPT_VERSION >= 0x270 60 using mrpt::opengl::CUBE_TEXTURE_FACE;
62 const std::vector<std::pair<CUBE_TEXTURE_FACE, const char*>> faceImages = {
63 {CUBE_TEXTURE_FACE::FRONT,
"Front"},
64 {CUBE_TEXTURE_FACE::BACK,
"Back"},
65 {CUBE_TEXTURE_FACE::BOTTOM,
"Down"},
66 {CUBE_TEXTURE_FACE::TOP,
"Up"},
67 {CUBE_TEXTURE_FACE::LEFT,
"Left"},
68 {CUBE_TEXTURE_FACE::RIGHT,
"Right"},
71 auto sb = mrpt::opengl::CSkyBox::Create();
73 for (
const auto& p : faceImages)
75 std::string fil = mrpt::format(texturesPattern.c_str(), p.second);
80 sb->assignImage(p.first, mrpt::img::CImage::LoadFromFile(fil));
86 <<
"[mvsim::SkyBox] Ignoring SkyBox since MRPT>=2.7.0 is not available." 92 const mrpt::optional_ref<mrpt::opengl::COpenGLScene>& viz,
93 const mrpt::optional_ref<mrpt::opengl::COpenGLScene>& physical,
94 [[maybe_unused]]
bool childrenOnly)
This file contains rapidxml parser and DOM implementation.
mrpt::opengl::CRenderizable::Ptr glSkyBox_
std::map< std::string, TParamEntry > TParameterDefinitions
void parse_xmlnode_children_as_param(const rapidxml::xml_node< char > &xml_node, const TParameterDefinitions ¶ms, const std::map< std::string, std::string > &variableNamesValues={}, const char *functionNameContext="", mrpt::system::COutputLogger *logger=nullptr)
virtual void internalGuiUpdate(const mrpt::optional_ref< mrpt::opengl::COpenGLScene > &viz, const mrpt::optional_ref< mrpt::opengl::COpenGLScene > &physical, bool childrenOnly) override
virtual void loadConfigFrom(const rapidxml::xml_node< char > *root) override
const std::map< std::string, std::string > & user_defined_variables() const
mrpt::opengl::CRenderizable::Ptr glSkyBoxPrepared_
std::string xmlPathToActualPath(const std::string &modelURI) const