-//------------------------------------------------------------------------------
-// <auto-generated />
-//
-// This file was automatically generated by SWIG (http://www.swig.org).
-// Version 3.0.9
-//
-// Do not make changes to this file unless you know what you are doing--modify
-// the SWIG interface file instead.
-//------------------------------------------------------------------------------
+/*
+ * Copyright(c) 2017 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
namespace Tizen.NUI
{
/// <summary>
- /// Rotation Class
+ /// The Rotation class.
/// </summary>
public class Rotation : global::System.IDisposable
{
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+ /// <summary>
+ /// swigCMemOwn
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
protected bool swigCMemOwn;
internal Rotation(global::System.IntPtr cPtr, bool cMemoryOwn)
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
}
+ //A Flag to check who called Dispose(). (By User or DisposeQueue)
+ private bool isDisposeQueued = false;
+ /// <summary>
+ /// A Flat to check if it is already disposed.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ protected bool disposed = false;
+
+ /// <summary>
+ /// Dispose.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
~Rotation()
{
- DisposeQueue.Instance.Add(this);
+ if(!isDisposeQueued)
+ {
+ isDisposeQueued = true;
+ DisposeQueue.Instance.Add(this);
+ }
}
/// <summary>
- /// To make Rotation instance be disposed.
+ /// To make the Rotation instance be disposed.
/// </summary>
- public virtual void Dispose()
+ /// <since_tizen> 3 </since_tizen>
+ public void Dispose()
{
- if (!Stage.IsInstalled())
+ //Throw excpetion if Dispose() is called in separate thread.
+ if (!Window.IsInstalled())
+ {
+ throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
+ }
+
+ if (isDisposeQueued)
+ {
+ Dispose(DisposeTypes.Implicit);
+ }
+ else
+ {
+ Dispose(DisposeTypes.Explicit);
+ System.GC.SuppressFinalize(this);
+ }
+ }
+
+ /// <summary>
+ /// Dispose.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ protected virtual void Dispose(DisposeTypes type)
+ {
+ if (disposed)
{
- DisposeQueue.Instance.Add(this);
return;
}
- lock (this)
+ if(type == DisposeTypes.Explicit)
+ {
+ //Called by User
+ //Release your own managed resources here.
+ //You should release all of your own disposable objects here.
+ }
+
+ //Release your own unmanaged resources here.
+ //You should not access any managed member here except static instance.
+ //because the execution order of Finalizes is non-deterministic.
+
+ if (swigCPtr.Handle != global::System.IntPtr.Zero)
{
- if (swigCPtr.Handle != global::System.IntPtr.Zero)
+ if (swigCMemOwn)
{
- if (swigCMemOwn)
- {
- swigCMemOwn = false;
- NDalicPINVOKE.delete_Rotation(swigCPtr);
- }
- swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+ swigCMemOwn = false;
+ NDalicPINVOKE.delete_Rotation(swigCPtr);
}
- global::System.GC.SuppressFinalize(this);
+ swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
}
+ disposed = true;
}
/// <summary>
- /// Addition operator.
+ /// The addition operator.
/// </summary>
- /// <param name="arg1">First Rotation</param>
- /// <param name="arg2">Second Rotation</param>
- /// <returns>A Rotation containing the result of the Addition</returns>
+ /// <param name="arg1">The first rotation.</param>
+ /// <param name="arg2">The second rotation.</param>
+ /// <returns>The rotation containing the result of the addition.</returns>
+ /// <since_tizen> 3 </since_tizen>
public static Rotation operator +(Rotation arg1, Rotation arg2)
{
return arg1.Add(arg2);
}
/// <summary>
- /// Subtraction operator.
+ /// The subtraction operator.
/// </summary>
- /// <param name="arg1">First Rotation</param>
- /// <param name="arg2">Second Rotation</param>
- /// <returns>A Rotation containing the result of the subtract</returns>
+ /// <param name="arg1">The first rotation.</param>
+ /// <param name="arg2">The second rotation.</param>
+ /// <returns>The rotation containing the result of the subtraction.</returns>
+ /// <since_tizen> 3 </since_tizen>
public static Rotation operator -(Rotation arg1, Rotation arg2)
{
return arg1.Subtract(arg2);
}
/// <summary>
- /// Unary Negation operator.
+ /// The unary negation operator.
/// </summary>
- /// <param name="arg1">First Rotation</param>
- /// <returns>A Rotation containing the negated result</returns>
+ /// <param name="arg1">The first rotation.</param>
+ /// <returns>The rotation containing the negated result.</returns>
+ /// <since_tizen> 3 </since_tizen>
public static Rotation operator -(Rotation arg1)
{
return arg1.Subtract();
}
/// <summary>
- /// Multiplication operator.
+ /// The multiplication operator.
/// </summary>
- /// <param name="arg1">First Rotation</param>
- /// <param name="arg2">Second Rotation</param>
- /// <returns>A Rotation containing the result of the Multiplication</returns>
+ /// <param name="arg1">The first rotation.</param>
+ /// <param name="arg2">The second rotation.</param>
+ /// <returns>The rotation containing the result of the multiplication.</returns>
+ /// <since_tizen> 3 </since_tizen>
public static Rotation operator *(Rotation arg1, Rotation arg2)
{
return arg1.Multiply(arg2);
}
/// <summary>
- /// Multiplication operator.
+ /// The multiplication operator.
/// </summary>
- /// <param name="arg1">Rotation</param>
- /// <param name="arg2">The vector to multiply</param>
- /// <returns>A Rotation containing the result of the multiplication</returns>
+ /// <param name="arg1">Rotation.</param>
+ /// <param name="arg2">The vector to multiply.</param>
+ /// <returns>The rotation containing the result of the multiplication.</returns>
+ /// <since_tizen> 3 </since_tizen>
public static Vector3 operator *(Rotation arg1, Vector3 arg2)
{
return arg1.Multiply(arg2);
}
/// <summary>
- /// Scale operator.
+ /// The scale operator.
/// </summary>
- /// <param name="arg1">Rotation</param>
- /// <param name="arg2">A value to scale by</param>
- /// <returns>A Rotation containing the result of the scaling</returns>
+ /// <param name="arg1">Rotation.</param>
+ /// <param name="arg2">A value to scale by.</param>
+ /// <returns>The rotation containing the result of scaling.</returns>
+ /// <since_tizen> 3 </since_tizen>
public static Rotation operator *(Rotation arg1, float arg2)
{
return arg1.Multiply(arg2);
}
/// <summary>
- /// Division operator.
+ /// The division operator.
/// </summary>
- /// <param name="arg1">First Rotation</param>
- /// <param name="arg2">Second Rotation</param>
- /// <returns>A Rotation containing the result of the scaling</returns>
+ /// <param name="arg1">The first rotation.</param>
+ /// <param name="arg2">The second rotation.</param>
+ /// <returns>The rotation containing the result of scaling.</returns>
+ /// <since_tizen> 3 </since_tizen>
public static Rotation operator /(Rotation arg1, Rotation arg2)
{
return arg1.Divide(arg2);
}
/// <summary>
- /// Scale operator.
+ /// The scale operator.
/// </summary>
- /// <param name="arg1">Rotation</param>
- /// <param name="arg2">A value to scale by</param>
- /// <returns>A Rotation containing the result of the scaling</returns>
+ /// <param name="arg1">Rotation.</param>
+ /// <param name="arg2">A value to scale by.</param>
+ /// <returns>The rotation containing the result of scaling.</returns>
+ /// <since_tizen> 3 </since_tizen>
public static Rotation operator /(Rotation arg1, float arg2)
{
return arg1.Divide(arg2);
}
/// <summary>
- /// Default Constructor.
+ /// The default constructor.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Rotation() : this(NDalicPINVOKE.new_Rotation__SWIG_0(), true)
{
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <summary>
- /// Constructor from an axis and angle.
+ /// The constructor from an axis and angle.
/// </summary>
- /// <param name="angle">The angle around the axis</param>
- /// <param name="axis">The vector of the axis</param>
+ /// <param name="angle">The angle around the axis.</param>
+ /// <param name="axis">The vector of the axis.</param>
+ /// <since_tizen> 3 </since_tizen>
public Rotation(Radian angle, Vector3 axis) : this(NDalicPINVOKE.new_Rotation__SWIG_1(Radian.getCPtr(angle), Vector3.getCPtr(axis)), true)
{
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <summary>
- /// (0.0f,0.0f,0.0f,1.0f)
+ /// (0.0f,0.0f,0.0f,1.0f).
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public static Rotation IDENTITY
{
get
/// <summary>
/// Helper to check if this is an identity quaternion.
/// </summary>
- /// <returns>True if this is identity quaternion</returns>
+ /// <returns>True if this is identity quaternion.</returns>
+ /// <since_tizen> 3 </since_tizen>
public bool IsIdentity()
{
bool ret = NDalicPINVOKE.Rotation_IsIdentity(swigCPtr);
}
/// <summary>
- /// Converts the quaternion to an axis/angle pair.
+ /// Converts the quaternion to an axis or angle pair.
/// </summary>
- /// <param name="axis">the result of axis</param>
- /// <param name="angle">the result of angle Angle in radians</param>
- /// <returns>True if converted correctly</returns>
+ /// <param name="axis">The result of an an axis.</param>
+ /// <param name="angle">The result of angle in radians.</param>
+ /// <returns>True if converted correctly.</returns>
+ /// <since_tizen> 3 </since_tizen>
public bool GetAxisAngle(Vector3 axis, Radian angle)
{
bool ret = NDalicPINVOKE.Rotation_GetAxisAngle(swigCPtr, Vector3.getCPtr(axis), Radian.getCPtr(angle));
}
/// <summary>
- /// Returns the length of the rotation
+ /// Returns the length of the rotation.
/// </summary>
- /// <returns>The length of the rotation</returns>
+ /// <returns>The length of the rotation.</returns>
+ /// <since_tizen> 3 </since_tizen>
public float Length()
{
float ret = NDalicPINVOKE.Rotation_Length(swigCPtr);
}
/// <summary>
- /// Returns the squared length of the rotation
+ /// Returns the squared length of the rotation.
/// </summary>
- /// <returns>The squared length of the rotation</returns>
+ /// <returns>The squared length of the rotation.</returns>
+ /// <since_tizen> 3 </since_tizen>
public float LengthSquared()
{
float ret = NDalicPINVOKE.Rotation_LengthSquared(swigCPtr);
/// <summary>
/// Normalizes this to unit length.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public void Normalize()
{
NDalicPINVOKE.Rotation_Normalize(swigCPtr);
/// <summary>
/// Normalized.
/// </summary>
- /// <returns>A normalized version of this rotation</returns>
+ /// <returns>A normalized version of this rotation.</returns>
+ /// <since_tizen> 3 </since_tizen>
public Rotation Normalized()
{
Rotation ret = new Rotation(NDalicPINVOKE.Rotation_Normalized(swigCPtr), true);
/// <summary>
/// Conjugates this rotation.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public void Conjugate()
{
NDalicPINVOKE.Rotation_Conjugate(swigCPtr);
/// <summary>
/// Inverts this rotation.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public void Invert()
{
NDalicPINVOKE.Rotation_Invert(swigCPtr);
}
/// <summary>
- /// Performs the logarithm of a rotation
+ /// Performs the logarithm of a rotation.
/// </summary>
- /// <returns>A rotation representing the logarithm</returns>
+ /// <returns>The rotation representing the logarithm.</returns>
+ /// <since_tizen> 3 </since_tizen>
public Rotation Log()
{
Rotation ret = new Rotation(NDalicPINVOKE.Rotation_Log(swigCPtr), true);
}
/// <summary>
- /// Performs an exponent
+ /// Performs an exponent.
/// </summary>
- /// <returns>A rotation representing the exponent</returns>
+ /// <returns>The rotation representing the exponent.</returns>
+ /// <since_tizen> 3 </since_tizen>
public Rotation Exp()
{
Rotation ret = new Rotation(NDalicPINVOKE.Rotation_Exp(swigCPtr), true);
/// <summary>
/// Returns the dot product of two rotations.
/// </summary>
- /// <param name="q1">The first rotation</param>
- /// <param name="q2">The second rotation</param>
- /// <returns>The dot product of the two rotations</returns>
+ /// <param name="q1">The first rotation.</param>
+ /// <param name="q2">The second rotation.</param>
+ /// <returns>The dot product of the two rotations.</returns>
+ /// <since_tizen> 3 </since_tizen>
public static float Dot(Rotation q1, Rotation q2)
{
float ret = NDalicPINVOKE.Rotation_Dot(Rotation.getCPtr(q1), Rotation.getCPtr(q2));
}
/// <summary>
- /// Linear Interpolation (using a straight line between the two rotations).
+ /// The linear iterpolation (using a straight line between the two rotations).
/// </summary>
- /// <param name="q1">The start rotation</param>
- /// <param name="q2">The end rotation</param>
- /// <param name="t">A progress value between 0 and 1</param>
- /// <returns>The interpolated rotation</returns>
+ /// <param name="q1">The start rotation.</param>
+ /// <param name="q2">The end rotation.</param>
+ /// <param name="t">A progress value between 0 and 1.</param>
+ /// <returns>The interpolated rotation.</returns>
+ /// <since_tizen> 3 </since_tizen>
public static Rotation Lerp(Rotation q1, Rotation q2, float t)
{
Rotation ret = new Rotation(NDalicPINVOKE.Rotation_Lerp(Rotation.getCPtr(q1), Rotation.getCPtr(q2), t), true);
}
/// <summary>
- /// Spherical Linear Interpolation (using the shortest arc of a great circle between the two rotations).
+ /// The spherical linear interpolation (using the shortest arc of a great circle between the two rotations).
/// </summary>
- /// <param name="q1">The start rotation</param>
- /// <param name="q2">The end rotation</param>
- /// <param name="progress">A progress value between 0 and 1</param>
- /// <returns>The interpolated rotation</returns>
+ /// <param name="q1">The start rotation.</param>
+ /// <param name="q2">The end rotation.</param>
+ /// <param name="progress">A progress value between 0 and 1.</param>
+ /// <returns>The interpolated rotation.</returns>
+ /// <since_tizen> 3 </since_tizen>
public static Rotation Slerp(Rotation q1, Rotation q2, float progress)
{
Rotation ret = new Rotation(NDalicPINVOKE.Rotation_Slerp(Rotation.getCPtr(q1), Rotation.getCPtr(q2), progress), true);
}
/// <summary>
- /// This version of Slerp, used by Squad, does not check for theta > 90.
+ /// This version of slerp, used by squad, does not check for theta > 90.
/// </summary>
- /// <param name="q1">The start rotation</param>
- /// <param name="q2">The end rotation</param>
- /// <param name="t">A progress value between 0 and 1</param>
- /// <returns>The interpolated rotation</returns>
+ /// <param name="q1">The start rotation.</param>
+ /// <param name="q2">The end rotation.</param>
+ /// <param name="t">A progress value between 0 and 1.</param>
+ /// <returns>The interpolated rotation.</returns>
+ /// <since_tizen> 3 </since_tizen>
public static Rotation SlerpNoInvert(Rotation q1, Rotation q2, float t)
{
Rotation ret = new Rotation(NDalicPINVOKE.Rotation_SlerpNoInvert(Rotation.getCPtr(q1), Rotation.getCPtr(q2), t), true);
}
/// <summary>
- /// Spherical Cubic Interpolation.
+ /// The spherical cubic interpolation.
/// </summary>
- /// <param name="start">The start rotation</param>
- /// <param name="end">The end rotation</param>
- /// <param name="ctrl1">The control rotation for q1</param>
- /// <param name="ctrl2">The control rotation for q2</param>
- /// <param name="t">A progress value between 0 and 1</param>
- /// <returns>The interpolated rotation</returns>
+ /// <param name="start">The start rotation.</param>
+ /// <param name="end">The end rotation.</param>
+ /// <param name="ctrl1">The control rotation for q1.</param>
+ /// <param name="ctrl2">The control rotation for q2.</param>
+ /// <param name="t">A progress value between 0 and 1.</param>
+ /// <returns>The interpolated rotation.</returns>
+ /// <since_tizen> 3 </since_tizen>
public static Rotation Squad(Rotation start, Rotation end, Rotation ctrl1, Rotation ctrl2, float t)
{
Rotation ret = new Rotation(NDalicPINVOKE.Rotation_Squad(Rotation.getCPtr(start), Rotation.getCPtr(end), Rotation.getCPtr(ctrl1), Rotation.getCPtr(ctrl2), t), true);
}
/// <summary>
- /// Returns the shortest angle between two rotations in Radians.
+ /// Returns the shortest angle between two rotations in radians.
/// </summary>
- /// <param name="q1">The first rotation</param>
- /// <param name="q2">The second rotation</param>
- /// <returns>The angle between the two rotation</returns>
+ /// <param name="q1">The first rotation.</param>
+ /// <param name="q2">The second rotation.</param>
+ /// <returns>The angle between the two rotation.</returns>
+ /// <since_tizen> 3 </since_tizen>
public static float AngleBetween(Rotation q1, Rotation q2)
{
float ret = NDalicPINVOKE.Rotation_AngleBetween(Rotation.getCPtr(q1), Rotation.getCPtr(q2));
}
-}
+}
\ No newline at end of file