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