[NUI.Scene3D] CodeSync MotionData API and documents
authorEunki Hong <eunkiki.hong@samsung.com>
Mon, 25 Sep 2023 16:31:44 +0000 (01:31 +0900)
committerEunki Hong <h.pichulia@gmail.com>
Tue, 26 Sep 2023 08:03:12 +0000 (17:03 +0900)
1. Fix TCT error #5576
2. Follow some comments fix up as #5452

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
src/Tizen.NUI.Scene3D/src/internal/Interop/Interop.MotionIndex.cs
src/Tizen.NUI.Scene3D/src/public/Controls/Model.cs
src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionData.cs
src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/BlendShapeIndex.cs
src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/MotionIndex.cs
src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/MotionPropertyIndex.cs
src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/MotionTransformIndex.cs
src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionValue.cs

index b0ae286..78086c3 100755 (executable)
@@ -95,13 +95,13 @@ namespace Tizen.NUI.Scene3D
             [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_MotionPropertyIndex_Assign")]
             public static extern global::System.IntPtr MotionPropertyIndexAssign(global::System.Runtime.InteropServices.HandleRef motionPropertyIndex, global::System.Runtime.InteropServices.HandleRef sourceMotionPropertyIndex);
 
-            [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_MotionTransformIndex_DownCast")]
+            [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_MotionPropertyIndex_DownCast")]
             public static extern global::System.IntPtr MotionPropertyIndexDownCast(global::System.Runtime.InteropServices.HandleRef motionPropertyIndex);
 
-            [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_MotionTransformIndex_SetTransformType")]
+            [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_MotionPropertyIndex_SetPropertyId")]
             public static extern void SetPropertyId(global::System.Runtime.InteropServices.HandleRef motionPropertyIndex, global::System.Runtime.InteropServices.HandleRef propertyKey);
 
-            [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_MotionTransformIndex_GetTransformType")]
+            [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_MotionPropertyIndex_GetPropertyId")]
             public static extern global::System.IntPtr GetPropertyId(global::System.Runtime.InteropServices.HandleRef motionPropertyIndex);
             #endregion
 
index 5c217fb..c830773 100755 (executable)
@@ -512,9 +512,8 @@ namespace Tizen.NUI.Scene3D
         /// Generate animation by MotionData.
         /// If there is no animatable item for MotionData, return null.
         /// </summary>
-        /// <param name="motionData">Inputed list of pair of MotionIndex and MotionValue, and duration.</param>
-        /// <returns>Generated animation by input motion data, or null if there is no animatable item exist about inputed motionData</returns>
-        // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
+        /// <param name="motionData">Source motion data.</param>
+        /// <returns>Generated animation from then given motion data, or null if there is no animatable item in <paramref name="motionData"/></returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public Animation GenerateMotionDataAnimation(MotionData motionData)
         {
@@ -545,12 +544,11 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Prototype of MotionData setter.
-        /// Note that this API didn't apply KeyFrames animation.
+        /// Set values from MotionData.
+        /// Note that this method doesn not apply KeyFrames animation.
         /// If you want to apply the animation, please use <see cref="GenerateMotionDataAnimation(MotionData)"/> and play the result.
         /// </summary>
-        /// <param name="motionData">Inputed list of pair of MotionIndex and MotionValue.</param>
-        // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
+        /// <param name="motionData">Source motion data.</param>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public void SetMotionData(MotionData motionData)
         {
index 30cc0b8..a8e338d 100644 (file)
@@ -26,8 +26,13 @@ namespace Tizen.NUI.Scene3D
     /// List of model motion definitions.
     /// Each motion has pair of <see cref="MotionIndex"/> and <see cref="MotionValue"/>.
     /// MotionIndex is abstract class that specify the target of motion.
-    /// MotionValue is target value of motion. It can be KeyFrames.
-    ///
+    /// MotionValue is destination value of target for the motion. It can be expressed with <see cref="Tizen.NUI.PropertyValue"/> or <see cref="Tizen.NUI.KeyFrames"/>.
+    /// </summary>
+    /// <remarks>
+    /// We don't check duplicated MotionIndex internally.
+    /// We don't check MotionValue type is matched with MotionIndex.
+    /// </remarks>
+    /// <example>
     /// We can generate list of motions by MotionIndex and MotionValue classes.
     ///
     /// <code>
@@ -47,7 +52,8 @@ namespace Tizen.NUI.Scene3D
     /// // Make MotionIndex with BlendShapeIndex
     /// motionData.Add(new BlendShapeIndex(new PropertyKey("nodeName"), new PropertyKey("blendShapeName")), motionData.GetValue(1u));
     /// </code>
-    ///
+    /// </example>
+    /// <example>
     /// We can request to load MotionData from file or buffer asynchronously.
     /// If load completed, <see cref="LoadCompleted"/> event will be invoked.
     /// If we try to load before LoadCompleted event invoked, previous load request cancel and only latest request loaded.
@@ -65,7 +71,8 @@ namespace Tizen.NUI.Scene3D
     ///     /// Do something.
     /// }
     /// </code>
-    ///
+    /// </example>
+    /// <example>
     /// We can generate animation of Scene3D.Model from MotionData class.
     /// Or, just set values.
     ///
@@ -77,11 +84,7 @@ namespace Tizen.NUI.Scene3D
     /// // Set values from loaded Model.
     /// model2.SetMotionData(motionData);
     /// </code>
-    /// </summary>
-    /// <remark>
-    /// We don't check duplicated MotionIndex internally.
-    /// We don't check MotionValue type is matched with MotionIndex.
-    /// </remark>
+    /// </example>
     [EditorBrowsable(EditorBrowsableState.Never)]
     public class MotionData : BaseHandle
     {
@@ -91,7 +94,7 @@ namespace Tizen.NUI.Scene3D
         private delegate void LoadCompletedCallbackType(IntPtr motionData);
 
         /// <summary>
-        /// Create an initialized motion data.
+        /// Create an initialized, empty motion data.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public MotionData() : this(Interop.MotionData.MotionDataNew(), true)
@@ -102,9 +105,9 @@ namespace Tizen.NUI.Scene3D
         /// <summary>
         /// Create an initialized motion data with duration.
         /// </summary>
-        /// <param name="durationMilliSeconds">Duration of this motion data when it be generated as Animation in milliseconds.</param>
+        /// <param name="durationMilliseconds">Duration of an Animation generated from this motion data, in milliseconds.</param>
         [EditorBrowsable(EditorBrowsableState.Never)]
-        public MotionData(int durationMilliSeconds) : this(Interop.MotionData.MotionDataNew(MilliSecondsToSeconds(durationMilliSeconds)), true)
+        public MotionData(int durationMilliseconds) : this(Interop.MotionData.MotionDataNew(MillisecondsToSeconds(durationMilliseconds)), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
@@ -136,25 +139,25 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Get or set the duration of this motion data  in milliseconds.
+        /// Get or set the duration of this motion data in milliseconds.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public int Duration
         {
             get
             {
-                return SecondsToMilliSeconds(GetDuration());
+                return SecondsToMilliseconds(GetDuration());
             }
             set
             {
-                SetDuration(MilliSecondsToSeconds(value));
+                SetDuration(MillisecondsToSeconds(value));
             }
         }
 
         /// <summary>
-        /// Get the number of MotionIndex / MotionValue pair list what this hold.
+        /// Get the number of contained MotionIndex / MotionValue pair what this hold.
         /// </summary>
-        /// <returns>The number of motions what this hold.</returns>
+        /// <returns>The number of contained motions.</returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public uint GetMotionCount()
         {
@@ -164,7 +167,7 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Append pair of MotionIndex and MotionValue end of list.
+        /// Append pair of MotionIndex and MotionValue to the list.
         /// </summary>
         /// <param name="index">MotionIndex to be added</param>
         /// <param name="value">MotionValue to be added</param>
@@ -176,10 +179,10 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Get MotionIndex at index'th. null if invalid index inputed
+        /// Get MotionIndex at position, or null if invalid index was given.
         /// </summary>
         /// <param name="index">The index of motion data list</param>
-        /// <returns>The index'th MotionIndex. Or empty handle that doesn't have body</returns>
+        /// <returns>The MotionIndex at position. Or null.</returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public MotionIndex GetIndex(uint index)
         {
@@ -198,14 +201,20 @@ namespace Tizen.NUI.Scene3D
                 handle = new HandleRef(null, IntPtr.Zero);
             }
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+
+            if (!ret.HasBody())
+            {
+                ret.Dispose();
+                ret = null;
+            }
             return ret;
         }
 
         /// <summary>
-        /// Get MotionValue at index'th. null if invalid index inputed
+        /// Get MotionValue at position, or null if invalid index was given.
         /// </summary>
         /// <param name="index">The index of motion data list</param>
-        /// <returns>The index'th MotionValue. Or empty handle that doesn't have body</returns>
+        /// <returns>The MotionValue at position. Or null.</returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public MotionValue GetValue(uint index)
         {
@@ -224,21 +233,28 @@ namespace Tizen.NUI.Scene3D
                 handle = new HandleRef(null, IntPtr.Zero);
             }
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+
+            if (!ret.HasBody())
+            {
+                ret.Dispose();
+                ret = null;
+            }
             return ret;
         }
 
         /// <summary>
         /// Load motion capture animation.
-        /// Scale is additional scale factor of motion capture animation. It is possible that
-        /// Model's scale may not matched with motion capture animation scale.
-        /// If scale is null, default use as Vector3.ONE
         /// We support bvh format.
-        /// After load completed, <see cref="LoadCompleted"/> event will be invoked.
+        /// After load completes, <see cref="LoadCompleted"/> event will be invoked.
         /// </summary>
+        /// <remarks>
+        /// Scale is additional scale factor of motion capture animation. It is possible that
+        /// Model's scale may not match with motion capture animation scale.
+        /// If scale is null, default value will be used: <cref name="Vector3.ONE"/>
+        /// </remarks>
         /// <param name="motionCaptureFilename">Name of motion capture format file.</param>
         /// <param name="scale">Scale value of motion capture animation match with model.</param>
         /// <param name="synchronousLoad">Load synchronously or not. Default is async load.</param>
-        // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
         [EditorBrowsable(EditorBrowsableState.Never)]
         public void LoadMotionCaptureAnimation(string motionCaptureFilename, Vector3 scale = null, bool synchronousLoad = false)
         {
@@ -247,17 +263,18 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Load motion capture animation.
-        /// Scale is additional scale factor of motion capture animation. It is possible that
-        /// Model's scale may not matched with motion capture animation scale.
-        /// If scale is null, default use as Vector3.ONE
+        /// Load motion capture animation from string.
         /// We support bvh format.
-        /// After load completed, <see cref="LoadCompleted"/> event will be invoked.
+        /// After load completes, <see cref="LoadCompleted"/> event will be invoked.
         /// </summary>
-        /// <param name="motionCaptureBuffer">Contents of motion capture format file.</param>
+        /// <remarks>
+        /// Scale is additional scale factor of motion capture animation. It is possible that
+        /// Model's scale may not match with motion capture animation scale.
+        /// If scale is null, default value will be used: <cref name="Vector3.ONE"/>
+        /// </remarks>
+        /// <param name="motionCaptureBuffer">Contents of motion capture format string.</param>
         /// <param name="scale">Scale value of motion capture animation match with model.</param>
         /// <param name="synchronousLoad">Load synchronously or not. Default is async load.</param>
-        // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
         [EditorBrowsable(EditorBrowsableState.Never)]
         public void LoadMotionCaptureAnimationFromBuffer(string motionCaptureBuffer, Vector3 scale = null, bool synchronousLoad = false)
         {
@@ -271,7 +288,6 @@ namespace Tizen.NUI.Scene3D
         /// </summary>
         /// <param name="blendShapeFilename">Name of json format file what we predefined.</param>
         /// <param name="synchronousLoad">Load synchronously or not. Default is async load.</param>
-        // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
         [EditorBrowsable(EditorBrowsableState.Never)]
         public void LoadBlendShapeAnimation(string blendShapeFilename, bool synchronousLoad = false)
         {
@@ -285,7 +301,6 @@ namespace Tizen.NUI.Scene3D
         /// </summary>
         /// <param name="blendShapeBuffer">Contents of json format file what we predefined.</param>
         /// <param name="synchronousLoad">Load synchronously or not. Default is async load.</param>
-        // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
         [EditorBrowsable(EditorBrowsableState.Never)]
         public void LoadBlendShapeAnimationFromBuffer(string blendShapeBuffer, bool synchronousLoad = false)
         {
@@ -332,7 +347,7 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Clear all inputed values.
+        /// Removes all stored motions.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public void Clear()
@@ -354,12 +369,12 @@ namespace Tizen.NUI.Scene3D
             return ret;
         }
 
-        private static float MilliSecondsToSeconds(int millisec)
+        private static float MillisecondsToSeconds(int millisec)
         {
             return (float)millisec / 1000.0f;
         }
 
-        private static int SecondsToMilliSeconds(float sec)
+        private static int SecondsToMilliseconds(float sec)
         {
             return (int)(sec * 1000);
         }
index de59586..f01023e 100644 (file)
@@ -26,9 +26,11 @@ namespace Tizen.NUI.Scene3D
     /// Specialized <see cref="MotionIndex"/> to control blend shape.
     /// We can control the blend shape by index (when we set BlendShapeId as IndexKey),
     /// or by name (when we set BlendShapeId as StringKey).
-    ///
+    /// </summary>
+    /// <remarks>
     /// <see cref="MotionValue"/> should be float type.
-    ///
+    /// </remarks>
+    /// <example>
     /// <code>
     /// BlendShapeIndex blendShapeIndex0 = new BlendShapeIndex(new PropertyKey("nodeName"), new PropertyKey(0u));
     /// BlendShapeIndex blendShapeIndex1 = new BlendShapeIndex(new PropertyKey("nodeName"), new PropertyKey("Target_1"));
@@ -38,7 +40,8 @@ namespace Tizen.NUI.Scene3D
     /// blendShapeIndex2.ModelNodeId = new PropertyKey("nodeName");
     /// blendShapeIndex2.BlendShapeId = new PropertyKey("Target_2");
     /// </code>
-    ///
+    /// </example>
+    /// <example>
     /// Specially, if ModelNodeId is invalid and BlendShapeId is StringKey,
     /// It will control all ModelNode that has the inputed blend shape name.
     ///
@@ -50,7 +53,7 @@ namespace Tizen.NUI.Scene3D
     /// BlendShapeIndex blendShapeIndex0 = new BlendShapeIndex(new PropertyKey("node0"), new PropertyKey("Smile"));
     /// BlendShapeIndex blendShapeIndex1 = new BlendShapeIndex(new PropertyKey("node1"), new PropertyKey("Smile"));
     /// </code>
-    /// </summary>
+    /// </example>
     [EditorBrowsable(EditorBrowsableState.Never)]
     public class BlendShapeIndex : MotionIndex
     {
@@ -64,8 +67,9 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Create an initialized blend shape index with invalid node id, and input blend shape id.
+        /// Create an initialized blend shape index with invalid node ID, and given blend shape ID.
         /// </summary>
+        /// <param name="blendShapeId">Blend shape ID for this motion index</param>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public BlendShapeIndex(PropertyKey blendShapeId) : this(Interop.MotionIndex.BlendShapeIndexNew(PropertyKey.getCPtr(blendShapeId)), true)
         {
@@ -73,8 +77,10 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Create an initialized blend shape index with input node id, and input blend shape id.
+        /// Create an initialized blend shape index with given node ID and blend shape ID.
         /// </summary>
+        /// <param name="modelNodeId">Node ID for this motion index</param>
+        /// <param name="blendShapeId">Blend shape ID for this motion index</param>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public BlendShapeIndex(PropertyKey modelNodeId, PropertyKey blendShapeId) : this(Interop.MotionIndex.BlendShapeIndexNew(PropertyKey.getCPtr(modelNodeId), PropertyKey.getCPtr(blendShapeId)), true)
         {
@@ -82,6 +88,27 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
+        /// Create an initialized blend shape index with invalid node ID, and given blend shape string ID.
+        /// </summary>
+        /// <param name="blendShapeName">Blend shape string ID for this motion index</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public BlendShapeIndex(string blendShapeName) : this(Interop.MotionIndex.BlendShapeIndexNew(PropertyKey.getCPtr(new PropertyKey(blendShapeName))), true)
+        {
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Create an initialized blend shape index with given node string ID and blend shape string ID.
+        /// </summary>
+        /// <param name="modelNodeName">Node string ID for this motion index</param>
+        /// <param name="blendShapeName">Blend shape string ID for this motion index</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public BlendShapeIndex(string modelNodeName, string blendShapeName) : this(Interop.MotionIndex.BlendShapeIndexNew(PropertyKey.getCPtr(new PropertyKey(modelNodeName)), PropertyKey.getCPtr(new PropertyKey(blendShapeName))), true)
+        {
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
         /// Copy constructor.
         /// </summary>
         /// <param name="blendShapeIndex">Source object to copy.</param>
index 8d02401..c03d380 100644 (file)
@@ -24,24 +24,23 @@ namespace Tizen.NUI.Scene3D
 {
     /// <summary>
     /// Index of motion value. It will be used to specify the target of motion applied.
-    ///
     /// There are three kinds of MotionIndex : <see cref="MotionPropertyIndex"/>, <see cref="MotionTransformIndex"/> and <see cref="BlendShapeIndex"/>.
-    /// MotionPropertyIndex will be used for control whole kind of properties.
+    /// MotionPropertyIndex will be used for control all kind of properties.
     /// The <see cref="MotionData"/> loaded from files / buffer will have this kind of MotionIndex.
-    ///
     /// MotionTransformIndex will be used for control the <see cref="ModelNode"/>'s Position / Orientation / Scale, or each components.
     /// BlendShapeIndex will be used for control some blend shape animation.
-    ///
-    /// We can use this class below cases
-    /// - ModelNodeId (string key) , MotionTransformIndex         : Target is ModelNode's transform property
-    /// - ModelNodeId (int key)    , MotionTransformIndex         : Target is ModelNode's transform property [not implemented yet]
-    /// - ModelNodeId (string key) , BlendShapeIndex (int key)    : Target is ModelNode's BlendShape
-    /// - ModelNodeId (string key) , BlendShapeIndex (string key) : Target is ModelNode's BlendShape
-    /// - ModelNodeId (int key)    , BlendShapeIndex (int key)    : Target is ModelNode's BlendShape [not implemented yet]
-    /// - ModelNodeId (int key)    , BlendShapeIndex (string key) : Target is ModelNode's BlendShape [not implemented yet]
-    /// - ModelNodeId (null)       , BlendShapeIndex (string key) : Target is all ModelNode's BlendShape
-    /// All other cases are invalid.
     /// </summary>
+    /// <remarks>
+    /// We can use below cases.
+    /// <table>
+    ///  <tr><td>ModelNodeId KeyType</td><td>MotionIndex class                                 </td><td>Description                             </td></tr>
+    ///  <tr><td>KeyType.String     </td><td>MotionTransformIndex                              </td><td>Target is ModelNode's transform property</td></tr>
+    ///  <tr><td>KeyType.String     </td><td>BlendShapeIndex (with BlendShapeId KeyType.Index) </td><td>Target is ModelNode's BlendShape        </td></tr>
+    ///  <tr><td>KeyType.String     </td><td>BlendShapeIndex (with BlendShapeId KeyType.String)</td><td>Target is ModelNode's BlendShape        </td></tr>
+    ///  <tr><td>(null)             </td><td>BlendShapeIndex (with BlendShapeId KeyType.String)</td><td>Target is all ModelNode's BlendShape    </td></tr>
+    /// </table>
+    /// All other cases are invalid.
+    /// </remarks>
     [EditorBrowsable(EditorBrowsableState.Never)]
     public class MotionIndex : BaseHandle
     {
@@ -72,9 +71,9 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// The id of ModelNode. If you want to apply to all ModelNodes who has BlendShape string, let this value as null.
+        /// The ID of ModelNode. If you want to apply to all ModelNodes who has BlendShape string, assign null.
         /// </summary>
-         [EditorBrowsable(EditorBrowsableState.Never)]
+        [EditorBrowsable(EditorBrowsableState.Never)]
         public PropertyKey ModelNodeId
         {
             get
index f892c35..253c394 100644 (file)
@@ -23,7 +23,7 @@ using Tizen.NUI;
 namespace Tizen.NUI.Scene3D
 {
     /// <summary>
-    /// Basic <see cref="MotionIndex"/> to control Dali's Property.
+    /// Basic <see cref="MotionIndex"/> to control Property.
     /// It can control more general case.
     /// </summary>
     /// <example>
@@ -46,7 +46,7 @@ namespace Tizen.NUI.Scene3D
     public class MotionPropertyIndex : MotionIndex
     {
         /// <summary>
-        /// Create an initialized blend shape index.
+        /// Create an initialized motion property index.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public MotionPropertyIndex() : this(Interop.MotionIndex.MotionPropertyIndexNew(), true)
@@ -55,8 +55,10 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Create an initialized blend shape index with input node id, and property id.
+        /// Create an initialized motion property index with given node ID and property ID.
         /// </summary>
+        /// <param name="modelNodeId">Node ID for this motion index</param>
+        /// <param name="propertyId">Property ID for this motion index</param>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public MotionPropertyIndex(PropertyKey modelNodeId, PropertyKey propertyId) : this(Interop.MotionIndex.MotionPropertyIndexNew(PropertyKey.getCPtr(modelNodeId), PropertyKey.getCPtr(propertyId)), true)
         {
@@ -64,6 +66,17 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
+        /// Create an initialized motion property index with given node string ID and property string ID.
+        /// </summary>
+        /// <param name="modelNodeName">Node string ID for this motion index</param>
+        /// <param name="propertyName">Property string ID for this motion index</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public MotionPropertyIndex(string modelNodeName, string propertyName) : this(Interop.MotionIndex.MotionPropertyIndexNew(PropertyKey.getCPtr(new PropertyKey(modelNodeName)), PropertyKey.getCPtr(new PropertyKey(propertyName))), true)
+        {
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
         /// Copy constructor.
         /// </summary>
         /// <param name="motionPropertyIndex">Source object to copy.</param>
index 76b9db4..ee2924c 100644 (file)
@@ -24,11 +24,12 @@ namespace Tizen.NUI.Scene3D
 {
     /// <summary>
     /// Specialized <see cref="MotionIndex"/> to control transform.
-    /// It will be used when app developer don't care about Property index list,
+    /// It will be used when app developer doesn't care about Property index list,
     /// but want to change the transform properties anyway fast enough.
-    ///
-    /// Each TransformTypes has their own matched <see cref="MotionValue"/> type.
     /// </summary>
+    /// <remarks>
+    /// Each TransformTypes has their own matched <see cref="MotionValue"/> type.
+    /// </remarks>
     /// <example>
     /// <code>
     /// MotionTransformIndex position = new MotionTransformIndex(new PropertyKey("nodeName"), MotionTransformIndex.TransformTypes.Position);
@@ -43,10 +44,9 @@ namespace Tizen.NUI.Scene3D
     public class MotionTransformIndex : MotionIndex
     {
         /// <summary>
-        /// The list of component types what this MotionIndex can control.
+        /// The list of transform property types what this MotionTransformIndex can control.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1717:Only FlagsAttribute enums should have plural names")]
         public enum TransformTypes
         {
             /// <summary>
@@ -111,7 +111,7 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Create an initialized blend shape index.
+        /// Create an initialized motion transform index.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public MotionTransformIndex() : this(Interop.MotionIndex.MotionTransformIndexNew(), true)
@@ -120,8 +120,10 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Create an initialized blend shape index with input node id, and transform type.
+        /// Create an initialized motion transform index with given node ID and transform type.
         /// </summary>
+        /// <param name="modelNodeId">Node ID for this motion index</param>
+        /// <param name="transformType">Transform property type for this motion index</param>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public MotionTransformIndex(PropertyKey modelNodeId, TransformTypes transformType) : this(Interop.MotionIndex.MotionTransformIndexNew(PropertyKey.getCPtr(modelNodeId), (int)transformType), true)
         {
@@ -129,6 +131,17 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
+        /// Create an initialized motion transform index with given node string ID, and transform type.
+        /// </summary>
+        /// <param name="modelNodeName">Node string ID for this motion index</param>
+        /// <param name="transformType">Transform property type for this motion index</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public MotionTransformIndex(string modelNodeName, TransformTypes transformType) : this(Interop.MotionIndex.MotionTransformIndexNew(PropertyKey.getCPtr(new PropertyKey(modelNodeName)), (int)transformType), true)
+        {
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
         /// Copy constructor.
         /// </summary>
         /// <param name="motionTransformIndex">Source object to copy.</param>
@@ -155,7 +168,7 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// The component type what this MotionIndex want to control.
+        /// The transform property type what this MotionIndex want to control.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public TransformTypes TransformType
index f9a1627..ff43451 100644 (file)
@@ -24,13 +24,12 @@ using Tizen.NUI;
 namespace Tizen.NUI.Scene3D
 {
     /// <summary>
-    /// This MotionValue be used for target value of each <see cref="MotionIndex"/>.
+    /// This MotionValue will be used for target value of each <see cref="MotionIndex"/>.
     /// We can get and set MotionValue as 2 types : PropertyValue and KeyFrames.
-    ///
-    /// Each types will be cross-converted internally.
-    /// For example, when we set PropertyValue, we can get KeyFrames with 2 frames, and target value is set.
     /// </summary>
     /// <remarks>
+    /// Each type will be cross-converted internally.
+    /// For example, when we set PropertyValue, we can get KeyFrames with 2 frames, and target value is set.
     /// The type of property should be matched with MotionIndex required.
     /// </remarks>
     [EditorBrowsable(EditorBrowsableState.Never)]
@@ -62,7 +61,7 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Create an initialized motion value with invalid.
+        /// Create an initialized invalid motion value.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public MotionValue() : this(Interop.MotionValue.MotionValueNew(), true)
@@ -73,6 +72,7 @@ namespace Tizen.NUI.Scene3D
         /// <summary>
         /// Create an initialized motion value with PropertyValue.
         /// </summary>
+        /// <param name="propertyValue">PropertyValue for this motion value</param>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public MotionValue(PropertyValue propertyValue) : this(Interop.MotionValue.MotionValueNewPropertyValue(PropertyValue.getCPtr(propertyValue)), true)
         {
@@ -82,6 +82,7 @@ namespace Tizen.NUI.Scene3D
         /// <summary>
         /// Create an initialized motion value with KeyFrames.
         /// </summary>
+        /// <param name="keyFrames">KeyFrameValue for this motion value</param>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public MotionValue(KeyFrames keyFrames) : this(Interop.MotionValue.MotionValueNewKeyFrames(KeyFrames.getCPtr(keyFrames)), true)
         {
@@ -116,8 +117,8 @@ namespace Tizen.NUI.Scene3D
 
 
         /// <summary>
-        /// Get or set the value as PropertyValue type.
-        /// If ValueType is ValueType.KeyFrames, it will return last value of stored KeyFrames.
+        /// Get or set the PropertyValue.
+        /// If Type is ValueType.KeyFrames, getter will return last PropertyValue instance of stored KeyFrames.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public PropertyValue PropertyValue
@@ -133,8 +134,8 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Get or set the value as KeyFrames type.
-        /// If ValueType is ValueType.PropertyValue, it will create new KeyFrames by stored PropertyValue.
+        /// Get or set the KeyFrames.
+        /// If Type is ValueType.PropertyValue, getter will create new KeyFrames from stored PropertyValue.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public KeyFrames KeyFramesValue
@@ -150,7 +151,7 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Get the type of value what we set.
+        /// Get the type of value which we set.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public ValueType Type
@@ -162,7 +163,7 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Invalidate the value what we set.
+        /// Invalidate the value which we set.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public void Invalidate()