*/
static SGPersonalityBranch *current_object;
+ int get_animation_type(void) { return animation_type; }
+
protected:
static double sim_time_sec;
ssgBranch * _branch;
+ int animation_type;
};
float factor;
float offset;
float min;
- float max;
+ float max;
SGPropertyNode_ptr value_prop;
SGPropertyNode_ptr factor_prop;
SGPropertyNode_ptr offset_prop;
}
};
SGCondition *_condition;
+ bool _last_condition;
SGPropertyNode *_prop_root;
string _prop_base;
SGPath _texture_base;
ssgSimpleState* _cloned_material;
unsigned _read;
unsigned _update;
+ unsigned _static_update;
bool _global;
ColorSpec _diff;
ColorSpec _amb;
SGInterpTable * _table;
};
+/**
+ * An animation to tell wich objects don't cast shadows.
+ */
+class SGShadowAnimation : public SGAnimation
+{
+public:
+ SGShadowAnimation ( SGPropertyNode *prop_root,
+ SGPropertyNode_ptr props );
+ virtual ~SGShadowAnimation ();
+ virtual int update();
+ bool get_condition_value(void);
+private:
+ SGCondition * _condition;
+ bool _condition_value;
+};
+
+/**
++ * An "animation" that replace fixed opengl pipeline by shaders
++ */
+class SGShaderAnimation : public SGAnimation
+{
+public:
+ SGShaderAnimation ( SGPropertyNode *prop_root,
+ SGPropertyNode_ptr props );
+ virtual ~SGShaderAnimation ();
+ virtual void init();
+ virtual int update();
+ bool get_condition_value(void);
+private:
+ SGCondition * _condition;
+ bool _condition_value;
+ int _shader_type;
+ float _param_1;
+ sgVec4 _param_color;
+public:
+ bool _depth_test;
+ float _factor;
+ SGPropertyNode_ptr _factor_prop;
+ float _speed;
+ SGPropertyNode_ptr _speed_prop;
+ ssgTexture *_effectTexture;
+ unsigned char *_textureData;
+ GLint _texWidth, _texHeight;
+ sgVec4 _envColor;
+};
+
#endif // _SG_ANIMATION_HXX