1 // ============================================================================= 2 // PROJECT CHRONO - http://projectchrono.org 3 // 4 // Copyright (c) 2014 projectchrono.org 5 // All rights reserved. 6 // 7 // Use of this source code is governed by a BSD-style license that can be found 8 // in the LICENSE file at the top level of the distribution and at 9 // http://projectchrono.org/license-chrono.txt. 10 // 11 // ============================================================================= 12 // Authors: Radu Serban, Asher Elmquist, Evan Hoerl, Shuo He 13 // ============================================================================= 14 // 15 // CityBus rigid tire subsystem 16 // 17 // ============================================================================= 18 19 #ifndef CITYBUS_RIGID_TIRE_H 20 #define CITYBUS_RIGID_TIRE_H 21 22 #include "chrono_vehicle/wheeled_vehicle/tire/ChRigidTire.h" 23 24 #include "chrono_models/ChApiModels.h" 25 26 namespace chrono { 27 namespace vehicle { 28 namespace citybus { 29 30 /// @addtogroup vehicle_models_citybus 31 /// @{ 32 33 /// Rigid tire model for the CityBus vehicle. 34 class CH_MODELS_API CityBus_RigidTire : public ChRigidTire { 35 public: 36 CityBus_RigidTire(const std::string& name, bool use_mesh = false); ~CityBus_RigidTire()37 ~CityBus_RigidTire() {} 38 GetRadius()39 virtual double GetRadius() const override { return m_radius; } GetWidth()40 virtual double GetWidth() const override { return m_width; } GetMass()41 virtual double GetMass() const override { return m_mass; } GetInertia()42 virtual ChVector<> GetInertia() const override { return m_inertia; } 43 44 private: 45 virtual void CreateContactMaterial(ChContactMethod contact_method) override; 46 virtual void AddVisualizationAssets(VisualizationType vis) override; 47 virtual void RemoveVisualizationAssets() override final; 48 49 static const double m_radius; 50 static const double m_width; 51 static const double m_mass; 52 static const ChVector<> m_inertia; 53 54 static const std::string m_meshFile; 55 std::shared_ptr<ChTriangleMeshShape> m_trimesh_shape; 56 }; 57 58 /// @} vehicle_models_citybus 59 60 } // end namespace citybus 61 } // end namespace vehicle 62 } // end namespace chrono 63 64 #endif 65