1 //------------------------------------------------------------------------------
4 // This file was automatically generated by SWIG (http://www.swig.org).
7 // Do not make changes to this file unless you know what you are doing--modify
8 // the SWIG interface file instead.
9 //------------------------------------------------------------------------------
13 public class Quaternion : global::System.IDisposable {
14 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
15 protected bool swigCMemOwn;
17 internal Quaternion(global::System.IntPtr cPtr, bool cMemoryOwn) {
18 swigCMemOwn = cMemoryOwn;
19 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
22 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Quaternion obj) {
23 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
27 DisposeQueue.Instance.Add(this);
30 public virtual void Dispose() {
31 if (!Stage.IsInstalled()) {
32 DisposeQueue.Instance.Add(this);
37 if (swigCPtr.Handle != global::System.IntPtr.Zero) {
40 NDalicPINVOKE.delete_Quaternion(swigCPtr);
42 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
44 global::System.GC.SuppressFinalize(this);
49 public static Quaternion operator+(Quaternion arg1, Quaternion arg2) {
50 return arg1.Add(arg2);
53 public static Quaternion operator-(Quaternion arg1, Quaternion arg2) {
54 return arg1.Subtract(arg2);
57 public static Quaternion operator-(Quaternion arg1) {
58 return arg1.Subtract();
61 public static Quaternion operator*(Quaternion arg1, Quaternion arg2) {
62 return arg1.Multiply(arg2);
65 public static Vector3 operator*(Quaternion arg1, Vector3 arg2) {
66 return arg1.Multiply(arg2);
69 public static Quaternion operator*(Quaternion arg1, float arg2) {
70 return arg1.Multiply(arg2);
73 public static Quaternion operator/(Quaternion arg1, Quaternion arg2) {
74 return arg1.Divide(arg2);
77 public static Quaternion operator/(Quaternion arg1, float arg2) {
78 return arg1.Divide(arg2);
81 public Quaternion() : this(NDalicPINVOKE.new_Quaternion__SWIG_0(), true) {
82 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
85 public Quaternion(float cosThetaBy2, float iBySineTheta, float jBySineTheta, float kBySineTheta) : this(NDalicPINVOKE.new_Quaternion__SWIG_1(cosThetaBy2, iBySineTheta, jBySineTheta, kBySineTheta), true) {
86 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
89 public Quaternion(Vector4 vector) : this(NDalicPINVOKE.new_Quaternion__SWIG_2(Vector4.getCPtr(vector)), true) {
90 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
93 public Quaternion(Radian angle, Vector3 axis) : this(NDalicPINVOKE.new_Quaternion__SWIG_3(Radian.getCPtr(angle), Vector3.getCPtr(axis)), true) {
94 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
97 public Quaternion(Radian pitch, Radian yaw, Radian roll) : this(NDalicPINVOKE.new_Quaternion__SWIG_4(Radian.getCPtr(pitch), Radian.getCPtr(yaw), Radian.getCPtr(roll)), true) {
98 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
101 public Quaternion(Matrix matrix) : this(NDalicPINVOKE.new_Quaternion__SWIG_5(Matrix.getCPtr(matrix)), true) {
102 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
105 public Quaternion(Vector3 xAxis, Vector3 yAxis, Vector3 zAxis) : this(NDalicPINVOKE.new_Quaternion__SWIG_6(Vector3.getCPtr(xAxis), Vector3.getCPtr(yAxis), Vector3.getCPtr(zAxis)), true) {
106 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
109 public Quaternion(Vector3 v0, Vector3 v1) : this(NDalicPINVOKE.new_Quaternion__SWIG_7(Vector3.getCPtr(v0), Vector3.getCPtr(v1)), true) {
110 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
113 public static Quaternion IDENTITY {
115 global::System.IntPtr cPtr = NDalicPINVOKE.Quaternion_IDENTITY_get();
116 Quaternion ret = (cPtr == global::System.IntPtr.Zero) ? null : new Quaternion(cPtr, false);
117 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
122 public bool IsIdentity() {
123 bool ret = NDalicPINVOKE.Quaternion_IsIdentity(swigCPtr);
124 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
128 public bool ToAxisAngle(Vector3 axis, Radian angle) {
129 bool ret = NDalicPINVOKE.Quaternion_ToAxisAngle(swigCPtr, Vector3.getCPtr(axis), Radian.getCPtr(angle));
130 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
134 public Vector4 AsVector() {
135 Vector4 ret = new Vector4(NDalicPINVOKE.Quaternion_AsVector(swigCPtr), false);
136 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
140 public void SetEuler(Radian pitch, Radian yaw, Radian roll) {
141 NDalicPINVOKE.Quaternion_SetEuler(swigCPtr, Radian.getCPtr(pitch), Radian.getCPtr(yaw), Radian.getCPtr(roll));
142 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
145 public Vector4 EulerAngles() {
146 Vector4 ret = new Vector4(NDalicPINVOKE.Quaternion_EulerAngles(swigCPtr), true);
147 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
151 public Quaternion Add(Quaternion other) {
152 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Add(swigCPtr, Quaternion.getCPtr(other)), true);
153 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
157 public Quaternion Subtract(Quaternion other) {
158 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Subtract__SWIG_0(swigCPtr, Quaternion.getCPtr(other)), true);
159 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
163 public Quaternion Multiply(Quaternion other) {
164 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Multiply__SWIG_0(swigCPtr, Quaternion.getCPtr(other)), true);
165 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
169 public Vector3 Multiply(Vector3 other) {
170 Vector3 ret = new Vector3(NDalicPINVOKE.Quaternion_Multiply__SWIG_1(swigCPtr, Vector3.getCPtr(other)), true);
171 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
175 public Quaternion Divide(Quaternion other) {
176 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Divide__SWIG_0(swigCPtr, Quaternion.getCPtr(other)), true);
177 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
181 public Quaternion Multiply(float scale) {
182 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Multiply__SWIG_2(swigCPtr, scale), true);
183 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
187 public Quaternion Divide(float scale) {
188 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Divide__SWIG_1(swigCPtr, scale), true);
189 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
193 public Quaternion Subtract() {
194 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Subtract__SWIG_1(swigCPtr), true);
195 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
199 public Quaternion AddAssign(Quaternion other) {
200 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_AddAssign(swigCPtr, Quaternion.getCPtr(other)), false);
201 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
205 public Quaternion SubtractAssign(Quaternion other) {
206 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_SubtractAssign(swigCPtr, Quaternion.getCPtr(other)), false);
207 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
211 public Quaternion MultiplyAssign(Quaternion other) {
212 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_MultiplyAssign__SWIG_0(swigCPtr, Quaternion.getCPtr(other)), false);
213 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
217 public Quaternion MultiplyAssign(float scale) {
218 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_MultiplyAssign__SWIG_1(swigCPtr, scale), false);
219 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
223 public Quaternion DivideAssign(float scale) {
224 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_DivideAssign(swigCPtr, scale), false);
225 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
229 public bool EqualTo(Quaternion rhs) {
230 bool ret = NDalicPINVOKE.Quaternion_EqualTo(swigCPtr, Quaternion.getCPtr(rhs));
231 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
235 public bool NotEqualTo(Quaternion rhs) {
236 bool ret = NDalicPINVOKE.Quaternion_NotEqualTo(swigCPtr, Quaternion.getCPtr(rhs));
237 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
241 public float Length() {
242 float ret = NDalicPINVOKE.Quaternion_Length(swigCPtr);
243 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
247 public float LengthSquared() {
248 float ret = NDalicPINVOKE.Quaternion_LengthSquared(swigCPtr);
249 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
253 public void Normalize() {
254 NDalicPINVOKE.Quaternion_Normalize(swigCPtr);
255 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
258 public Quaternion Normalized() {
259 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Normalized(swigCPtr), true);
260 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
264 public void Conjugate() {
265 NDalicPINVOKE.Quaternion_Conjugate(swigCPtr);
266 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
269 public void Invert() {
270 NDalicPINVOKE.Quaternion_Invert(swigCPtr);
271 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
274 public Quaternion Log() {
275 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Log(swigCPtr), true);
276 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
280 public Quaternion Exp() {
281 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Exp(swigCPtr), true);
282 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
286 public static float Dot(Quaternion q1, Quaternion q2) {
287 float ret = NDalicPINVOKE.Quaternion_Dot(Quaternion.getCPtr(q1), Quaternion.getCPtr(q2));
288 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
292 public static Quaternion Lerp(Quaternion q1, Quaternion q2, float t) {
293 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Lerp(Quaternion.getCPtr(q1), Quaternion.getCPtr(q2), t), true);
294 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
298 public static Quaternion Slerp(Quaternion q1, Quaternion q2, float progress) {
299 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Slerp(Quaternion.getCPtr(q1), Quaternion.getCPtr(q2), progress), true);
300 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
304 public static Quaternion SlerpNoInvert(Quaternion q1, Quaternion q2, float t) {
305 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_SlerpNoInvert(Quaternion.getCPtr(q1), Quaternion.getCPtr(q2), t), true);
306 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
310 public static Quaternion Squad(Quaternion start, Quaternion end, Quaternion ctrl1, Quaternion ctrl2, float t) {
311 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Squad(Quaternion.getCPtr(start), Quaternion.getCPtr(end), Quaternion.getCPtr(ctrl1), Quaternion.getCPtr(ctrl2), t), true);
312 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
316 public static float AngleBetween(Quaternion q1, Quaternion q2) {
317 float ret = NDalicPINVOKE.Quaternion_AngleBetween(Quaternion.getCPtr(q1), Quaternion.getCPtr(q2));
318 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
322 public Vector4 Rotate(Vector4 vector) {
323 Vector4 ret = new Vector4(NDalicPINVOKE.Quaternion_Rotate__SWIG_0(swigCPtr, Vector4.getCPtr(vector)), true);
324 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
328 public Vector3 Rotate(Vector3 vector) {
329 Vector3 ret = new Vector3(NDalicPINVOKE.Quaternion_Rotate__SWIG_1(swigCPtr, Vector3.getCPtr(vector)), true);
330 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
334 public Vector4 mVector {
336 NDalicPINVOKE.Quaternion_mVector_set(swigCPtr, Vector4.getCPtr(value));
337 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
340 global::System.IntPtr cPtr = NDalicPINVOKE.Quaternion_mVector_get(swigCPtr);
341 Vector4 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector4(cPtr, false);
342 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();