]> git.mxchange.org Git - flightgear.git/blob - src/Instrumentation/agradar.hxx
bvh: Adapt to upstream bvh changes in simgear.
[flightgear.git] / src / Instrumentation / agradar.hxx
1 // Air Ground Radar
2 //
3 // Written by Vivian MEAZZA, started Feb 2008.
4 // 
5 //
6 // Copyright (C) 2008  Vivain MEAZZA - vivian.meazza@lineone.net
7 //
8 // This program is free software; you can redistribute it and/or
9 // modify it under the terms of the GNU General Public License as
10 // published by the Free Software Foundation; either version 2 of the
11 // License, or (at your option) any later version.
12 //
13 // This program is distributed in the hope that it will be useful, but
14 // WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 // General Public License for more details.
17 //
18 // You should have received a copy of the GNU General Public License
19 // along with this program; if not, write to the Free Software
20 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21 //
22 //
23
24 #ifndef _INST_AGRADAR_HXX
25 #define _INST_AGRADAR_HXX
26
27 #include <simgear/structure/subsystem_mgr.hxx>
28 #include <Scenery/scenery.hxx>
29 #include <simgear/scene/material/mat.hxx>
30
31 #include "wxradar.hxx"
32
33 class agRadar : public wxRadarBg{
34 public:
35
36     agRadar ( SGPropertyNode *node );
37     agRadar ();
38     virtual ~agRadar ();
39
40     virtual void init ();
41     virtual void update (double dt);
42
43     void setUserPos();
44     void setUserVec(double az, double el);
45     void update_terrain();
46     void setAntennaPos();
47
48     bool getMaterial();
49
50     double _load_resistance;    // ground load resistanc N/m^2
51     double _frictionFactor;     // dimensionless modifier for Coefficient of Friction
52     double _bumpinessFactor;    // dimensionless modifier for Bumpiness
53     double _elevation_m;        // ground elevation in meters
54     bool   _solid;              // if true ground is solid for FDMs
55
56     std::string _mat_name; // ground material
57
58     SGVec3d getCartUserPos() const;
59     SGVec3d getCartAntennaPos()const;
60
61     SGVec3d uservec;
62
63     SGPropertyNode_ptr _user_hdg_deg_node;
64     SGPropertyNode_ptr _user_roll_deg_node;
65     SGPropertyNode_ptr _user_pitch_deg_node;
66     SGPropertyNode_ptr _terrain_warning_node;
67
68     SGPropertyNode_ptr _xOffsetMNode;
69     SGPropertyNode_ptr _yOffsetMNode;
70     SGPropertyNode_ptr _zOffsetMNode;
71
72     SGPropertyNode_ptr _elevLimitDegNode;
73     SGPropertyNode_ptr _elevStepDegNode;
74     SGPropertyNode_ptr _azLimitDegNode;
75     SGPropertyNode_ptr _azStepDegNode;
76     SGPropertyNode_ptr _maxRangeMNode;
77     SGPropertyNode_ptr _minRangeMNode;
78     SGPropertyNode_ptr _tiltNode;
79
80     SGPropertyNode_ptr _brgDegNode;
81     SGPropertyNode_ptr _rangeMNode;
82     SGPropertyNode_ptr _elevationMNode;
83     SGPropertyNode_ptr _materialNode;
84     SGPropertyNode_ptr _bumpinessNode;
85
86     SGPropertyNode_ptr _rollStabNode;
87     SGPropertyNode_ptr _pitchStabNode;
88
89     SGGeod userpos;
90     SGGeod hitpos;
91     SGGeod antennapos;
92 };
93
94 #endif // _INST_AGRADAR_HXX