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, Michael Taylor
13 // =============================================================================
14 //
15 // M113 continuous band track assembly subsystem using rigid-link track shoes.
16 //
17 // =============================================================================
18 
19 #ifndef M113_TRACK_ASSEMBLY_RIGID_CB_H
20 #define M113_TRACK_ASSEMBLY_RIGID_CB_H
21 
22 #include <string>
23 
24 #include "chrono_models/ChApiModels.h"
25 #include "chrono_vehicle/tracked_vehicle/track_assembly/ChTrackAssemblyBandBushing.h"
26 
27 namespace chrono {
28 namespace vehicle {
29 namespace m113 {
30 
31 /// @addtogroup vehicle_models_m113
32 /// @{
33 
34 /// M113 continuous band track assembly subsystem using rigid-link track shoes.
35 class CH_MODELS_API M113_TrackAssemblyBandBushing : public ChTrackAssemblyBandBushing {
36   public:
37     M113_TrackAssemblyBandBushing(VehicleSide side, BrakeType brake_type);
38 
39     virtual const ChVector<> GetSprocketLocation() const override;
40     virtual const ChVector<> GetIdlerLocation() const override;
41     virtual const ChVector<> GetRoadWhelAssemblyLocation(int which) const override;
42 
43   private:
44     static const ChVector<> m_sprocket_loc;
45     static const ChVector<> m_idler_loc;
46     static const ChVector<> m_susp_locs_L[5];
47     static const ChVector<> m_susp_locs_R[5];
48 };
49 
50 /// @} vehicle_models_m113
51 
52 }  // end namespace m113
53 }  // end namespace vehicle
54 }  // end namespace chrono
55 
56 #endif
57