text: // =============================================================================
  // PROJECT CHRONO - http://projectchrono.org
  //
  // Copyright (c) 2014 projectchrono.org
  // All rights reserved.
  //
  // Use of this source code is governed by a BSD-style license that can be found
  // in the LICENSE file at the top level of the distribution and at
  // http://projectchrono.org/license-chrono.txt.
  //
  // =============================================================================
  // Authors: Radu Serban, Michael Taylor
  // =============================================================================
  //
  // HMMWV PAC89 tire subsystem
  //
  // =============================================================================
  
  #ifndef HMMWV_PAC89_TIRE_H
  #define HMMWV_PAC89_TIRE_H
  
  #include "chrono/assets/ChTriangleMeshShape.h"
  
  #include "chrono_vehicle/wheeled_vehicle/tire/ChPac89Tire.h"
  
  #include "chrono_models/ChApiModels.h"
  
  namespace chrono {
  namespace vehicle {
  namespace hmmwv {
  
  /// @addtogroup vehicle_models_hmmwv
  /// @{
  
  /// PAC89 tire model for the HMMWV vehicle.
  class CH_MODELS_API HMMWV_Pac89Tire : public ChPac89Tire {
    public:
      HMMWV_Pac89Tire(const std::string& name);
      ~HMMWV_Pac89Tire() {}
  
      virtual double GetNormalStiffnessForce(double depth) const override;
      virtual double GetNormalDampingForce(double depth, double velocity) const override {
          return m_normalDamping * velocity;
      }
  
      virtual double GetVisualizationWidth() const override { return m_width; }
  
      virtual void SetPac89Params() override;
  
      virtual void AddVisualizationAssets(VisualizationType vis) override;
      virtual void RemoveVisualizationAssets() override final;
  
    private:
      static const double m_normalDamping;
  
      static const std::string m_meshName;
      static const std::string m_meshFile;
      std::shared_ptr<ChTriangleMeshShape> m_trimesh_shape;
  };
  
  /// @} vehicle_models_hmmwv
  
  }  // end namespace hmmwv
  }  // end namespace vehicle
  }  // end namespace chrono
  
  #endif
  