00001 /*+-------------------------------------------------------------------------+ 00002 | MultiVehicle simulator (libmvsim) | 00003 | | 00004 | Copyright (C) 2014 Jose Luis Blanco Claraco (University of Almeria) | 00005 | Copyright (C) 2017 Borys Tymchenko (Odessa Polytechnic University) | 00006 | Distributed under GNU General Public License version 3 | 00007 | See <http://www.gnu.org/licenses/> | 00008 +-------------------------------------------------------------------------+ */ 00009 00010 #pragma once 00011 00012 #include <mvsim/WorldElements/WorldElementBase.h> 00013 #include <mrpt/opengl/CGridPlaneXY.h> 00014 00015 #include <mrpt/version.h> 00016 #if MRPT_VERSION<0x199 00017 #include <mrpt/utils/TColor.h> 00018 using mrpt::utils::TColor; 00019 using mrpt::utils::TColorf; 00020 #else 00021 #include <mrpt/img/TColor.h> 00022 using mrpt::img::TColor; 00023 using mrpt::img::TColorf; 00024 #endif 00025 00026 00027 namespace mvsim 00028 { 00029 class GroundGrid : public WorldElementBase 00030 { 00031 DECLARES_REGISTER_WORLD_ELEMENT(GroundGrid) 00032 public: 00033 GroundGrid(World* parent, const rapidxml::xml_node<char>* root); 00034 virtual ~GroundGrid(); 00035 00036 virtual void loadConfigFrom( 00037 const rapidxml::xml_node<char>* root); 00038 virtual void gui_update( 00039 mrpt::opengl::COpenGLScene& scene); 00040 00041 protected: 00042 bool m_is_floating; 00043 std::string m_float_center_at_vehicle_name; 00044 double m_x_min, m_x_max, m_y_min, m_y_max, m_interval; 00045 TColor m_color; 00046 double m_line_width; 00047 00048 mrpt::opengl::CGridPlaneXY::Ptr m_gl_groundgrid; 00049 }; 00050 }