]> git.mxchange.org Git - flightgear.git/blobdiff - src/AIModel/AIBallistic.hxx
Clear chat messages when an aircraft becomes inactive in the property tree.
[flightgear.git] / src / AIModel / AIBallistic.hxx
index abfa68582a206e147ec47df17f79d7754cc91671..68442fdb6f23efd3df0df3673b9eeb2803fad56f 100644 (file)
@@ -23,6 +23,7 @@
 #include <math.h>
 #include <vector>
 #include <simgear/structure/SGSharedPtr.hxx>
+#include <simgear/scene/material/mat.hxx>
 
 
 #include "AIManager.hxx"
@@ -71,9 +72,16 @@ public:
     void setExternalForce( bool f );
     void setForcePath(const string&);
     double _getTime() const;
+    bool getHtAGL();
+    void setForceStabilisation( bool val );
+    void setXOffset(double x);
+    void setYOffset(double y);
+    void setZOffset(double z);
+
 
     virtual const char* getTypeString(void) const { return "ballistic"; }
     static const double slugs_to_kgs; //conversion factor
+    static const double slugs_to_lbs; //conversion factor
 
     SGPropertyNode_ptr _force_node;
     SGPropertyNode_ptr _force_azimuth_node;
@@ -97,8 +105,13 @@ private:
     bool   _random;          // modifier for Cd
     double _ht_agl_ft;       // height above ground level
     double _load_resistance; // ground load resistanc N/m^2
+    double _frictionFactor;  // dimensionless modifier for Coefficient of Friction
     bool   _solid;           // if true ground is solid for FDMs
-    //double _hs_force_fps;    // horizontal speed due to external force
+    double _elevation_m;     // ground elevation in meters
+    bool   _force_stabilised;// if true, object will align to external force
+    double _x_offset;
+    double _y_offset;
+    double _z_offset;
 
     bool   _report_collision;       // if true a collision point with AI Objects is calculated
     bool   _report_impact;          // if true an impact point on the terrain is calculated
@@ -116,12 +129,17 @@ private:
     string _submodel;
     string _force_path;
 
+    const SGMaterial* _material;
+
     void Run(double dt);
     void handle_collision();
     void handle_impact();
-
+    void setPitch (double e, double dt, double c);
+    void setHdg (double dt, double c);
     void report_impact(double elevation, const FGAIBase *target = 0);
 
+    double getRecip(double az);
+
 };
 
 #endif  // _FG_AIBALLISTIC_HXX