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
13 // =============================================================================
14 //
15 // MTV balancer subsystem (installed on rear chassis)
16 //
17 // =============================================================================
18 
19 #ifndef MTV_BALANCER_H
20 #define MTV_BALANCER_H
21 
22 #include "chrono_models/ChApiModels.h"
23 #include "chrono_vehicle/wheeled_vehicle/subchassis/ChBalancer.h"
24 
25 namespace chrono {
26 namespace vehicle {
27 namespace fmtv {
28 
29 /// @addtogroup vehicle_models_fmtv
30 /// @{
31 
32 /// MTV balancer subsystem (installed on rear chassis).
33 class CH_MODELS_API MTV_Balancer : public ChBalancer {
34   public:
35     MTV_Balancer(const std::string& name);
36 
37     virtual const ChVector<> GetLocation(PointId which) override;
38 
GetBalancerBeamMass()39     virtual double GetBalancerBeamMass() const override { return m_beam_mass; }
GetBalancerBeamInertia()40     virtual const ChVector<>& GetBalancerBeamInertia() const override { return m_beam_inertia; }
GetBalancerMaxPitch()41     virtual const double GetBalancerMaxPitch() const override { return m_beam_max_pitch; }
GetBalancerBeamDimensions()42     virtual const ChVector<>& GetBalancerBeamDimensions() const override { return m_beam_dimensions; }
43 
44   private:
45     static const double m_beam_max_pitch;
46     static const double m_beam_mass;
47     static const ChVector<> m_beam_inertia;
48     static const ChVector<> m_beam_dimensions;
49 };
50 
51 /// @} vehicle_models_fmtv
52 
53 }  // namespace fmtv
54 }  // end namespace vehicle
55 }  // end namespace chrono
56 
57 #endif