Use modern construct 'using' instead of typedef.
[platform/core/uifw/dali-core.git] / dali / internal / event / animation / key-frames-impl.h
index 433d2bc..5d9a222 100644 (file)
@@ -1,8 +1,8 @@
-#ifndef __DALI_INTERNAL_KEY_FRAMES_H__
-#define __DALI_INTERNAL_KEY_FRAMES_H__
+#ifndef DALI_INTERNAL_KEY_FRAMES_H
+#define DALI_INTERNAL_KEY_FRAMES_H
 
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 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.
@@ -32,8 +32,7 @@ namespace Internal
 {
 class KeyFrameSpec;
 class KeyFrames;
-typedef IntrusivePtr<KeyFrames> KeyFramesPtr;
-
+using KeyFramesPtr = IntrusivePtr<KeyFrames>;
 
 /**
  * KeyFrames class is responsible for creating and building a specialized KeyFrame class
@@ -95,6 +94,11 @@ public:
    */
   KeyFrameSpec* GetKeyFramesBase() const;
 
+  /**
+   * Return the value of the last key frame.
+   */
+  Dali::Property::Value GetLastKeyFrameValue() const;
+
 private:
   Dali::Property::Type mType; // Type of the specialization
   IntrusivePtr<KeyFrameSpec> mKeyFrames;   // Pointer to the specialized key frame object
@@ -114,7 +118,14 @@ public:
 
   KeyFrameSpec() {}
 
-  virtual unsigned int GetNumberOfKeyFrames() const = 0;
+  virtual std::size_t GetNumberOfKeyFrames() const = 0;
+
+  /**
+   * Get the key frame value as a Property::Value.
+   * @param[in] index The index of the key frame to fetch
+   * @param[out] value The value of the given key frame
+   */
+  virtual void GetKeyFrameAsValue( std::size_t index, Property::Value& value ) = 0;
 
 protected:
 
@@ -134,8 +145,8 @@ template<typename V>
 class KeyFrameBaseSpec : public KeyFrameSpec
 {
 private:
-  typedef ProgressValue<V> PV;
-  typedef std::vector<PV> PVContainer;
+  using PV          = ProgressValue<V>;
+  using PVContainer = std::vector<PV>;
 
   PVContainer                    mPVs;       // The ProgressValue pairs
   KeyFrameChannel<V>*            mKeyFrames; // The key frame interpolator
@@ -208,7 +219,7 @@ public:
    * Get the number of key frames
    * @return The size of the progress value vector
    */
-  virtual unsigned int GetNumberOfKeyFrames() const
+  virtual std::size_t GetNumberOfKeyFrames() const
   {
     return mPVs.size();
   }
@@ -227,6 +238,14 @@ public:
   }
 
   /**
+   * @copydoc KeyFrameSpec::GetKeyFrameAsValue()
+   */
+  virtual void GetKeyFrameAsValue( std::size_t index, Property::Value& value )
+  {
+    value = mPVs[index].mValue;
+  }
+
+  /**
    * Return whether the progress is valid for the range of keyframes. (The first
    * keyframe doesn't have to start at 0, and the last doesn't have to end at 1.0)
    * @param[in] progress The progress to test
@@ -248,22 +267,21 @@ public:
   }
 };
 
-typedef KeyFrameBaseSpec<float>          KeyFrameNumber;
-typedef KeyFrameBaseSpec<bool>           KeyFrameBoolean;
-typedef KeyFrameBaseSpec<int>            KeyFrameInteger;
-typedef KeyFrameBaseSpec<Vector2>        KeyFrameVector2;
-typedef KeyFrameBaseSpec<Vector3>        KeyFrameVector3;
-typedef KeyFrameBaseSpec<Vector4>        KeyFrameVector4;
-typedef KeyFrameBaseSpec<Quaternion>     KeyFrameQuaternion;
-
-typedef IntrusivePtr<KeyFrameBoolean>         KeyFrameBooleanPtr;
-typedef IntrusivePtr<KeyFrameNumber>          KeyFrameNumberPtr;
-typedef IntrusivePtr<KeyFrameInteger>         KeyFrameIntegerPtr;
-typedef IntrusivePtr<KeyFrameVector2>         KeyFrameVector2Ptr;
-typedef IntrusivePtr<KeyFrameVector3>         KeyFrameVector3Ptr;
-typedef IntrusivePtr<KeyFrameVector4>         KeyFrameVector4Ptr;
-typedef IntrusivePtr<KeyFrameQuaternion>      KeyFrameQuaternionPtr;
-
+using KeyFrameNumber     = KeyFrameBaseSpec<float>;
+using KeyFrameBoolean    = KeyFrameBaseSpec<bool>;
+using KeyFrameInteger    = KeyFrameBaseSpec<int>;
+using KeyFrameVector2    = KeyFrameBaseSpec<Vector2>;
+using KeyFrameVector3    = KeyFrameBaseSpec<Vector3>;
+using KeyFrameVector4    = KeyFrameBaseSpec<Vector4>;
+using KeyFrameQuaternion = KeyFrameBaseSpec<Quaternion>;
+
+using KeyFrameBooleanPtr    = IntrusivePtr<KeyFrameBoolean>;
+using KeyFrameNumberPtr     = IntrusivePtr<KeyFrameNumber>;
+using KeyFrameIntegerPtr    = IntrusivePtr<KeyFrameInteger>;
+using KeyFrameVector2Ptr    = IntrusivePtr<KeyFrameVector2>;
+using KeyFrameVector3Ptr    = IntrusivePtr<KeyFrameVector3>;
+using KeyFrameVector4Ptr    = IntrusivePtr<KeyFrameVector4>;
+using KeyFrameQuaternionPtr = IntrusivePtr<KeyFrameQuaternion>;
 
 inline void GetSpecialization(Internal::KeyFrames& keyFrames, Internal::KeyFrameBoolean*& keyFrameSpec)
 {
@@ -356,4 +374,4 @@ inline const Internal::KeyFrames& GetImplementation(const Dali::KeyFrames& keyFr
 
 } // Dali
 
-#endif //__DALI_INTERNAL_KEY_FRAMES_H__
+#endif // DALI_INTERNAL_KEY_FRAMES_H