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/basic_types.h> 00013 00014 namespace mvsim 00015 { 00016 class World; 00017 00020 class VisualObject 00021 { 00022 public: 00023 VisualObject(World* parent) : m_world(parent) {} 00024 virtual ~VisualObject() {} 00027 virtual void gui_update(mrpt::opengl::COpenGLScene& scene) = 0; 00028 00029 World* getWorldObject() { return m_world; } 00030 const World* getWorldObject() const { return m_world; } 00031 protected: 00032 World* m_world; 00033 }; 00034 } 00035 00037 #define SCENE_INSERT_Z_ORDER(_SCENE, _ZORDER_INDEX, _OBJ_TO_INSERT) \ 00038 mrpt::ptr_cast<mrpt::opengl::CSetOfObjects>::from( \ 00039 _SCENE.getByName("level_" #_ZORDER_INDEX)) \ 00040 ->insert(_OBJ_TO_INSERT)