class Actor;
class Animation;
class AnimationPlaylist;
-class ProxyObject;
+class Object;
class ShaderEffect;
typedef IntrusivePtr<Animation> AnimationPtr;
/**
* @copydoc Dali::Animation::SetLooping()
*/
- void SetLooping(bool looping);
+ void SetLooping(bool on);
+
+ /**
+ * @copydoc Dali::Animation::SetLoopCount()
+ */
+ void SetLoopCount(int count);
+
+ /**
+ * @copydoc Dali::Animation::GetLoopCount()
+ */
+ int GetLoopCount();
+
+ /**
+ * @copydoc Dali::Animation::GetCurrentLoop()
+ */
+ int GetCurrentLoop();
/**
* @copydoc Dali::Animation::IsLooping()
void Pause();
/**
+ * @copydoc Dali::Animation::GetState()
+ */
+ Dali::Animation::State GetState() const;
+
+ /**
* @copydoc Dali::Animation::Stop()
*/
void Stop();
/**
* @copydoc Dali::Animation::FinishedSignal()
*/
- Dali::Animation::AnimationSignalV2& FinishedSignal();
+ Dali::Animation::AnimationSignalType& FinishedSignal();
/**
* Emit the Finished signal
* @param[in] attributes The attributes with which to perfrom this action.
* @return true if action was done
*/
- static bool DoAction(BaseObject* object, const std::string& actionName, const std::vector<Property::Value>& attributes);
+ static bool DoAction(BaseObject* object, const std::string& actionName, const Property::Map& attributes);
/**
* This callback is intended for internal use only, to avoid the overhead of using a signal.
* @param [in] alpha The alpha function to apply.
* @param [in] period The effect will occur during this time period.
*/
- void AnimateTo(ProxyObject& targetObject, Property::Index targetPropertyIndex, int componentIndex, Property::Value& destinationValue, AlphaFunction alpha, TimePeriod period);
+ void AnimateTo(Object& targetObject, Property::Index targetPropertyIndex, int componentIndex, Property::Value& destinationValue, AlphaFunction alpha, TimePeriod period);
/**
* @copydoc Dali::Animation::AnimateBetween(Property target, KeyFrames& keyFrames)
void Animate( Actor& actor, const Path& path, const Vector3& forward, AlphaFunction alpha, TimePeriod period);
/**
- * @copydoc Dali::Animation::MoveBy(Actor actor, float x, float y, float z)
- */
- void MoveBy(Actor& actor, float x, float y, float z);
-
- /**
- * @copydoc Dali::Animation::MoveBy(Actor actor, Vector3 displacement, AlphaFunction alpha)
- */
- void MoveBy(Actor& actor, const Vector3& translation, AlphaFunction alpha);
-
- /**
- * @copydoc Dali::Animation::MoveBy(Actor actor, Vector3 displacement, AlphaFunction alpha, float delaySeconds, float durationSeconds)
- */
- void MoveBy(Actor& actor, const Vector3& translation, AlphaFunction alpha, float delaySeconds, float durationSeconds);
-
- /**
- * @copydoc Dali::Animation::MoveTo(Actor actor, float x, float y, float z)
- */
- void MoveTo(Actor& actor, float x, float y, float z);
-
- /**
- * @copydoc Dali::Animation::MoveTo(Actor actor, Vector3 position, AlphaFunction alpha)
- */
- void MoveTo(Actor& actor, const Vector3& translation, AlphaFunction alpha);
-
- /**
- * @copydoc Dali::Animation::MoveTo(Actor actor, Vector3 position, AlphaFunction alpha, float delaySeconds, float durationSeconds)
- */
- void MoveTo(Actor& actor, const Vector3& translation, AlphaFunction alpha, float delaySeconds, float durationSeconds);
-
- /**
- * @copydoc Dali::Animation::RotateBy(Actor actor, Radian angle, Vector3 axis)
- */
- void RotateBy(Actor& actor, Radian angle, const Vector3& axis);
-
- /**
- * @copydoc Dali::Animation::RotateBy(Actor actor, Radian angle, Vector3 axis, AlphaFunction alpha)()
- */
- void RotateBy(Actor& actor, Radian angle, const Vector3& axis, AlphaFunction alpha);
-
- /**
- * @copydoc Dali::Animation::RotateBy(Actor actor, Radian angle, Vector3 axis, AlphaFunction alpha, float delaySeconds, float durationSeconds)
- */
- void RotateBy(Actor& actor, Radian angle, const Vector3& axis, AlphaFunction alpha, float delaySeconds, float durationSeconds);
-
- /**
- * @copydoc Dali::Animation::RotateTo(Actor actor, Radian angle, Vector3 axis)
- */
- void RotateTo(Actor& actor, Radian angle, const Vector3& axis);
-
- /**
- * @copydoc Dali::Animation::RotateTo(Actor actor, Quaternion orientation)
- */
- void RotateTo(Actor& actor, const Quaternion& orientation);
-
- /**
- * @copydoc Dali::Animation::RotateTo(Actor actor, Radian angle, Vector3 axis, AlphaFunction alpha)
- */
- void RotateTo(Actor& actor, Radian angle, const Vector3& axis, AlphaFunction alpha);
-
- /**
- * @copydoc Dali::Animation::RotateTo(Actor actor, Quaternion orientation, AlphaFunction alpha)
- */
- void RotateTo(Actor& actor, const Quaternion& orientation, AlphaFunction alpha);
-
- /**
- * @copydoc Dali::Animation::RotateTo(Actor actor, Quaternion orientation, AlphaFunction alpha, float delaySeconds, float durationSeconds)
- */
- void RotateTo(Actor& actor, const Quaternion& orientation, AlphaFunction alpha, float delaySeconds, float durationSeconds);
-
- /**
- * @copydoc Dali::Animation::RotateTo(Actor actor, Radian angle, Vector3 axis, AlphaFunction alpha, float delaySeconds, float durationSeconds)()
- */
- void RotateTo(Actor& actor, Radian angle, const Vector3& axis, AlphaFunction alpha, float delaySeconds, float durationSeconds);
-
- /**
- * @copydoc Dali::Animation::ScaleBy(Actor actor, float x, float y, float z)()
- */
- void ScaleBy(Actor& actor, float x, float y, float z);
-
- /**
- * @copydoc Dali::Animation::ScaleBy(Actor actor, Vector3 scale, AlphaFunction alpha)
- */
- void ScaleBy(Actor& actor, const Vector3& scale, AlphaFunction alpha);
-
- /**
- * @copydoc Dali::Animation::ScaleBy(Actor actor, Vector3 scale, AlphaFunction alpha, float delaySeconds, float durationSeconds)
- */
- void ScaleBy(Actor& actor, const Vector3& scale, AlphaFunction alpha, float delaySeconds, float durationSeconds);
-
- /**
- * @copydoc Dali::Animation::ScaleTo(Actor actor, float x, float y, float z)
- */
- void ScaleTo(Actor& actor, float x, float y, float z);
-
- /**
- * @copydoc Dali::Animation::ScaleTo(Actor actor, Vector3 scale, AlphaFunction alpha)
- */
- void ScaleTo(Actor& actor, const Vector3& scale, AlphaFunction alpha);
-
- /**
- * @copydoc Dali::Animation::ScaleTo(Actor actor, Vector3 scale, AlphaFunction alpha, float delaySeconds, float durationSeconds)
- */
- void ScaleTo(Actor& actor, const Vector3& scale, AlphaFunction alpha, float delaySeconds, float durationSeconds);
-
- /**
* @copydoc Dali::Animation::Show()
*/
void Show(Actor& actor, float delaySeconds);
*/
void Hide(Actor& actor, float delaySeconds);
- /**
- * @copydoc Dali::Animation::OpacityBy(Actor actor, float opacity)
- */
- void OpacityBy(Actor& actor, float opacity);
-
- /**
- * @copydoc Dali::Animation::OpacityBy(Actor actor, float opacity, AlphaFunction alpha)
- */
- void OpacityBy(Actor& actor, float opacity, AlphaFunction alpha);
-
- /**
- * @copydoc Dali::Animation::OpacityBy(Actor actor, float opacity, AlphaFunction alpha, float delaySeconds, float durationSeconds)()
- */
- void OpacityBy(Actor& actor, float opacity, AlphaFunction alpha, float delaySeconds, float durationSeconds);
-
- /**
- * @copydoc Dali::Animation::OpacityTo(Actor actor, float opacity)
- */
- void OpacityTo(Actor& actor, float opacity);
-
- /**
- * @copydoc Dali::Animation::OpacityTo(Actor actor, float opacity, AlphaFunction alpha)
- */
- void OpacityTo(Actor& actor, float opacity, AlphaFunction alpha);
-
- /**
- * @copydoc Dali::Animation::OpacityTo(Actor actor, float opacity, AlphaFunction alpha, float delaySeconds, float durationSeconds)
- */
- void OpacityTo(Actor& actor, float opacity, AlphaFunction alpha, float delaySeconds, float durationSeconds);
-
- /**
- * @copydoc Dali::Animation::ColorBy(Actor actor, Vector4 color)
- */
- void ColorBy(Actor& actor, const Vector4& color);
-
- /**
- * @copydoc Dali::Animation::ColorBy(Actor actor, Vector4 color, AlphaFunction alpha)
- */
- void ColorBy(Actor& actor, const Vector4& color, AlphaFunction alpha);
-
- /**
- * @copydoc Dali::Animation::ColorBy(Actor actor, Vector4 color, AlphaFunction alpha, float delaySeconds, float durationSeconds)
- */
- void ColorBy(Actor& actor, const Vector4& color, AlphaFunction alpha, float delaySeconds, float durationSeconds);
-
- /**
- * @copydoc Dali::Animation::ColorTo(Actor actor, Vector4 color)
- */
- void ColorTo(Actor& actor, const Vector4& color);
-
- /**
- * @copydoc Dali::Animation::ColorTo(Actor actor, Vector4 color, AlphaFunction alpha)
- */
- void ColorTo(Actor& actor, const Vector4& color, AlphaFunction alpha);
-
- /**
- * @copydoc Dali::Animation::ColorTo(Actor actor, Vector4 color, AlphaFunction alpha, float delaySeconds, float durationSeconds)
- */
- void ColorTo(Actor& actor, const Vector4& color, AlphaFunction alpha, float delaySeconds, float durationSeconds);
-
- /**
- * @copydoc Dali::Animation::Resize(Actor actor, float width, float height)
- */
- void Resize(Actor& actor, float width, float height);
-
- /**
- * @copydoc Dali::Animation::Resize(Actor actor, float width, float height, AlphaFunction alpha)
- */
- void Resize(Actor& actor, float width, float height, AlphaFunction alpha);
-
- /**
- * @copydoc Dali::Animation::Resize(Actor actor, float width, float height, AlphaFunction alpha, float delaySeconds, float durationSeconds)
- */
- void Resize(Actor& actor, float width, float height, AlphaFunction alpha, float delaySeconds, float durationSeconds);
-
- /**
- * @copydoc Dali::Animation::Resize(Actor actor, Vector3 size)
- */
- void Resize(Actor& actor, const Vector3& size);
-
- /**
- * @copydoc Dali::Animation::Resize(Actor actor, Vector3 size, AlphaFunction alpha)
- */
- void Resize(Actor& actor, const Vector3& size, AlphaFunction alpha);
-
- /**
- * @copydoc Dali::Animation::Resize(Actor actor, Vector3 size, AlphaFunction alpha, float delaySeconds, float durationSeconds)
- */
- void Resize(Actor& actor, const Vector3& size, AlphaFunction alpha, float delaySeconds, float durationSeconds);
-
/*
* @copydoc Dali::Animation::SetCurrentProgress()
*/
}
/**
- * Retrieve the UpdateManager associated with this animation.
- * @return The UpdateManager.
+ * Retrieve the event thread services object
+ * @return The interface for sending messages to the scene graph
*/
- SceneGraph::UpdateManager& GetUpdateManager()
+ EventThreadServices& GetEventThreadServices()
{
- return mUpdateManager;
+ return mEventThreadServices;
}
protected:
/**
* Construct a new Animation.
- * @param[in] updateManager The UpdateManager associated with this animation.
+ * @param[in] eventThreadServices The interface for sending messages to the scene graph
* @param[in] playlist The list of currently playing animations.
* @param[in] durationSeconds The duration of the animation in seconds.
* @param[in] endAction The action to perform when the animation ends.
* @param[in] disconnectAction The action to perform when the property owner of an animator is disconnected.
* @param[in] defaultAlpha The default alpha function to apply to animators.
*/
- Animation( SceneGraph::UpdateManager& updateManager,
+ Animation( EventThreadServices& eventThreadServices,
AnimationPlaylist& playlist,
float durationSeconds,
EndAction endAction,
Animation& operator=(const Animation& rhs);
private:
-
- SceneGraph::UpdateManager& mUpdateManager;
+ EventThreadServices& mEventThreadServices;
AnimationPlaylist& mPlaylist;
const SceneGraph::Animation* mAnimation;
int mNotificationCount; ///< Keep track of how many Finished signals have been emitted.
- Dali::Animation::AnimationSignalV2 mFinishedSignal;
+ Dali::Animation::AnimationSignalType mFinishedSignal;
FinishedCallback mFinishedCallback;
Object* mFinishedCallbackObject;
// Cached for public getters
float mDurationSeconds;
float mSpeedFactor;
- bool mIsLooping;
+ int mLoopCount;
+ int mCurrentLoop;
Vector2 mPlayRange;
EndAction mEndAction;
EndAction mDisconnectAction;
AlphaFunction mDefaultAlpha;
+ Dali::Animation::State mState;
};