]> git.mxchange.org Git - flightgear.git/blob - src/Model/model_panel.hxx
Multiplayer client/server system -- MessageBuf class and test harness complete
[flightgear.git] / src / Model / model_panel.hxx
1 // model.hxx - manage a 3D aircraft model.
2 // Written by David Megginson, started 2002.
3 //
4 // This file is in the Public Domain, and comes with no warranty.
5
6 #ifndef __MODEL_HXX
7 #define __MODEL_HXX 1
8
9 #ifndef __cplusplus
10 # error This library requires C++
11 #endif
12
13 #include <vector>
14
15 SG_USING_STD(vector);
16
17 #include <plib/sg.h>
18 #include <plib/ssg.h>
19
20 #include <simgear/math/point3d.hxx>
21 #include <simgear/props/props.hxx>
22
23
24 // Don't pull in the headers, since we don't need them here.
25 class ssgBranch;
26 class ssgCutout;
27 class ssgEntity;
28 class ssgRangeSelector;
29 class ssgSelector;
30 class ssgTransform;
31
32 class SGInterpTable;
33 class FGCondition;
34 class FGLocation;
35
36
37 // Has anyone done anything *really* stupid, like making min and max macros?
38 #ifdef min
39 #undef min
40 #endif
41 #ifdef max
42 #undef max
43 #endif
44
45
46 /**
47  * Load a 3D model with or without XML wrapper.  This version supports
48  * also loading the instrument panel and is wired in with dependencies
49  * on panelnode.hxx, and thus files in src/Cockpit and also GUI/mouse
50  * input code to support the 3d clickable hotspots.
51  *
52  * If the path ends in ".xml", then it will be used as a property-
53  * list wrapper to add animations to the model.
54  *
55  * Subsystems should not normally invoke this function directly;
56  * instead, they should use the SGModelLoader declared in loader.hxx.
57  */
58 ssgBranch *fgLoad3DModelPanel( const string& fg_root, const string &path,
59                                SGPropertyNode *prop_root,
60                                double sim_time_sec );
61
62
63 #endif // __MODEL_HXX