From: Eunki, Hong Date: Fri, 9 Jun 2023 02:19:29 +0000 (+0900) Subject: Use Dali::KeyFrames during AnimateBetween X-Git-Tag: dali_2.2.31~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ec39cb64ba6324aa5f8b31d6225b75d7930d22d3;p=platform%2Fcore%2Fuifw%2Fdali-core.git Use Dali::KeyFrames during AnimateBetween Since KeyFrames is already BaseHandle, we don't need to use reference of BaseHandle. So let we make BaseHandle instead of Internal::KeyFrames. Change-Id: I32d79aa382dde45af07bb3ded376c37fcdbfe629 Signed-off-by: Eunki, Hong --- diff --git a/dali/internal/event/animation/animation-impl.cpp b/dali/internal/event/animation/animation-impl.cpp index 4547efa..f182e9e 100644 --- a/dali/internal/event/animation/animation-impl.cpp +++ b/dali/internal/event/animation/animation-impl.cpp @@ -24,6 +24,7 @@ // INTERNAL INCLUDES #include #include +#include #include #include #include @@ -654,46 +655,48 @@ void Animation::AnimateTo(Property& target, Property::Value destinationValue, Al AppendConnectorTargetValues({std::move(destinationValue), period, connectorIndex, Animation::TO}); } -void Animation::AnimateBetween(Property target, const KeyFrames& keyFrames) +void Animation::AnimateBetween(Property target, Dali::KeyFrames keyFrames) { AnimateBetween(target, keyFrames, mDefaultAlpha, TimePeriod(mDurationSeconds), DEFAULT_INTERPOLATION); } -void Animation::AnimateBetween(Property target, const KeyFrames& keyFrames, Interpolation interpolation) +void Animation::AnimateBetween(Property target, Dali::KeyFrames keyFrames, Interpolation interpolation) { AnimateBetween(target, keyFrames, mDefaultAlpha, TimePeriod(mDurationSeconds), interpolation); } -void Animation::AnimateBetween(Property target, const KeyFrames& keyFrames, TimePeriod period) +void Animation::AnimateBetween(Property target, Dali::KeyFrames keyFrames, TimePeriod period) { AnimateBetween(target, keyFrames, mDefaultAlpha, period, DEFAULT_INTERPOLATION); } -void Animation::AnimateBetween(Property target, const KeyFrames& keyFrames, TimePeriod period, Interpolation interpolation) +void Animation::AnimateBetween(Property target, Dali::KeyFrames keyFrames, TimePeriod period, Interpolation interpolation) { AnimateBetween(target, keyFrames, mDefaultAlpha, period, interpolation); } -void Animation::AnimateBetween(Property target, const KeyFrames& keyFrames, AlphaFunction alpha) +void Animation::AnimateBetween(Property target, Dali::KeyFrames keyFrames, AlphaFunction alpha) { AnimateBetween(target, keyFrames, alpha, TimePeriod(mDurationSeconds), DEFAULT_INTERPOLATION); } -void Animation::AnimateBetween(Property target, const KeyFrames& keyFrames, AlphaFunction alpha, Interpolation interpolation) +void Animation::AnimateBetween(Property target, Dali::KeyFrames keyFrames, AlphaFunction alpha, Interpolation interpolation) { AnimateBetween(target, keyFrames, alpha, TimePeriod(mDurationSeconds), interpolation); } -void Animation::AnimateBetween(Property target, const KeyFrames& keyFrames, AlphaFunction alpha, TimePeriod period) +void Animation::AnimateBetween(Property target, Dali::KeyFrames keyFrames, AlphaFunction alpha, TimePeriod period) { AnimateBetween(target, keyFrames, alpha, period, DEFAULT_INTERPOLATION); } -void Animation::AnimateBetween(Property target, const KeyFrames& keyFrames, AlphaFunction alpha, TimePeriod period, Interpolation interpolation) +void Animation::AnimateBetween(Property target, Dali::KeyFrames keyFrames, AlphaFunction alpha, TimePeriod period, Interpolation interpolation) { - Object& object = GetImplementation(target.object); + Object& object = GetImplementation(target.object); + const KeyFrames& keyFramesImpl = GetImplementation(keyFrames); + const Property::Type propertyType = object.GetPropertyType(target.propertyIndex); - const Property::Type destinationType = keyFrames.GetType(); + const Property::Type destinationType = keyFramesImpl.GetType(); // validate animation parameters, if component index is set then use float as checked type ValidateParameters((target.componentIndex == Property::INVALID_COMPONENT_INDEX) ? propertyType : Property::FLOAT, @@ -702,14 +705,14 @@ void Animation::AnimateBetween(Property target, const KeyFrames& keyFrames, Alph ExtendDuration(period); - AppendConnectorTargetValues({keyFrames.GetLastKeyFrameValue(), period, mConnectors.Count(), BETWEEN}); + AppendConnectorTargetValues({keyFramesImpl.GetLastKeyFrameValue(), period, mConnectors.Count(), BETWEEN}); // using destination type so component animation gets correct type switch(destinationType) { case Dali::Property::BOOLEAN: { - auto kf = GetSpecialization(keyFrames); + auto kf = GetSpecialization(keyFramesImpl); AddAnimatorConnector(AnimatorConnector::New(object, target.propertyIndex, target.componentIndex, @@ -721,7 +724,7 @@ void Animation::AnimateBetween(Property target, const KeyFrames& keyFrames, Alph case Dali::Property::INTEGER: { - auto kf = GetSpecialization(keyFrames); + auto kf = GetSpecialization(keyFramesImpl); AddAnimatorConnector(AnimatorConnector::New(object, target.propertyIndex, target.componentIndex, @@ -733,7 +736,7 @@ void Animation::AnimateBetween(Property target, const KeyFrames& keyFrames, Alph case Dali::Property::FLOAT: { - auto kf = GetSpecialization(keyFrames); + auto kf = GetSpecialization(keyFramesImpl); AddAnimatorConnector(AnimatorConnector::New(object, target.propertyIndex, target.componentIndex, @@ -745,7 +748,7 @@ void Animation::AnimateBetween(Property target, const KeyFrames& keyFrames, Alph case Dali::Property::VECTOR2: { - auto kf = GetSpecialization(keyFrames); + auto kf = GetSpecialization(keyFramesImpl); AddAnimatorConnector(AnimatorConnector::New(object, target.propertyIndex, target.componentIndex, @@ -757,7 +760,7 @@ void Animation::AnimateBetween(Property target, const KeyFrames& keyFrames, Alph case Dali::Property::VECTOR3: { - auto kf = GetSpecialization(keyFrames); + auto kf = GetSpecialization(keyFramesImpl); AddAnimatorConnector(AnimatorConnector::New(object, target.propertyIndex, target.componentIndex, @@ -769,7 +772,7 @@ void Animation::AnimateBetween(Property target, const KeyFrames& keyFrames, Alph case Dali::Property::VECTOR4: { - auto kf = GetSpecialization(keyFrames); + auto kf = GetSpecialization(keyFramesImpl); AddAnimatorConnector(AnimatorConnector::New(object, target.propertyIndex, target.componentIndex, @@ -781,7 +784,7 @@ void Animation::AnimateBetween(Property target, const KeyFrames& keyFrames, Alph case Dali::Property::ROTATION: { - auto kf = GetSpecialization(keyFrames); + auto kf = GetSpecialization(keyFramesImpl); AddAnimatorConnector(AnimatorConnector::New(object, target.propertyIndex, target.componentIndex, diff --git a/dali/internal/event/animation/animation-impl.h b/dali/internal/event/animation/animation-impl.h index e2cc571..73972b0 100644 --- a/dali/internal/event/animation/animation-impl.h +++ b/dali/internal/event/animation/animation-impl.h @@ -21,9 +21,9 @@ // INTERNAL INCLUDES #include #include -#include #include #include +#include #include #include #include @@ -280,44 +280,44 @@ public: void AnimateTo(Property& target, Property::Value destinationValue, AlphaFunction alpha, TimePeriod period); /** - * @copydoc Dali::Animation::AnimateBetween(Property target, KeyFrames& keyFrames) + * @copydoc Dali::Animation::AnimateBetween(Property target, Dali::KeyFrames keyFrames) */ - void AnimateBetween(Property target, const KeyFrames& keyFrames); + void AnimateBetween(Property target, Dali::KeyFrames keyFrames); /** - * @copydoc Dali::Animation::AnimateBetween(Property target, KeyFrames& keyFrames, Interpolation interpolation) + * @copydoc Dali::Animation::AnimateBetween(Property target, Dali::KeyFrames keyFrames, Interpolation interpolation) */ - void AnimateBetween(Property target, const KeyFrames& keyFrames, Interpolation interpolation); + void AnimateBetween(Property target, Dali::KeyFrames keyFrames, Interpolation interpolation); /** - * @copydoc Dali::Animation::AnimateBetween(Property target, KeyFrames& keyFrames, TimePeriod period) + * @copydoc Dali::Animation::AnimateBetween(Property target, Dali::KeyFrames keyFrames, TimePeriod period) */ - void AnimateBetween(Property target, const KeyFrames& keyFrames, TimePeriod period); + void AnimateBetween(Property target, Dali::KeyFrames keyFrames, TimePeriod period); /** - * @copydoc Dali::Animation::AnimateBetween(Property target, KeyFrames& keyFrames, TimePeriod period, Interpolation interpolation) + * @copydoc Dali::Animation::AnimateBetween(Property target, Dali::KeyFrames keyFrames, TimePeriod period, Interpolation interpolation) */ - void AnimateBetween(Property target, const KeyFrames& keyFrames, TimePeriod period, Interpolation interpolation); + void AnimateBetween(Property target, Dali::KeyFrames keyFrames, TimePeriod period, Interpolation interpolation); /** - * @copydoc Dali::Animation::AnimateBetween(Property target, KeyFrames& keyFrames, AlphaFunction alpha) + * @copydoc Dali::Animation::AnimateBetween(Property target, Dali::KeyFrames keyFrames, AlphaFunction alpha) */ - void AnimateBetween(Property target, const KeyFrames& keyFrames, AlphaFunction alpha); + void AnimateBetween(Property target, Dali::KeyFrames keyFrames, AlphaFunction alpha); /** - * @copydoc Dali::Animation::AnimateBetween(Property target, KeyFrames& keyFrames, AlphaFunction alpha, Interpolation interpolation) + * @copydoc Dali::Animation::AnimateBetween(Property target, Dali::KeyFrames keyFrames, AlphaFunction alpha, Interpolation interpolation) */ - void AnimateBetween(Property target, const KeyFrames& keyFrames, AlphaFunction alpha, Interpolation interpolation); + void AnimateBetween(Property target, Dali::KeyFrames keyFrames, AlphaFunction alpha, Interpolation interpolation); /** - * @copydoc Dali::Animation::AnimateBetween(Property target, KeyFrames& keyFrames, AlphaFunction alpha, TimePeriod period) + * @copydoc Dali::Animation::AnimateBetween(Property target, Dali::KeyFrames keyFrames, AlphaFunction alpha, TimePeriod period) */ - void AnimateBetween(Property target, const KeyFrames& keyFrames, AlphaFunction alpha, TimePeriod period); + void AnimateBetween(Property target, Dali::KeyFrames keyFrames, AlphaFunction alpha, TimePeriod period); /** - * @copydoc Dali::Animation::AnimateBetween(Property target, KeyFrames& keyFrames, AlphaFunction alpha, TimePeriod period, Interpolation interpolation ) + * @copydoc Dali::Animation::AnimateBetween(Property target, Dali::KeyFrames keyFrames, AlphaFunction alpha, TimePeriod period, Interpolation interpolation ) */ - void AnimateBetween(Property target, const KeyFrames& keyFrames, AlphaFunction alpha, TimePeriod period, Interpolation interpolation); + void AnimateBetween(Property target, Dali::KeyFrames keyFrames, AlphaFunction alpha, TimePeriod period, Interpolation interpolation); // Actor-specific convenience functions diff --git a/dali/public-api/animation/animation.cpp b/dali/public-api/animation/animation.cpp index 8e47393..53e8ee0 100644 --- a/dali/public-api/animation/animation.cpp +++ b/dali/public-api/animation/animation.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2023 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -211,44 +211,44 @@ void Animation::AnimateTo(Property target, Property::Value destinationValue, Alp GetImplementation(*this).AnimateTo(target, std::move(destinationValue), alpha, period); } -void Animation::AnimateBetween(Property target, KeyFrames& keyFrames) +void Animation::AnimateBetween(Property target, KeyFrames keyFrames) { - GetImplementation(*this).AnimateBetween(target, GetImplementation(keyFrames)); + GetImplementation(*this).AnimateBetween(target, keyFrames); } -void Animation::AnimateBetween(Property target, KeyFrames& keyFrames, Interpolation interpolation) +void Animation::AnimateBetween(Property target, KeyFrames keyFrames, Interpolation interpolation) { - GetImplementation(*this).AnimateBetween(target, GetImplementation(keyFrames), interpolation); + GetImplementation(*this).AnimateBetween(target, keyFrames, interpolation); } -void Animation::AnimateBetween(Property target, KeyFrames& keyFrames, TimePeriod period) +void Animation::AnimateBetween(Property target, KeyFrames keyFrames, TimePeriod period) { - GetImplementation(*this).AnimateBetween(target, GetImplementation(keyFrames), period); + GetImplementation(*this).AnimateBetween(target, keyFrames, period); } -void Animation::AnimateBetween(Property target, KeyFrames& keyFrames, TimePeriod period, Interpolation interpolation) +void Animation::AnimateBetween(Property target, KeyFrames keyFrames, TimePeriod period, Interpolation interpolation) { - GetImplementation(*this).AnimateBetween(target, GetImplementation(keyFrames), period, interpolation); + GetImplementation(*this).AnimateBetween(target, keyFrames, period, interpolation); } -void Animation::AnimateBetween(Property target, KeyFrames& keyFrames, AlphaFunction alpha) +void Animation::AnimateBetween(Property target, KeyFrames keyFrames, AlphaFunction alpha) { - GetImplementation(*this).AnimateBetween(target, GetImplementation(keyFrames), alpha); + GetImplementation(*this).AnimateBetween(target, keyFrames, alpha); } -void Animation::AnimateBetween(Property target, KeyFrames& keyFrames, AlphaFunction alpha, Interpolation interpolation) +void Animation::AnimateBetween(Property target, KeyFrames keyFrames, AlphaFunction alpha, Interpolation interpolation) { - GetImplementation(*this).AnimateBetween(target, GetImplementation(keyFrames), alpha, interpolation); + GetImplementation(*this).AnimateBetween(target, keyFrames, alpha, interpolation); } -void Animation::AnimateBetween(Property target, KeyFrames& keyFrames, AlphaFunction alpha, TimePeriod period) +void Animation::AnimateBetween(Property target, KeyFrames keyFrames, AlphaFunction alpha, TimePeriod period) { - GetImplementation(*this).AnimateBetween(target, GetImplementation(keyFrames), alpha, period); + GetImplementation(*this).AnimateBetween(target, keyFrames, alpha, period); } -void Animation::AnimateBetween(Property target, KeyFrames& keyFrames, AlphaFunction alpha, TimePeriod period, Interpolation interpolation) +void Animation::AnimateBetween(Property target, KeyFrames keyFrames, AlphaFunction alpha, TimePeriod period, Interpolation interpolation) { - GetImplementation(*this).AnimateBetween(target, GetImplementation(keyFrames), alpha, period, interpolation); + GetImplementation(*this).AnimateBetween(target, keyFrames, alpha, period, interpolation); } // Actor specific animations diff --git a/dali/public-api/animation/animation.h b/dali/public-api/animation/animation.h index 654d0eb..639bfb6 100644 --- a/dali/public-api/animation/animation.h +++ b/dali/public-api/animation/animation.h @@ -2,7 +2,7 @@ #define DALI_ANIMATION_H /* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2023 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -125,7 +125,7 @@ class DALI_CORE_API Animation : public BaseHandle public: using AnimationSignalType = Signal; ///< Animation finished signal type @SINCE_1_0.0 - using AnyFunction = Any; ///< Interpolation function @SINCE_1_0.0 + using AnyFunction = Any; ///< Interpolation function @SINCE_1_0.0 /** * @brief Enumeration for what to do when the animation ends, is stopped, or is destroyed. @@ -625,7 +625,7 @@ public: * @param[in] target The target object property to animate * @param[in] keyFrames The set of time/value pairs between which to animate */ - void AnimateBetween(Property target, KeyFrames& keyFrames); + void AnimateBetween(Property target, KeyFrames keyFrames); /** * @brief Animates a property between keyframes. @@ -635,7 +635,7 @@ public: * @param[in] keyFrames The set of time/value pairs between which to animate * @param[in] interpolation The method used to interpolate between values */ - void AnimateBetween(Property target, KeyFrames& keyFrames, Interpolation interpolation); + void AnimateBetween(Property target, KeyFrames keyFrames, Interpolation interpolation); /** * @brief Animates a property between keyframes. @@ -645,7 +645,7 @@ public: * @param[in] keyFrames The set of time/value pairs between which to animate * @param[in] alpha The alpha function to apply */ - void AnimateBetween(Property target, KeyFrames& keyFrames, AlphaFunction alpha); + void AnimateBetween(Property target, KeyFrames keyFrames, AlphaFunction alpha); /** * @brief Animates a property between keyframes. @@ -656,7 +656,7 @@ public: * @param[in] alpha The alpha function to apply * @param[in] interpolation The method used to interpolate between values */ - void AnimateBetween(Property target, KeyFrames& keyFrames, AlphaFunction alpha, Interpolation interpolation); + void AnimateBetween(Property target, KeyFrames keyFrames, AlphaFunction alpha, Interpolation interpolation); /** * @brief Animates a property between keyframes. @@ -666,7 +666,7 @@ public: * @param[in] keyFrames The set of time/value pairs between which to animate * @param[in] period The effect will occur during this time period */ - void AnimateBetween(Property target, KeyFrames& keyFrames, TimePeriod period); + void AnimateBetween(Property target, KeyFrames keyFrames, TimePeriod period); /** * @brief Animates a property between keyframes. @@ -677,7 +677,7 @@ public: * @param[in] period The effect will occur during this time period * @param[in] interpolation The method used to interpolate between values */ - void AnimateBetween(Property target, KeyFrames& keyFrames, TimePeriod period, Interpolation interpolation); + void AnimateBetween(Property target, KeyFrames keyFrames, TimePeriod period, Interpolation interpolation); /** * @brief Animates a property between keyframes. @@ -688,7 +688,7 @@ public: * @param[in] alpha The alpha function to apply * @param[in] period The effect will occur during this time period */ - void AnimateBetween(Property target, KeyFrames& keyFrames, AlphaFunction alpha, TimePeriod period); + void AnimateBetween(Property target, KeyFrames keyFrames, AlphaFunction alpha, TimePeriod period); /** * @brief Animates a property between keyframes. @@ -700,7 +700,7 @@ public: * @param[in] period The effect will occur during this time period * @param[in] interpolation The method used to interpolate between values */ - void AnimateBetween(Property target, KeyFrames& keyFrames, AlphaFunction alpha, TimePeriod period, Interpolation interpolation); + void AnimateBetween(Property target, KeyFrames keyFrames, AlphaFunction alpha, TimePeriod period, Interpolation interpolation); // Actor-specific convenience methods