Change SpringData::GetDuration function from static to member method. 59/323859/4
authorSeungho Baek <sbsh.baek@samsung.com>
Thu, 8 May 2025 07:02:13 +0000 (16:02 +0900)
committerSeungho Baek <sbsh.baek@samsung.com>
Thu, 8 May 2025 09:06:41 +0000 (18:06 +0900)
Change-Id: I3ede8ee6aad1e58bea11d789cd1cc57d84b9f51f
Signed-off-by: Seungho Baek <sbsh.baek@samsung.com>
automated-tests/src/dali/utc-Dali-Animation.cpp
dali/public-api/animation/alpha-function.cpp
dali/public-api/animation/alpha-function.h
dali/public-api/animation/spring-data.cpp
dali/public-api/animation/spring-data.h

index cf9dfaabab3c38f04bc4b14d43c143406c398fe7..e4fa828d893e147ff8f21dbe47f1a61d19c882f8 100644 (file)
@@ -17469,11 +17469,11 @@ int UtcDaliAnimationSpringFinished(void)
   application.GetScene().Add(actor);
 
   SpringData springData{100.0f, 10.0f, 1.0f};
-  float      convergeDuration = SpringData::GetDuration(springData);
+  float      convergeDuration = springData.GetDuration();
   DALI_TEST_CHECK(convergeDuration < 2.0f);
   tet_printf("convergeDuration : %f\n", convergeDuration);
 
-  Animation animation         = Animation::New(convergeDuration);
+  Animation animation = Animation::New(convergeDuration);
   animation.AnimateTo(Property(actor, Dali::Actor::Property::POSITION_X), 100.0f, AlphaFunction(springData));
   animation.Play();
 
@@ -17590,7 +17590,7 @@ int UtcDaliAnimationSpringOverdamped(void)
   application.GetScene().Add(actor);
 
   SpringData springData{80.0f, 20.0f, 1.0f};
-  float      convergeDuration = SpringData::GetDuration(springData);
+  float      convergeDuration = springData.GetDuration();
   DALI_TEST_CHECK(convergeDuration > 0.0f);
 
   Animation animation = Animation::New(convergeDuration);
@@ -17640,7 +17640,7 @@ int UtcDaliAnimationSpringUnderdamped(void)
   application.GetScene().Add(actor);
 
   SpringData springData{600.0f, 15.0f, 1.0f};
-  float      convergeDuration = SpringData::GetDuration(springData);
+  float      convergeDuration = springData.GetDuration();
   DALI_TEST_CHECK(convergeDuration > 0.0f);
   tet_printf("convergeDuration : %f\n", convergeDuration);
 
index 048fabbe43345b7c2381327d3431f0185f627b00..960c79de5e9290c593bb294261ac08c389cf6e45 100644 (file)
@@ -92,7 +92,7 @@ AlphaFunction::AlphaFunction(SpringType springType)
 {
 }
 
-AlphaFunction::AlphaFunction(Dali::SpringData springData)
+AlphaFunction::AlphaFunction(const Dali::SpringData& springData)
 : mMode(CUSTOM_SPRING),
   mBuiltin(DEFAULT),
   mSpringData(springData)
index 61a8a6c847d3959745827ab0c38f6918c251fe43..4db38e3fd33856fa505c44d8f3b747d2bbd74fc4 100644 (file)
@@ -111,7 +111,7 @@ public:
     BOUNCY,
 
     /**
-     * @brief Slow spring. Smooth and relaxed motion with longer settling
+     * @brief Slow spring. Smooth and relaxed motion with longer settling.
      * @SINCE_2_4.17
      */
     SLOW
@@ -173,7 +173,7 @@ public:
    * that the value will exactly reach 1 at the end of the animation duration.
    * To ensure the animation ends at 1, you may need to adjust the duration according to the spring configuration.
    */
-  AlphaFunction(Dali::SpringData springData);
+  AlphaFunction(const Dali::SpringData& springData);
 
   /**
    * @brief Returns the control points of the alpha function.
index caf92d615ca79ffd46682d8baf8d2015af0f0b2c..9a4a57cd6e62796ea7390c9c980e392d016b7fd4 100644 (file)
@@ -44,19 +44,15 @@ SpringData::SpringData(float stiffness, float damping, float mass)
 {
 }
 
-float SpringData::GetDuration(const SpringData& springData)
+float SpringData::GetDuration()
 {
-  if(springData.stiffness < MIN_STIFFNESS || springData.damping < MIN_DAMPING || springData.mass < MIN_MASS)
+  if(stiffness < MIN_STIFFNESS || damping < MIN_DAMPING || mass < MIN_MASS)
   {
     return 0.0f;
   }
 
-  double stiffness = static_cast<double>(springData.stiffness);
-  double damping   = static_cast<double>(springData.damping);
-  double mass      = static_cast<double>(springData.mass);
-
-  double omega0 = std::sqrt(stiffness / mass);
-  double zeta   = damping / (2.0 * std::sqrt(stiffness * mass));
+  double omega0 = std::sqrt(static_cast<double>(stiffness) / static_cast<double>(mass));
+  double zeta   = static_cast<double>(damping) / (2.0 * std::sqrt(static_cast<double>(stiffness) * static_cast<double>(mass)));
   double time   = 0.0;
 
   if(zeta < 1.0)
index 152ce79d41f606ff06d706ece4d8289d6a0cddea..c6376c54a5e6777e180bf56b6be24cc41ac0525b 100644 (file)
@@ -50,13 +50,14 @@ struct DALI_CORE_API SpringData
   float mass;      ///< Mass of the object. Affects inertia and the duration of the motion. Minimum value is 0.1.
 
   /**
-   * @brief Returns the time in seconds it takes for a Spring Animation to converge based on the input SpringData.
-   * The maximum value for the returned duration is 100 secons.
+   * @brief Returns the time in seconds it takes for a Spring Animation to converge based on the SpringData.
+   * The maximum value for the returned duration is 100 seconds.
    * Since this value is calculated in an incremental manner, it may take longer if used frequently.
    *
-   * @SINCE_2_4.17
+   * @SINCE_2_4.18
+   * @return Expected duration for input springData.
    */
-  static float GetDuration(const SpringData& springData);
+  float GetDuration();
 };
 
 /**