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 #include <mrpt/poses/CPose2D.h> 00015 #include <mrpt/utils/TColor.h> 00016 00017 namespace mvsim 00018 { 00019 class DefaultFriction; 00020 class VehicleBase; 00021 class DynamicsDifferential; 00022 00026 class Wheel 00027 { 00028 public: 00029 double x, y, yaw; 00030 00031 double diameter, 00032 width; 00033 double mass; 00034 double Iyy; 00035 00036 mrpt::utils::TColor color; 00037 00038 Wheel(); 00039 void getAs3DObject(mrpt::opengl::CSetOfObjects& obj); 00040 void loadFromXML(const rapidxml::xml_node<char>* xml_node); 00041 00042 double getPhi() const 00043 { 00044 return phi; 00045 } 00046 void setPhi(double val) 00047 { 00048 phi = val; 00049 } 00050 double getW() const { return w; } 00051 void setW(double val) { w = val; } 00052 void recalcInertia(); 00053 protected: 00054 double phi, w; 00055 00056 }; 00057 }