From 3c40fab67d36ceb72518f9e20c2d4ff144dec006 Mon Sep 17 00:00:00 2001 From: Eunki Hong Date: Tue, 26 Sep 2023 01:31:44 +0900 Subject: [PATCH] [NUI.Scene3D] CodeSync MotionData API and documents 1. Fix TCT error #5576 2. Follow some comments fix up as #5452 Signed-off-by: Eunki, Hong --- .../internal/Interop/Interop.MotionIndex.cs | 6 +- .../src/public/Controls/Model.cs | 12 +-- .../src/public/ModelMotion/MotionData.cs | 93 +++++++++++-------- .../MotionIndex/BlendShapeIndex.cs | 39 ++++++-- .../ModelMotion/MotionIndex/MotionIndex.cs | 29 +++--- .../MotionIndex/MotionPropertyIndex.cs | 19 +++- .../MotionIndex/MotionTransformIndex.cs | 29 ++++-- .../src/public/ModelMotion/MotionValue.cs | 23 ++--- 8 files changed, 158 insertions(+), 92 deletions(-) diff --git a/src/Tizen.NUI.Scene3D/src/internal/Interop/Interop.MotionIndex.cs b/src/Tizen.NUI.Scene3D/src/internal/Interop/Interop.MotionIndex.cs index b0ae286f9e2..78086c3b2e6 100755 --- a/src/Tizen.NUI.Scene3D/src/internal/Interop/Interop.MotionIndex.cs +++ b/src/Tizen.NUI.Scene3D/src/internal/Interop/Interop.MotionIndex.cs @@ -95,13 +95,13 @@ internal static partial class MotionIndex [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 diff --git a/src/Tizen.NUI.Scene3D/src/public/Controls/Model.cs b/src/Tizen.NUI.Scene3D/src/public/Controls/Model.cs index 5c217fb4595..c830773050b 100755 --- a/src/Tizen.NUI.Scene3D/src/public/Controls/Model.cs +++ b/src/Tizen.NUI.Scene3D/src/public/Controls/Model.cs @@ -512,9 +512,8 @@ public Animation LoadBlendShapeAnimationFromBuffer(string jsonBuffer) /// Generate animation by MotionData. /// If there is no animatable item for MotionData, return null. /// - /// Inputed list of pair of MotionIndex and MotionValue, and duration. - /// Generated animation by input motion data, or null if there is no animatable item exist about inputed motionData - // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + /// Source motion data. + /// Generated animation from then given motion data, or null if there is no animatable item in [EditorBrowsable(EditorBrowsableState.Never)] public Animation GenerateMotionDataAnimation(MotionData motionData) { @@ -545,12 +544,11 @@ public Animation GenerateMotionDataAnimation(MotionData motionData) } /// - /// 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 and play the result. /// - /// Inputed list of pair of MotionIndex and MotionValue. - // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + /// Source motion data. [EditorBrowsable(EditorBrowsableState.Never)] public void SetMotionData(MotionData motionData) { diff --git a/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionData.cs b/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionData.cs index 30cc0b84e6c..a8e338dab4b 100644 --- a/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionData.cs +++ b/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionData.cs @@ -26,8 +26,13 @@ namespace Tizen.NUI.Scene3D /// List of model motion definitions. /// Each motion has pair of and . /// 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 or . + /// + /// + /// We don't check duplicated MotionIndex internally. + /// We don't check MotionValue type is matched with MotionIndex. + /// + /// /// We can generate list of motions by MotionIndex and MotionValue classes. /// /// @@ -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)); /// - /// + /// + /// /// We can request to load MotionData from file or buffer asynchronously. /// If load completed, 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. /// } /// - /// + /// + /// /// 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); /// - /// - /// - /// We don't check duplicated MotionIndex internally. - /// We don't check MotionValue type is matched with MotionIndex. - /// + /// [EditorBrowsable(EditorBrowsableState.Never)] public class MotionData : BaseHandle { @@ -91,7 +94,7 @@ public class MotionData : BaseHandle private delegate void LoadCompletedCallbackType(IntPtr motionData); /// - /// Create an initialized motion data. + /// Create an initialized, empty motion data. /// [EditorBrowsable(EditorBrowsableState.Never)] public MotionData() : this(Interop.MotionData.MotionDataNew(), true) @@ -102,9 +105,9 @@ public MotionData() : this(Interop.MotionData.MotionDataNew(), true) /// /// Create an initialized motion data with duration. /// - /// Duration of this motion data when it be generated as Animation in milliseconds. + /// Duration of an Animation generated from this motion data, in milliseconds. [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 @@ internal MotionData(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cM } /// - /// Get or set the duration of this motion data in milliseconds. + /// Get or set the duration of this motion data in milliseconds. /// [EditorBrowsable(EditorBrowsableState.Never)] public int Duration { get { - return SecondsToMilliSeconds(GetDuration()); + return SecondsToMilliseconds(GetDuration()); } set { - SetDuration(MilliSecondsToSeconds(value)); + SetDuration(MillisecondsToSeconds(value)); } } /// - /// Get the number of MotionIndex / MotionValue pair list what this hold. + /// Get the number of contained MotionIndex / MotionValue pair what this hold. /// - /// The number of motions what this hold. + /// The number of contained motions. [EditorBrowsable(EditorBrowsableState.Never)] public uint GetMotionCount() { @@ -164,7 +167,7 @@ public uint GetMotionCount() } /// - /// Append pair of MotionIndex and MotionValue end of list. + /// Append pair of MotionIndex and MotionValue to the list. /// /// MotionIndex to be added /// MotionValue to be added @@ -176,10 +179,10 @@ public void Add(MotionIndex index, MotionValue value) } /// - /// Get MotionIndex at index'th. null if invalid index inputed + /// Get MotionIndex at position, or null if invalid index was given. /// /// The index of motion data list - /// The index'th MotionIndex. Or empty handle that doesn't have body + /// The MotionIndex at position. Or null. [EditorBrowsable(EditorBrowsableState.Never)] public MotionIndex GetIndex(uint index) { @@ -198,14 +201,20 @@ public MotionIndex GetIndex(uint index) handle = new HandleRef(null, IntPtr.Zero); } if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + + if (!ret.HasBody()) + { + ret.Dispose(); + ret = null; + } return ret; } /// - /// Get MotionValue at index'th. null if invalid index inputed + /// Get MotionValue at position, or null if invalid index was given. /// /// The index of motion data list - /// The index'th MotionValue. Or empty handle that doesn't have body + /// The MotionValue at position. Or null. [EditorBrowsable(EditorBrowsableState.Never)] public MotionValue GetValue(uint index) { @@ -224,21 +233,28 @@ public MotionValue GetValue(uint index) handle = new HandleRef(null, IntPtr.Zero); } if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + + if (!ret.HasBody()) + { + ret.Dispose(); + ret = null; + } return ret; } /// /// 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, event will be invoked. + /// After load completes, event will be invoked. /// + /// + /// 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: + /// /// Name of motion capture format file. /// Scale value of motion capture animation match with model. /// Load synchronously or not. Default is async load. - // 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 @@ public void LoadMotionCaptureAnimation(string motionCaptureFilename, Vector3 sca } /// - /// 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, event will be invoked. + /// After load completes, event will be invoked. /// - /// Contents of motion capture format file. + /// + /// 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: + /// + /// Contents of motion capture format string. /// Scale value of motion capture animation match with model. /// Load synchronously or not. Default is async load. - // 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 @@ public void LoadMotionCaptureAnimationFromBuffer(string motionCaptureBuffer, Vec /// /// Name of json format file what we predefined. /// Load synchronously or not. Default is async load. - // 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 @@ public void LoadBlendShapeAnimation(string blendShapeFilename, bool synchronousL /// /// Contents of json format file what we predefined. /// Load synchronously or not. Default is async load. - // 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 @@ private void OnLoadCompleted(IntPtr motionData) } /// - /// Clear all inputed values. + /// Removes all stored motions. /// [EditorBrowsable(EditorBrowsableState.Never)] public void Clear() @@ -354,12 +369,12 @@ internal float GetDuration() 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); } diff --git a/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/BlendShapeIndex.cs b/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/BlendShapeIndex.cs index de59586e9b5..f01023ef339 100644 --- a/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/BlendShapeIndex.cs +++ b/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/BlendShapeIndex.cs @@ -26,9 +26,11 @@ namespace Tizen.NUI.Scene3D /// Specialized 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). - /// + /// + /// /// should be float type. - /// + /// + /// /// /// 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"); /// - /// + /// + /// /// 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")); /// - /// + /// [EditorBrowsable(EditorBrowsableState.Never)] public class BlendShapeIndex : MotionIndex { @@ -64,8 +67,9 @@ public BlendShapeIndex() : this(Interop.MotionIndex.BlendShapeIndexNew(), true) } /// - /// 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. /// + /// Blend shape ID for this motion index [EditorBrowsable(EditorBrowsableState.Never)] public BlendShapeIndex(PropertyKey blendShapeId) : this(Interop.MotionIndex.BlendShapeIndexNew(PropertyKey.getCPtr(blendShapeId)), true) { @@ -73,14 +77,37 @@ public BlendShapeIndex(PropertyKey blendShapeId) : this(Interop.MotionIndex.Blen } /// - /// 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. /// + /// Node ID for this motion index + /// Blend shape ID for this motion index [EditorBrowsable(EditorBrowsableState.Never)] public BlendShapeIndex(PropertyKey modelNodeId, PropertyKey blendShapeId) : this(Interop.MotionIndex.BlendShapeIndexNew(PropertyKey.getCPtr(modelNodeId), PropertyKey.getCPtr(blendShapeId)), true) { if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } + /// + /// Create an initialized blend shape index with invalid node ID, and given blend shape string ID. + /// + /// Blend shape string ID for this motion index + [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(); + } + + /// + /// Create an initialized blend shape index with given node string ID and blend shape string ID. + /// + /// Node string ID for this motion index + /// Blend shape string ID for this motion index + [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(); + } + /// /// Copy constructor. /// diff --git a/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/MotionIndex.cs b/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/MotionIndex.cs index 8d02401f95a..c03d3803886 100644 --- a/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/MotionIndex.cs +++ b/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/MotionIndex.cs @@ -24,24 +24,23 @@ namespace Tizen.NUI.Scene3D { /// /// Index of motion value. It will be used to specify the target of motion applied. - /// /// There are three kinds of MotionIndex : , and . - /// MotionPropertyIndex will be used for control whole kind of properties. + /// MotionPropertyIndex will be used for control all kind of properties. /// The loaded from files / buffer will have this kind of MotionIndex. - /// /// MotionTransformIndex will be used for control the '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. /// + /// + /// We can use below cases. + /// + /// + /// + /// + /// + /// + ///
ModelNodeId KeyTypeMotionIndex class Description
KeyType.String MotionTransformIndex Target is ModelNode's transform property
KeyType.String BlendShapeIndex (with BlendShapeId KeyType.Index) Target is ModelNode's BlendShape
KeyType.String BlendShapeIndex (with BlendShapeId KeyType.String)Target is ModelNode's BlendShape
(null) BlendShapeIndex (with BlendShapeId KeyType.String)Target is all ModelNode's BlendShape
+ /// All other cases are invalid. + ///
[EditorBrowsable(EditorBrowsableState.Never)] public class MotionIndex : BaseHandle { @@ -72,9 +71,9 @@ internal MotionIndex(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, c } /// - /// 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. /// - [EditorBrowsable(EditorBrowsableState.Never)] + [EditorBrowsable(EditorBrowsableState.Never)] public PropertyKey ModelNodeId { get diff --git a/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/MotionPropertyIndex.cs b/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/MotionPropertyIndex.cs index f892c353b24..253c3943764 100644 --- a/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/MotionPropertyIndex.cs +++ b/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/MotionPropertyIndex.cs @@ -23,7 +23,7 @@ namespace Tizen.NUI.Scene3D { /// - /// Basic to control Dali's Property. + /// Basic to control Property. /// It can control more general case. /// /// @@ -46,7 +46,7 @@ namespace Tizen.NUI.Scene3D public class MotionPropertyIndex : MotionIndex { /// - /// Create an initialized blend shape index. + /// Create an initialized motion property index. /// [EditorBrowsable(EditorBrowsableState.Never)] public MotionPropertyIndex() : this(Interop.MotionIndex.MotionPropertyIndexNew(), true) @@ -55,14 +55,27 @@ public MotionPropertyIndex() : this(Interop.MotionIndex.MotionPropertyIndexNew() } /// - /// 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. /// + /// Node ID for this motion index + /// Property ID for this motion index [EditorBrowsable(EditorBrowsableState.Never)] public MotionPropertyIndex(PropertyKey modelNodeId, PropertyKey propertyId) : this(Interop.MotionIndex.MotionPropertyIndexNew(PropertyKey.getCPtr(modelNodeId), PropertyKey.getCPtr(propertyId)), true) { if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } + /// + /// Create an initialized motion property index with given node string ID and property string ID. + /// + /// Node string ID for this motion index + /// Property string ID for this motion index + [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(); + } + /// /// Copy constructor. /// diff --git a/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/MotionTransformIndex.cs b/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/MotionTransformIndex.cs index 76b9db4dfac..ee2924c1ed3 100644 --- a/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/MotionTransformIndex.cs +++ b/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/MotionTransformIndex.cs @@ -24,11 +24,12 @@ namespace Tizen.NUI.Scene3D { /// /// Specialized 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 type. /// + /// + /// Each TransformTypes has their own matched type. + /// /// /// /// MotionTransformIndex position = new MotionTransformIndex(new PropertyKey("nodeName"), MotionTransformIndex.TransformTypes.Position); @@ -43,10 +44,9 @@ namespace Tizen.NUI.Scene3D public class MotionTransformIndex : MotionIndex { /// - /// The list of component types what this MotionIndex can control. + /// The list of transform property types what this MotionTransformIndex can control. /// [EditorBrowsable(EditorBrowsableState.Never)] - [global::System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1717:Only FlagsAttribute enums should have plural names")] public enum TransformTypes { /// @@ -111,7 +111,7 @@ public enum TransformTypes } /// - /// Create an initialized blend shape index. + /// Create an initialized motion transform index. /// [EditorBrowsable(EditorBrowsableState.Never)] public MotionTransformIndex() : this(Interop.MotionIndex.MotionTransformIndexNew(), true) @@ -120,14 +120,27 @@ public MotionTransformIndex() : this(Interop.MotionIndex.MotionTransformIndexNew } /// - /// 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. /// + /// Node ID for this motion index + /// Transform property type for this motion index [EditorBrowsable(EditorBrowsableState.Never)] public MotionTransformIndex(PropertyKey modelNodeId, TransformTypes transformType) : this(Interop.MotionIndex.MotionTransformIndexNew(PropertyKey.getCPtr(modelNodeId), (int)transformType), true) { if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } + /// + /// Create an initialized motion transform index with given node string ID, and transform type. + /// + /// Node string ID for this motion index + /// Transform property type for this motion index + [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(); + } + /// /// Copy constructor. /// @@ -155,7 +168,7 @@ internal MotionTransformIndex(global::System.IntPtr cPtr, bool cMemoryOwn) : bas } /// - /// The component type what this MotionIndex want to control. + /// The transform property type what this MotionIndex want to control. /// [EditorBrowsable(EditorBrowsableState.Never)] public TransformTypes TransformType diff --git a/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionValue.cs b/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionValue.cs index f9a16275b54..ff43451b7b7 100644 --- a/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionValue.cs +++ b/src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionValue.cs @@ -24,13 +24,12 @@ namespace Tizen.NUI.Scene3D { /// - /// This MotionValue be used for target value of each . + /// This MotionValue will be used for target value of each . /// 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. /// /// + /// 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. /// [EditorBrowsable(EditorBrowsableState.Never)] @@ -62,7 +61,7 @@ public enum ValueType } /// - /// Create an initialized motion value with invalid. + /// Create an initialized invalid motion value. /// [EditorBrowsable(EditorBrowsableState.Never)] public MotionValue() : this(Interop.MotionValue.MotionValueNew(), true) @@ -73,6 +72,7 @@ public MotionValue() : this(Interop.MotionValue.MotionValueNew(), true) /// /// Create an initialized motion value with PropertyValue. /// + /// PropertyValue for this motion value [EditorBrowsable(EditorBrowsableState.Never)] public MotionValue(PropertyValue propertyValue) : this(Interop.MotionValue.MotionValueNewPropertyValue(PropertyValue.getCPtr(propertyValue)), true) { @@ -82,6 +82,7 @@ public MotionValue(PropertyValue propertyValue) : this(Interop.MotionValue.Motio /// /// Create an initialized motion value with KeyFrames. /// + /// KeyFrameValue for this motion value [EditorBrowsable(EditorBrowsableState.Never)] public MotionValue(KeyFrames keyFrames) : this(Interop.MotionValue.MotionValueNewKeyFrames(KeyFrames.getCPtr(keyFrames)), true) { @@ -116,8 +117,8 @@ internal MotionValue(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, c /// - /// 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. /// [EditorBrowsable(EditorBrowsableState.Never)] public PropertyValue PropertyValue @@ -133,8 +134,8 @@ public PropertyValue PropertyValue } /// - /// 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. /// [EditorBrowsable(EditorBrowsableState.Never)] public KeyFrames KeyFramesValue @@ -150,7 +151,7 @@ public KeyFrames KeyFramesValue } /// - /// Get the type of value what we set. + /// Get the type of value which we set. /// [EditorBrowsable(EditorBrowsableState.Never)] public ValueType Type @@ -162,7 +163,7 @@ public ValueType Type } /// - /// Invalidate the value what we set. + /// Invalidate the value which we set. /// [EditorBrowsable(EditorBrowsableState.Never)] public void Invalidate()