]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/input_output/FGGroundCallback.cpp
remove unused files
[flightgear.git] / src / FDM / JSBSim / input_output / FGGroundCallback.cpp
index 8b9a5674b05f5826c331a27d7e18a228339b5096..8933101ca2b196926228bf63ebbf3bd44f65f1e0 100644 (file)
@@ -7,20 +7,20 @@
  ------ Copyright (C) 2004 Mathias Froehlich (Mathias.Froehlich@web.de) -------
 
  This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
+ the terms of the GNU Lesser General Public License as published by the Free Software
  Foundation; either version 2 of the License, or (at your option) any later
  version.
 
  This program is distributed in the hope that it will be useful, but WITHOUT
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+ FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
  details.
 
- You should have received a copy of the GNU General Public License along with
+ You should have received a copy of the GNU Lesser General Public License along with
  this program; if not, write to the Free Software Foundation, Inc., 59 Temple
  Place - Suite 330, Boston, MA  02111-1307, USA.
 
- Further information about the GNU General Public License can also be found on
+ Further information about the GNU Lesser General Public License can also be found on
  the world wide web at http://www.gnu.org.
 
 HISTORY
@@ -31,8 +31,8 @@ HISTORY
 SENTRY
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
-#include <math/FGColumnVector3.h>
-#include <math/FGLocation.h>
+#include "math/FGColumnVector3.h"
+#include "math/FGLocation.h"
 #include "FGGroundCallback.h"
 
 namespace JSBSim {
@@ -41,7 +41,14 @@ namespace JSBSim {
 
 FGGroundCallback::FGGroundCallback()
 {
-  mReferenceRadius = 20925650.0;
+  mReferenceRadius = 20925650.0; // Sea level radius
+}
+
+//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FGGroundCallback::FGGroundCallback(double ReferenceRadius)
+{
+  mReferenceRadius = ReferenceRadius;
 }
 
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -61,13 +68,15 @@ double FGGroundCallback::GetAltitude(const FGLocation& loc) const
 
 double FGGroundCallback::GetAGLevel(double t, const FGLocation& loc,
                                     FGLocation& contact, FGColumnVector3& normal,
-                                    FGColumnVector3& vel) const
+                                    FGColumnVector3& vel, FGColumnVector3& angularVel) const
 {
   vel = FGColumnVector3(0.0, 0.0, 0.0);
-  normal = (-1/FGColumnVector3(loc).Magnitude())*FGColumnVector3(loc);
-  double radius = loc.GetRadius();
-  double agl = GetAltitude(loc);
-  contact = ((radius-agl)/radius)*FGColumnVector3(loc);
+  angularVel = FGColumnVector3(0.0, 0.0, 0.0);
+  normal = FGColumnVector3(loc).Normalize();
+  double loc_radius = loc.GetRadius();  // Get the radius of the given location
+                                        // (e.g. the CG)
+  double agl = loc_radius - mReferenceRadius;
+  contact = (mReferenceRadius/loc_radius)*FGColumnVector3(loc);
   return agl;
 }