]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/models/propulsion/FGForce.cpp
Better fix for a compilation problem with MSVC 2012
[flightgear.git] / src / FDM / JSBSim / models / propulsion / FGForce.cpp
index ff7532916325914025583df537d86be4388e5979..787e184a1c2f304888d88a6efc7d60799b8e4748 100644 (file)
@@ -40,20 +40,20 @@ and the cg.
 
 */
 
+#include <iostream>
+#include <cstdlib>
+
 #include "FGForce.h"
 #include "FGFDMExec.h"
-#include "models/FGAircraft.h"
 #include "models/FGPropagate.h"
 #include "models/FGMassBalance.h"
-#include "models/FGAerodynamics.h"
-#include <iostream>
-#include <cstdlib>
+#include "models/FGAuxiliary.h"
 
 using namespace std;
 
 namespace JSBSim {
 
-static const char *IdSrc = "$Id$";
+static const char *IdSrc = "$Id: FGForce.cpp,v 1.17 2011/10/31 14:54:41 bcoconni Exp $";
 static const char *IdHdr = ID_FORCE;
 
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -62,9 +62,20 @@ FGForce::FGForce(FGFDMExec *FDMExec) :
                  fdmex(FDMExec),
                  ttype(tNone)
 {
-  mT(1,1) = 1; //identity matrix
-  mT(2,2) = 1;
-  mT(3,3) = 1;
+  vFn.InitMatrix();
+  vMn.InitMatrix();
+  vH.InitMatrix();
+  vOrient.InitMatrix();
+  vXYZn.InitMatrix();
+  vActingXYZn.InitMatrix();
+
+  vFb.InitMatrix();
+  vM.InitMatrix();
+  vDXYZ.InitMatrix();
+
+  mT.InitMatrix(1., 0., 0.,
+                0., 1., 0.,
+                0., 0., 1.);
 
   Debug(0);
 }
@@ -78,7 +89,7 @@ FGForce::~FGForce()
 
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-FGColumnVector3& FGForce::GetBodyForces(void)
+const FGColumnVector3& FGForce::GetBodyForces(void)
 {
   vFb = Transform()*vFn;
 
@@ -95,11 +106,11 @@ FGColumnVector3& FGForce::GetBodyForces(void)
 
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-FGMatrix33 FGForce::Transform(void)
+const FGMatrix33& FGForce::Transform(void) const
 {
   switch(ttype) {
   case tWindBody:
-    return fdmex->GetAerodynamics()->GetTw2b();
+    return fdmex->GetAuxiliary()->GetTw2b();
   case tLocalBody:
     return fdmex->GetPropagate()->GetTl2b();
   case tCustom: