]> git.mxchange.org Git - flightgear.git/blob - src/Model/model_panel.hxx
dcf41dd95334a676cf4c0542e165975fcd4e24f4
[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 using std::vector;
16
17 #include <simgear/props/props.hxx>
18
19
20 // Don't pull in the headers, since we don't need them here.
21
22 class SGInterpTable;
23 class FGCondition;
24 class FGLocation;
25
26
27 // Has anyone done anything *really* stupid, like making min and max macros?
28 #ifdef min
29 #undef min
30 #endif
31 #ifdef max
32 #undef max
33 #endif
34
35
36 /**
37  * Load a 3D model with or without XML wrapper.  This version supports
38  * also loading the instrument panel and is wired in with dependencies
39  * on panelnode.hxx, and thus files in src/Cockpit and also GUI/mouse
40  * input code to support the 3d clickable hotspots.
41  *
42  * If the path ends in ".xml", then it will be used as a property-
43  * list wrapper to add animations to the model.
44  *
45  * Subsystems should not normally invoke this function directly;
46  * instead, they should use the SGModelLoader declared in loader.hxx.
47  */
48 osg::Node *fgLoad3DModelPanel( const string &path, SGPropertyNode *prop_root);
49
50
51 #endif // __MODEL_HXX