diff options
Diffstat (limited to 'scene/animation/tween.h')
-rw-r--r-- | scene/animation/tween.h | 167 |
1 files changed, 46 insertions, 121 deletions
diff --git a/scene/animation/tween.h b/scene/animation/tween.h index 07c2e90da2..84f866f43e 100644 --- a/scene/animation/tween.h +++ b/scene/animation/tween.h @@ -31,10 +31,9 @@ #include "scene/main/node.h" - class Tween : public Node { - GDCLASS( Tween, Node ); + GDCLASS(Tween, Node); public: enum TweenProcessMode { @@ -42,30 +41,30 @@ public: TWEEN_PROCESS_IDLE, }; - enum TransitionType { - TRANS_LINEAR, - TRANS_SINE, - TRANS_QUINT, - TRANS_QUART, - TRANS_QUAD, - TRANS_EXPO, - TRANS_ELASTIC, - TRANS_CUBIC, - TRANS_CIRC, - TRANS_BOUNCE, - TRANS_BACK, + enum TransitionType { + TRANS_LINEAR, + TRANS_SINE, + TRANS_QUINT, + TRANS_QUART, + TRANS_QUAD, + TRANS_EXPO, + TRANS_ELASTIC, + TRANS_CUBIC, + TRANS_CIRC, + TRANS_BOUNCE, + TRANS_BACK, TRANS_COUNT, - }; + }; - enum EaseType { - EASE_IN, - EASE_OUT, - EASE_IN_OUT, + enum EaseType { + EASE_IN, + EASE_OUT, + EASE_IN_OUT, EASE_OUT_IN, EASE_COUNT, - }; + }; private: enum InterpolateType { @@ -117,45 +116,32 @@ private: }; List<PendingCommand> pending_commands; - void _add_pending_command(StringName p_key - ,const Variant& p_arg1=Variant() - ,const Variant& p_arg2=Variant() - ,const Variant& p_arg3=Variant() - ,const Variant& p_arg4=Variant() - ,const Variant& p_arg5=Variant() - ,const Variant& p_arg6=Variant() - ,const Variant& p_arg7=Variant() - ,const Variant& p_arg8=Variant() - ,const Variant& p_arg9=Variant() - ,const Variant& p_arg10=Variant() - ); + void _add_pending_command(StringName p_key, const Variant &p_arg1 = Variant(), const Variant &p_arg2 = Variant(), const Variant &p_arg3 = Variant(), const Variant &p_arg4 = Variant(), const Variant &p_arg5 = Variant(), const Variant &p_arg6 = Variant(), const Variant &p_arg7 = Variant(), const Variant &p_arg8 = Variant(), const Variant &p_arg9 = Variant(), const Variant &p_arg10 = Variant()); void _process_pending_commands(); typedef real_t (*interpolater)(real_t t, real_t b, real_t c, real_t d); static interpolater interpolaters[TRANS_COUNT][EASE_COUNT]; real_t _run_equation(TransitionType p_trans_type, EaseType p_ease_type, real_t t, real_t b, real_t c, real_t d); - Variant& _get_delta_val(InterpolateData& p_data); - Variant& _get_initial_val(InterpolateData& p_data); - Variant _run_equation(InterpolateData& p_data); - bool _calc_delta_val(const Variant& p_initial_val, const Variant& p_final_val, Variant& p_delta_val); - bool _apply_tween_value(InterpolateData& p_data, Variant& value); + Variant &_get_delta_val(InterpolateData &p_data); + Variant &_get_initial_val(InterpolateData &p_data); + Variant _run_equation(InterpolateData &p_data); + bool _calc_delta_val(const Variant &p_initial_val, const Variant &p_final_val, Variant &p_delta_val); + bool _apply_tween_value(InterpolateData &p_data, Variant &value); void _tween_process(float p_delta); - void _set_process(bool p_process,bool p_force=false); + void _set_process(bool p_process, bool p_force = false); void _remove(Object *p_node, String p_key, bool first_only); protected: - - bool _set(const StringName& p_name, const Variant& p_value); - bool _get(const StringName& p_name,Variant &r_ret) const; + bool _set(const StringName &p_name, const Variant &p_value); + bool _get(const StringName &p_name, Variant &r_ret) const; void _get_property_list(List<PropertyInfo> *p_list) const; void _notification(int p_what); static void _bind_methods(); public: - bool is_active() const; void set_active(bool p_active); @@ -182,89 +168,28 @@ public: real_t tell() const; real_t get_runtime() const; - bool interpolate_property(Object *p_node - , String p_property - , Variant p_initial_val - , Variant p_final_val - , real_t p_duration - , TransitionType p_trans_type - , EaseType p_ease_type - , real_t p_delay = 0 - ); - - bool interpolate_method(Object *p_node - , String p_method - , Variant p_initial_val - , Variant p_final_val - , real_t p_duration - , TransitionType p_trans_type - , EaseType p_ease_type - , real_t p_delay = 0 - ); - - bool interpolate_callback(Object *p_object - , real_t p_duration - , String p_callback - , VARIANT_ARG_DECLARE - ); - - bool interpolate_deferred_callback(Object *p_object - , real_t p_duration - , String p_callback - , VARIANT_ARG_DECLARE - ); - - bool follow_property(Object *p_node - , String p_property - , Variant p_initial_val - , Object *p_target - , String p_target_property - , real_t p_duration - , TransitionType p_trans_type - , EaseType p_ease_type - , real_t p_delay = 0 - ); - - bool follow_method(Object *p_node - , String p_method - , Variant p_initial_val - , Object *p_target - , String p_target_method - , real_t p_duration - , TransitionType p_trans_type - , EaseType p_ease_type - , real_t p_delay = 0 - ); - - bool targeting_property(Object *p_node - , String p_property - , Object *p_initial - , String p_initial_property - , Variant p_final_val - , real_t p_duration - , TransitionType p_trans_type - , EaseType p_ease_type - , real_t p_delay = 0 - ); - - bool targeting_method(Object *p_node - , String p_method - , Object *p_initial - , String p_initial_method - , Variant p_final_val - , real_t p_duration - , TransitionType p_trans_type - , EaseType p_ease_type - , real_t p_delay = 0 - ); + bool interpolate_property(Object *p_node, String p_property, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); + + bool interpolate_method(Object *p_node, String p_method, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); + + bool interpolate_callback(Object *p_object, real_t p_duration, String p_callback, VARIANT_ARG_DECLARE); + + bool interpolate_deferred_callback(Object *p_object, real_t p_duration, String p_callback, VARIANT_ARG_DECLARE); + + bool follow_property(Object *p_node, String p_property, Variant p_initial_val, Object *p_target, String p_target_property, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); + + bool follow_method(Object *p_node, String p_method, Variant p_initial_val, Object *p_target, String p_target_method, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); + + bool targeting_property(Object *p_node, String p_property, Object *p_initial, String p_initial_property, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); + + bool targeting_method(Object *p_node, String p_method, Object *p_initial, String p_initial_method, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); Tween(); ~Tween(); }; -VARIANT_ENUM_CAST( Tween::TweenProcessMode ); -VARIANT_ENUM_CAST( Tween::TransitionType ); -VARIANT_ENUM_CAST( Tween::EaseType ); +VARIANT_ENUM_CAST(Tween::TweenProcessMode); +VARIANT_ENUM_CAST(Tween::TransitionType); +VARIANT_ENUM_CAST(Tween::EaseType); #endif - |