1 // Copyright (c) 2017 Samsung Electronics Co., Ltd.
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
16 // This File has been auto-generated by SWIG and then modified using DALi Ruby Scripts
17 // Some have been manually changed
23 /// Alpha functions are used in animations to specify the rate of change of the animation parameter over time.
24 /// Understanding an animation as a parametric function over time, the alpha function is applied to the parameter of
25 /// the animation before computing the final animation value.
27 public class AlphaFunction : global::System.IDisposable
29 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
30 protected bool swigCMemOwn;
32 internal AlphaFunction(global::System.IntPtr cPtr, bool cMemoryOwn)
34 swigCMemOwn = cMemoryOwn;
35 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
38 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(AlphaFunction obj)
40 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
45 DisposeQueue.Instance.Add(this);
49 /// To make AlphaFunction instance be disposed.
51 public virtual void Dispose()
53 if (!Stage.IsInstalled())
55 DisposeQueue.Instance.Add(this);
61 if (swigCPtr.Handle != global::System.IntPtr.Zero)
66 NDalicPINVOKE.delete_AlphaFunction(swigCPtr);
68 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
70 global::System.GC.SuppressFinalize(this);
76 /// Creates an alpha function object with user defined alpha function.
78 /// <param name="func">User defined fuction. It must be a method formatted as float alphafunction(float progress)</param>
79 public AlphaFunction(System.Delegate func) : this(NDalicPINVOKE.new_AlphaFunction__SWIG_2(SWIGTYPE_p_f_float__float.getCPtr(new SWIGTYPE_p_f_float__float(System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func), true))), true)
81 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
85 /// Default constructor.
86 /// Creates an alpha function object with the default built-in alpha function.
88 public AlphaFunction() : this(NDalicPINVOKE.new_AlphaFunction__SWIG_0(), true)
90 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
95 /// Creates an alpha function object with the built-in alpha function passed as a parameter to the constructor.
97 /// <param name="function">One of the built-in alpha functions</param>
98 public AlphaFunction(AlphaFunction.BuiltinFunctions function) : this(NDalicPINVOKE.new_AlphaFunction__SWIG_1((int)function), true)
100 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
103 internal AlphaFunction(SWIGTYPE_p_f_float__float function) : this(NDalicPINVOKE.new_AlphaFunction__SWIG_2(SWIGTYPE_p_f_float__float.getCPtr(function)), true)
105 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
110 /// Creates a bezier alpha function.The bezier will have the first point at(0,0) and the end point at(1,1).
111 /// Note : The x components of the control points will be clamped to the range[0, 1] to prevent non monotonic curves.
113 /// <param name="controlPoint0">A Vector2 which will be used as the first control point of the curve</param>
114 /// <param name="controlPoint1">A Vector2 which will be used as the second control point of the curve</param>
115 public AlphaFunction(Vector2 controlPoint0, Vector2 controlPoint1) : this(NDalicPINVOKE.new_AlphaFunction__SWIG_3(Vector2.getCPtr(controlPoint0), Vector2.getCPtr(controlPoint1)), true)
117 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
121 /// Retrives the control points of the alpha function.
123 /// <param name="controlPoint0">A Vector2 which is used as the first control point of the curve</param>
124 /// <param name="controlPoint1">A Vector2 which is used as the second control point of the curve</param>
125 public void GetBezierControlPoints(out Vector2 controlPoint0, out Vector2 controlPoint1)
127 Vector4 ret = new Vector4(NDalicPINVOKE.AlphaFunction_GetBezierControlPoints(swigCPtr), true);
128 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
130 controlPoint0 = new Vector2(ret.X, ret.Y);
131 controlPoint1 = new Vector2(ret.Z, ret.W);
134 internal SWIGTYPE_p_f_float__float GetCustomFunction()
136 global::System.IntPtr cPtr = NDalicPINVOKE.AlphaFunction_GetCustomFunction(swigCPtr);
137 SWIGTYPE_p_f_float__float ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_f_float__float(cPtr, false);
138 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
143 /// Returns the built-in function used by the alpha function.
144 /// In case no built-in function has been specified, it will return AlphaFunction::DEFAULT
146 /// <returns>One of the built-in alpha functions.</returns>
147 public AlphaFunction.BuiltinFunctions GetBuiltinFunction()
149 AlphaFunction.BuiltinFunctions ret = (AlphaFunction.BuiltinFunctions)NDalicPINVOKE.AlphaFunction_GetBuiltinFunction(swigCPtr);
150 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
155 /// Returns the functioning mode of the alpha function
157 /// <returns>The functioning mode of the alpha function</returns>
158 public AlphaFunction.Modes GetMode()
160 AlphaFunction.Modes ret = (AlphaFunction.Modes)NDalicPINVOKE.AlphaFunction_GetMode(swigCPtr);
161 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
166 /// This specifies the various types of BuiltinFunctions
168 public enum BuiltinFunctions
188 /// This specifies which mode is set for AlphaFuction