]> git.mxchange.org Git - simgear.git/blob - simgear/scene/model/personality.hxx
- better error message when submodel loading failed
[simgear.git] / simgear / scene / model / personality.hxx
1 /**
2  * $Id$
3  */
4
5 #ifndef _SG_PERSONALITY_HXX
6 #define _SG_PERSONALITY_HXX 1
7
8 #include <map>
9
10 SG_USING_STD(map);
11
12 #include <plib/ssg.h>
13
14 class SGAnimation;
15
16 class SGPersonalityBranch : public ssgBranch {
17 public:
18     void setDoubleValue( double value, SGAnimation *anim, int var_id, int var_num = 0 );
19     void setIntValue( int value, SGAnimation *anim, int var_id, int var_num = 0 );
20     double getDoubleValue( SGAnimation *anim, int var_id, int var_num = 0 ) const;
21     int getIntValue( SGAnimation *anim, int var_id, int var_num = 0 ) const;
22
23     SGPersonalityBranch *_old_current;
24
25 private:
26     struct Key {
27         Key( SGAnimation *a, int i, int n = 0 ) : anim(a), var_id(i), var_num(n) {}
28         SGAnimation *anim;
29         int var_id;
30         int var_num;
31         bool operator<( const Key &r ) const {
32                 return anim < r.anim || 
33                     ( anim == r.anim && ( var_id < r.var_id ||
34                                         ( var_id == r.var_id && var_num < r.var_num ) ) );
35         }
36     };
37     map<Key,double> _doubleValues;
38     map<Key,int> _intValues;
39 };
40
41 #endif // _SG_PERSONALITY_HXX