]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/FGLGear.cpp
Check return value of FDM::init().
[flightgear.git] / src / FDM / JSBSim / FGLGear.cpp
index 3acf3ad435caea510aaa807fb2833ef3a1faa491..6858c969cf92bf664c2b9b865112e7c90eff1281 100644 (file)
@@ -39,6 +39,9 @@ INCLUDES
 #include "FGLGear.h"
 #include <algorithm>
 
+static const char *IdSrc = "$Header$";
+static const char *IdHdr = ID_LGEAR;
+
 /*******************************************************************************
 ************************************ CODE **************************************
 *******************************************************************************/
@@ -51,22 +54,25 @@ FGLGear::FGLGear(FGConfigFile* AC_cfg, FGFDMExec* fdmex) : vXYZ(3),
 {
   string tmp;
   *AC_cfg >> tmp >> name >> vXYZ(1) >> vXYZ(2) >> vXYZ(3)  
-            >> kSpring >> bDamp >> statFCoeff >> brakeCoeff;
-  
-  
+            >> kSpring >> bDamp>> dynamicFCoeff >> staticFCoeff
+                 >> SteerType >> BrakeType >> GroupMember >> maxSteerAngle;
+    
   cout << "    Name: " << name << endl;
   cout << "      Location: " << vXYZ << endl;
-  cout << "      Spring Constant: " << kSpring << endl;
+  cout << "      Spring Constant:  " << kSpring << endl;
   cout << "      Damping Constant: " << bDamp << endl;
-  cout << "      Rolling Resistance: " << statFCoeff << endl;
-  cout << "      Braking Coeff: " << brakeCoeff << endl;
+  cout << "      Dynamic Friction: " << dynamicFCoeff << endl;
+  cout << "      Static Friction:  " << staticFCoeff << endl;
+  cout << "      Brake Type:       " << BrakeType << endl;
+  cout << "      Grouping:         " << GroupMember << endl;
+  cout << "      Steering Type:    " << SteerType << endl;
+  cout << "      Max Steer Angle:  " << maxSteerAngle << endl;
   
   State       = Exec->GetState();
   Aircraft    = Exec->GetAircraft();
   Position    = Exec->GetPosition();
   Rotation    = Exec->GetRotation();
   
-  
   WOW = false;
   ReportEnable=true;
   FirstContact = false;
@@ -80,6 +86,7 @@ FGLGear::FGLGear(FGConfigFile* AC_cfg, FGFDMExec* fdmex) : vXYZ(3),
 
 FGLGear::~FGLGear(void)
 {
+  cout << "Destructing Landing Gear ..." << endl;
 }
 
 /******************************************************************************/
@@ -113,21 +120,26 @@ FGColumnVector FGLGear::Force(void)
       GroundSpeed   =  Position->GetVel().Magnitude();
     }
 
+    // The following code normalizes the wheel velocity vector, reverses it, and zeroes out
+    // the z component of the velocity. The question is, should the Z axis velocity be zeroed
+    // out first before the normalization takes place or not? Subsequent to that, the Wheel
+    // Velocity vector now points as a unit vector backwards and parallel to the wheel
+    // velocity vector. It acts AT the wheel.
+
     vWhlVelVec      = -1.0 * vWhlVelVec.Normalize();
     vWhlVelVec(eZ)  =  0.00;
 
+// the following needs work regarding friction coefficients and braking and steering
+
     vLocalForce(eZ) =  min(-compressLength * kSpring - compressSpeed * bDamp, (float)0.0);
-    vLocalForce(eX) =  fabs(vLocalForce(eZ) * statFCoeff) * vWhlVelVec(eX);
-    vLocalForce(eY) =  fabs(vLocalForce(eZ) * statFCoeff) * vWhlVelVec(eY);
+    vLocalForce(eX) =  fabs(vLocalForce(eZ) * staticFCoeff) * vWhlVelVec(eX);
+    vLocalForce(eY) =  fabs(vLocalForce(eZ) * staticFCoeff) * vWhlVelVec(eY);
 
     MaximumStrutForce = max(MaximumStrutForce, fabs(vLocalForce(eZ)));
     MaximumStrutTravel = max(MaximumStrutTravel, fabs(compressLength));
 
     vForce  = State->GetTl2b() * vLocalForce ;
     vMoment = vWhlBodyVec * vForce;
-    cout << "      Force: " << vForce << endl;
-    cout << "      Moment: " << vMoment << endl;
-
 
   } else {