]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/FGPropulsion.h
Latest JSBSim changes, including some gear tweaking from Jon and some
[flightgear.git] / src / FDM / JSBSim / FGPropulsion.h
index 56e38c9980389e379d27fa3ff73ba93a904f593c..ba1747a1cb5c1f979bd4e65d199d5284444273a2 100644 (file)
@@ -136,6 +136,9 @@ public:
                       if (index <= Engines.size()-1) return Engines[index];
                       else                           return 0L;      }
 
+  // Retrieves the number of tanks defined for the aircraft.
+  inline unsigned int GetNumTanks(void) {return Tanks.size();}
+
   /** Retrieves a tank object pointer from the list of tanks.
       @param index the tank index within the vector container
       @return the address of the specific tank, or zero if no such tank is
@@ -158,22 +161,29 @@ public:
   /** Returns the number of oxidizer tanks currently actively supplying oxidizer */
   inline int GetnumSelectedOxiTanks(void)  {return numSelectedOxiTanks;}
 
+  /** Loops the engines/thrusters until thrust output steady (used for trimming) */
   bool GetSteadyState(void);
-
+  
+  /** starts the engines in IC mode (dt=0).  All engine-specific setup must
+      be done before calling this (i.e. magnetos, starter engage, etc.) */
+  bool ICEngineStart(void);
+  
   string GetPropulsionStrings(void);
   string GetPropulsionValues(void);
 
-  inline FGColumnVector& GetForces(void)  {return *Forces; }
-  inline FGColumnVector& GetMoments(void) {return *Moments;}
+  inline FGColumnVector3& GetForces(void)  {return vForces; }
+  inline double GetForces(int n) { return vForces(n);}
+  inline FGColumnVector3& GetMoments(void) {return vMoments;}
+  inline double GetMoments(int n) {return vMoments(n);}
   
-  FGColumnVector& GetTanksCG(void);
-  float GetTanksWeight(void);
+  FGColumnVector3& GetTanksCG(void);
+  double GetTanksWeight(void);
 
-  float GetTanksIxx(const FGColumnVector& vXYZcg);
-  float GetTanksIyy(const FGColumnVector& vXYZcg);
-  float GetTanksIzz(const FGColumnVector& vXYZcg);
-  float GetTanksIxz(const FGColumnVector& vXYZcg);
-  float GetTanksIxy(const FGColumnVector& vXYZcg);
+  double GetTanksIxx(const FGColumnVector3& vXYZcg);
+  double GetTanksIyy(const FGColumnVector3& vXYZcg);
+  double GetTanksIzz(const FGColumnVector3& vXYZcg);
+  double GetTanksIxz(const FGColumnVector3& vXYZcg);
+  double GetTanksIxy(const FGColumnVector3& vXYZcg);
 
 private:
   vector <FGEngine*>   Engines;
@@ -187,11 +197,11 @@ private:
   unsigned int numEngines;
   unsigned int numTanks;
   unsigned int numThrusters;
-  float dt;
-  FGColumnVector *Forces;
-  FGColumnVector *Moments;
-  FGColumnVector vXYZtank;
-  void Debug(void);
+  double dt;
+  FGColumnVector3 vForces;
+  FGColumnVector3 vMoments;
+  FGColumnVector3 vXYZtank;
+  void Debug(int from);
 };
 
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%