14#include <simgear/scene/material/mat.hxx>
15#include <simgear/structure/SGSharedPtr.hxx>
29 std::string_view
getTypeString(
void)
const override {
return "groundvehicle"; }
35 void update(
double dt)
override;
38 void setNoRoll(
bool nr);
39 void setContactX1offset(
double x1);
40 void setContactX2offset(
double x2);
41 void setXOffset(
double x);
42 void setYOffset(
double y);
43 void setZOffset(
double z);
45 void setPitchCoeff(
double pc);
46 void setElevCoeff(
double ec);
47 void setTowAngleGain(
double g);
48 void setTowAngleLimit(
double l);
49 void setElevation(
double _elevation,
double dt,
double _elevation_coeff);
50 void setPitch(
double _pitch,
double dt,
double _pitch_coeff);
51 void setTowAngle(
double _relbrg,
double dt,
double _towangle_coeff);
52 void setTrainSpeed(
double s,
double dt,
double coeff);
56 void RunGroundVehicle(
double dt);
58 bool getGroundElev(SGGeod inpos);
61 SGVec3d getCartHitchPosAt(
const SGVec3d& off)
const;
69 double _load_resistance = 0.0;
70 double _frictionFactor = 0.0;
72 double _elevation = 0.0;
73 double _elevation_coeff = 0.0;
74 double _ht_agl_ft = 0.0;
76 double _tow_angle_gain = 0.0;
77 double _tow_angle_limit = 0.0;
79 double _contact_x1_offset = 0.0;
80 double _contact_x2_offset = 0.0;
81 double _contact_z_offset = 0.0;
84 double _pitch_coeff = 0.0;
85 double _pitch_deg = 0.0;
87 double _speed_coeff = 0.0;
88 double _speed_kt = 0.0;
90 double _range_ft = 0.0;
93 double _parent_speed = 0.0;
94 double _parent_x_offset = 0.0;
95 double _parent_y_offset = 0.0;
96 double _parent_z_offset = 0.0;
98 double _hitch_x_offset_m = 0.0;
99 double _hitch_y_offset_m = 0.0;
100 double _hitch_z_offset_m = 0.0;
101 double _break_count = 0.0;
103 double _tunnel_start_alt = 0.0;
104 double _tunnel_end_alt = 0.0;
105 double _tunnel_distance = 0.0;
void update(double dt) override
std::string_view getTypeString(void) const override
void readFromScenario(SGPropertyNode *scFileNode) override
bool init(ModelSearchOrder searchOrder) override
virtual ~FGAIGroundVehicle()=default
FGAIShip(object_type ot=object_type::otShip)
static void calcRangeBearing(double lat1, double lon1, double lat2, double lon2, double &rangeNm, double &bearing)
calculate range and bearing of lat2/lon2 relative to lat1/lon1