# error This library requires C++
#endif
+#include <string>
+#include <vector>
+
+SG_USING_STD(string);
+SG_USING_STD(vector);
+
#include "fgfs.hxx"
+#include <simgear/misc/props.hxx>
#include <simgear/timing/timestamp.hxx>
class FGAircraftModel : public FGSubsystem
private:
- ssgEntity * _object;
+ struct Animation
+ {
+ enum Type {
+ None,
+ Spin,
+ Rotate
+ };
+ string name;
+ Type type;
+ ssgTransform * transform;
+ sgMat4 matrix;
+ SGPropertyNode * prop;
+ float factor;
+ float offset;
+ float position;
+ bool has_min;
+ float min;
+ bool has_max;
+ float max;
+ sgVec3 center;
+ sgVec3 axis;
+ void setRotation ();
+ };
+
+ Animation read_animation (const string &object_name,
+ const SGPropertyNode * node);
+ void do_animation (Animation &animation, long elapsed_ms);
+
+ ssgEntity * _model;
ssgSelector * _selector;
ssgTransform * _position;
SGTimeStamp _last_timestamp;
SGTimeStamp _current_timestamp;
- ssgTransform * _prop_position;
+ vector<Animation> _animations;
};