]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/models/propulsion/FGForce.h
Merge branch 'next' into durk-atc
[flightgear.git] / src / FDM / JSBSim / models / propulsion / FGForce.h
index ce62f239b5ff12fff59da21e54bb00ff5abe2424..9ec0d30649ab725e0904bdadaceee545e9e7ea85 100644 (file)
@@ -57,16 +57,16 @@ SENTRY
 INCLUDES
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
-#include <FGFDMExec.h>
-#include <FGJSBBase.h>
-#include <math/FGMatrix33.h>
-#include <math/FGColumnVector3.h>
+#include "FGFDMExec.h"
+#include "FGJSBBase.h"
+#include "math/FGMatrix33.h"
+#include "math/FGColumnVector3.h"
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 DEFINITIONS
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
-#define ID_FORCE "$Id$"
+#define ID_FORCE "$Id: FGForce.h,v 1.13 2009/10/05 04:48:03 jberndt Exp $"
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 FORWARD DECLARATIONS
@@ -195,7 +195,7 @@ other hand, will require it to be be called only once.</p>
 
 <p>Retrieval of the computed forces and moments is done as detailed above.</p>
 <br>
-<blockquote>
+<pre>
     <p><i>CAVEAT: If the custom system is used to compute
     the wind-to-body transform, then the sign of the sideslip
     angle must be reversed when calling SetAnglesToBody().
@@ -203,8 +203,8 @@ other hand, will require it to be be called only once.</p>
     hand rule. Using the custom transform type this way
     should not be necessary, as it is already provided as a built
     in type (and the sign differences are correctly accounted for).</i>
-    <br></p>
-</blockquote>
+    </p>
+</pre>
 
 <h4>Use as a Base Type</h4>
 
@@ -215,7 +215,7 @@ and vMn, the moments, can be made directly. Otherwise, the usage is similar.<br>
 <br><br></p>
 
     @author Tony Peden
-    @version $Id$
+    @version $Id: FGForce.h,v 1.13 2009/10/05 04:48:03 jberndt Exp $
 */
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -227,13 +227,22 @@ class FGForce : public FGJSBBase
 public:
   /// Constructor
   FGForce(FGFDMExec *FDMExec);
+  FGForce(const FGForce& force) {
+    vFn = force.vFn;
+    vXYZn = force.vXYZn;
+    ttype = force.ttype;
+    fdmex = force.fdmex;
+  }
   /// Destructor
   ~FGForce();
 
   enum TransformType { tNone, tWindBody, tLocalBody, tCustom };
 
-  FGColumnVector3& GetBodyForces(void);
+  virtual FGColumnVector3& GetBodyForces(void);
 
+  inline double GetBodyXForce(void) const { return vFb(eX); }
+  inline double GetBodyYForce(void) const { return vFb(eY); }
+  inline double GetBodyZForce(void) const { return vFb(eZ); }
   inline FGColumnVector3& GetMoments(void) { return vM; }
 
   // Normal point of application, JSBsim structural coords
@@ -267,12 +276,12 @@ public:
   inline void SetLocation(FGColumnVector3 vv) { vXYZn = vv; SetActingLocation(vv);}
   inline void SetActingLocation(FGColumnVector3 vv) { vActingXYZn = vv; }
 
-  inline double GetLocationX( void ) { return vXYZn(eX);}
-  inline double GetLocationY( void ) { return vXYZn(eY);}
-  inline double GetLocationZ( void ) { return vXYZn(eZ);}
-  inline double GetActingLocationX( void ) { return vActingXYZn(eX);}
-  inline double GetActingLocationY( void ) { return vActingXYZn(eY);}
-  inline double GetActingLocationZ( void ) { return vActingXYZn(eZ);}
+  inline double GetLocationX( void ) const { return vXYZn(eX);}
+  inline double GetLocationY( void ) const { return vXYZn(eY);}
+  inline double GetLocationZ( void ) const { return vXYZn(eZ);}
+  inline double GetActingLocationX( void ) const { return vActingXYZn(eX);}
+  inline double GetActingLocationY( void ) const { return vActingXYZn(eY);}
+  inline double GetActingLocationZ( void ) const { return vActingXYZn(eZ);}
   FGColumnVector3& GetLocation(void) { return vXYZn; }
   FGColumnVector3& GetActingLocation(void) { return vActingXYZn; }
 
@@ -296,10 +305,10 @@ public:
   double GetYaw(void) const {return vOrient(eYaw);}
 
   inline FGColumnVector3& GetAnglesToBody(void) {return vOrient;}
-  inline double GetAnglesToBody(int axis) {return vOrient(axis);}
+  inline double GetAnglesToBody(int axis) const {return vOrient(axis);}
 
   inline void SetTransformType(TransformType ii) { ttype=ii; }
-  inline TransformType GetTransformType(void) { return ttype; }
+  inline TransformType GetTransformType(void) const { return ttype; }
 
   FGMatrix33 Transform(void);