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 // Torsion chassis connector model constructed with data from file (JSON format).
16 //
17 // =============================================================================
18 
19 #include "chrono/utils/ChCompositeInertia.h"
20 #include "chrono_vehicle/ChVehicleModelData.h"
21 #include "chrono_vehicle/chassis/ChassisConnectorTorsion.h"
22 #include "chrono_vehicle/utils/ChUtilsJSON.h"
23 
24 using namespace rapidjson;
25 
26 namespace chrono {
27 namespace vehicle {
28 
ChassisConnectorTorsion(const std::string & filename)29 ChassisConnectorTorsion::ChassisConnectorTorsion(const std::string& filename) : ChChassisConnectorTorsion("") {
30     Document d; ReadFileJSON(filename, d);
31     if (d.IsNull())
32         return;
33 
34     Create(d);
35 
36     GetLog() << "Loaded JSON: " << filename.c_str() << "\n";
37 }
38 
ChassisConnectorTorsion(const rapidjson::Document & d)39 ChassisConnectorTorsion::ChassisConnectorTorsion(const rapidjson::Document& d) : ChChassisConnectorTorsion("") {
40     Create(d);
41 }
42 
Create(const rapidjson::Document & d)43 void ChassisConnectorTorsion::Create(const rapidjson::Document& d) {
44     // Invoke base class method.
45     ChPart::Create(d);
46 
47     // Read torsional stiffness
48     m_torsion_stiffness = d["Torsional Stiffness"].GetDouble();
49 }
50 
51 }  // end namespace vehicle
52 }  // end namespace chrono
53