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;
30 public virtual void Dispose() {
32 if (swigCPtr.Handle != global::System.IntPtr.Zero) {
35 NDalicPINVOKE.delete_Quaternion(swigCPtr);
37 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
39 global::System.GC.SuppressFinalize(this);
43 public static Quaternion operator+(Quaternion arg1, Quaternion arg2) {
44 return arg1.Add(arg2);
47 public static Quaternion operator-(Quaternion arg1, Quaternion arg2) {
48 return arg1.Subtract(arg2);
51 public static Quaternion operator-(Quaternion arg1) {
52 return arg1.Subtract();
55 public static Quaternion operator*(Quaternion arg1, Quaternion arg2) {
56 return arg1.Multiply(arg2);
59 public static Vector3 operator*(Quaternion arg1, Vector3 arg2) {
60 return arg1.Multiply(arg2);
63 public static Quaternion operator*(Quaternion arg1, float arg2) {
64 return arg1.Multiply(arg2);
67 public static Quaternion operator/(Quaternion arg1, Quaternion arg2) {
68 return arg1.Divide(arg2);
71 public static Quaternion operator/(Quaternion arg1, float arg2) {
72 return arg1.Divide(arg2);
75 public Quaternion() : this(NDalicPINVOKE.new_Quaternion__SWIG_0(), true) {
76 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
79 public Quaternion(float cosThetaBy2, float iBySineTheta, float jBySineTheta, float kBySineTheta) : this(NDalicPINVOKE.new_Quaternion__SWIG_1(cosThetaBy2, iBySineTheta, jBySineTheta, kBySineTheta), true) {
80 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
83 public Quaternion(Vector4 vector) : this(NDalicPINVOKE.new_Quaternion__SWIG_2(Vector4.getCPtr(vector)), true) {
84 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
87 public Quaternion(Radian angle, Vector3 axis) : this(NDalicPINVOKE.new_Quaternion__SWIG_3(Radian.getCPtr(angle), Vector3.getCPtr(axis)), true) {
88 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
91 public Quaternion(Radian pitch, Radian yaw, Radian roll) : this(NDalicPINVOKE.new_Quaternion__SWIG_4(Radian.getCPtr(pitch), Radian.getCPtr(yaw), Radian.getCPtr(roll)), true) {
92 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
95 public Quaternion(Matrix matrix) : this(NDalicPINVOKE.new_Quaternion__SWIG_5(Matrix.getCPtr(matrix)), true) {
96 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
99 public Quaternion(Vector3 xAxis, Vector3 yAxis, Vector3 zAxis) : this(NDalicPINVOKE.new_Quaternion__SWIG_6(Vector3.getCPtr(xAxis), Vector3.getCPtr(yAxis), Vector3.getCPtr(zAxis)), true) {
100 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
103 public Quaternion(Vector3 v0, Vector3 v1) : this(NDalicPINVOKE.new_Quaternion__SWIG_7(Vector3.getCPtr(v0), Vector3.getCPtr(v1)), true) {
104 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
107 public static Quaternion IDENTITY {
109 global::System.IntPtr cPtr = NDalicPINVOKE.Quaternion_IDENTITY_get();
110 Quaternion ret = (cPtr == global::System.IntPtr.Zero) ? null : new Quaternion(cPtr, false);
111 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
116 public bool IsIdentity() {
117 bool ret = NDalicPINVOKE.Quaternion_IsIdentity(swigCPtr);
118 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
122 public bool ToAxisAngle(Vector3 axis, Radian angle) {
123 bool ret = NDalicPINVOKE.Quaternion_ToAxisAngle(swigCPtr, Vector3.getCPtr(axis), Radian.getCPtr(angle));
124 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
128 public Vector4 AsVector() {
129 Vector4 ret = new Vector4(NDalicPINVOKE.Quaternion_AsVector(swigCPtr), false);
130 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
134 public void SetEuler(Radian pitch, Radian yaw, Radian roll) {
135 NDalicPINVOKE.Quaternion_SetEuler(swigCPtr, Radian.getCPtr(pitch), Radian.getCPtr(yaw), Radian.getCPtr(roll));
136 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
139 public Vector4 EulerAngles() {
140 Vector4 ret = new Vector4(NDalicPINVOKE.Quaternion_EulerAngles(swigCPtr), true);
141 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
145 public Quaternion Add(Quaternion other) {
146 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Add(swigCPtr, Quaternion.getCPtr(other)), true);
147 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
151 public Quaternion Subtract(Quaternion other) {
152 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Subtract__SWIG_0(swigCPtr, Quaternion.getCPtr(other)), true);
153 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
157 public Quaternion Multiply(Quaternion other) {
158 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Multiply__SWIG_0(swigCPtr, Quaternion.getCPtr(other)), true);
159 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
163 public Vector3 Multiply(Vector3 other) {
164 Vector3 ret = new Vector3(NDalicPINVOKE.Quaternion_Multiply__SWIG_1(swigCPtr, Vector3.getCPtr(other)), true);
165 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
169 public Quaternion Divide(Quaternion other) {
170 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Divide__SWIG_0(swigCPtr, Quaternion.getCPtr(other)), true);
171 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
175 public Quaternion Multiply(float scale) {
176 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Multiply__SWIG_2(swigCPtr, scale), true);
177 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
181 public Quaternion Divide(float scale) {
182 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Divide__SWIG_1(swigCPtr, scale), true);
183 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
187 public Quaternion Subtract() {
188 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Subtract__SWIG_1(swigCPtr), true);
189 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
193 public Quaternion AddAssign(Quaternion other) {
194 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_AddAssign(swigCPtr, Quaternion.getCPtr(other)), false);
195 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
199 public Quaternion SubtractAssign(Quaternion other) {
200 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_SubtractAssign(swigCPtr, Quaternion.getCPtr(other)), false);
201 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
205 public Quaternion MultiplyAssign(Quaternion other) {
206 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_MultiplyAssign__SWIG_0(swigCPtr, Quaternion.getCPtr(other)), false);
207 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
211 public Quaternion MultiplyAssign(float scale) {
212 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_MultiplyAssign__SWIG_1(swigCPtr, scale), false);
213 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
217 public Quaternion DivideAssign(float scale) {
218 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_DivideAssign(swigCPtr, scale), false);
219 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
223 public bool EqualTo(Quaternion rhs) {
224 bool ret = NDalicPINVOKE.Quaternion_EqualTo(swigCPtr, Quaternion.getCPtr(rhs));
225 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
229 public bool NotEqualTo(Quaternion rhs) {
230 bool ret = NDalicPINVOKE.Quaternion_NotEqualTo(swigCPtr, Quaternion.getCPtr(rhs));
231 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
235 public float Length() {
236 float ret = NDalicPINVOKE.Quaternion_Length(swigCPtr);
237 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
241 public float LengthSquared() {
242 float ret = NDalicPINVOKE.Quaternion_LengthSquared(swigCPtr);
243 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
247 public void Normalize() {
248 NDalicPINVOKE.Quaternion_Normalize(swigCPtr);
249 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
252 public Quaternion Normalized() {
253 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Normalized(swigCPtr), true);
254 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
258 public void Conjugate() {
259 NDalicPINVOKE.Quaternion_Conjugate(swigCPtr);
260 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
263 public void Invert() {
264 NDalicPINVOKE.Quaternion_Invert(swigCPtr);
265 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
268 public Quaternion Log() {
269 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Log(swigCPtr), true);
270 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
274 public Quaternion Exp() {
275 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Exp(swigCPtr), true);
276 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
280 public static float Dot(Quaternion q1, Quaternion q2) {
281 float ret = NDalicPINVOKE.Quaternion_Dot(Quaternion.getCPtr(q1), Quaternion.getCPtr(q2));
282 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
286 public static Quaternion Lerp(Quaternion q1, Quaternion q2, float t) {
287 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Lerp(Quaternion.getCPtr(q1), Quaternion.getCPtr(q2), t), true);
288 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
292 public static Quaternion Slerp(Quaternion q1, Quaternion q2, float progress) {
293 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Slerp(Quaternion.getCPtr(q1), Quaternion.getCPtr(q2), progress), true);
294 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
298 public static Quaternion SlerpNoInvert(Quaternion q1, Quaternion q2, float t) {
299 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_SlerpNoInvert(Quaternion.getCPtr(q1), Quaternion.getCPtr(q2), t), true);
300 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
304 public static Quaternion Squad(Quaternion start, Quaternion end, Quaternion ctrl1, Quaternion ctrl2, float t) {
305 Quaternion ret = new Quaternion(NDalicPINVOKE.Quaternion_Squad(Quaternion.getCPtr(start), Quaternion.getCPtr(end), Quaternion.getCPtr(ctrl1), Quaternion.getCPtr(ctrl2), t), true);
306 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
310 public static float AngleBetween(Quaternion q1, Quaternion q2) {
311 float ret = NDalicPINVOKE.Quaternion_AngleBetween(Quaternion.getCPtr(q1), Quaternion.getCPtr(q2));
312 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
316 public Vector4 Rotate(Vector4 vector) {
317 Vector4 ret = new Vector4(NDalicPINVOKE.Quaternion_Rotate__SWIG_0(swigCPtr, Vector4.getCPtr(vector)), true);
318 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
322 public Vector3 Rotate(Vector3 vector) {
323 Vector3 ret = new Vector3(NDalicPINVOKE.Quaternion_Rotate__SWIG_1(swigCPtr, Vector3.getCPtr(vector)), true);
324 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
328 public Vector4 mVector {
330 NDalicPINVOKE.Quaternion_mVector_set(swigCPtr, Vector4.getCPtr(value));
331 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
334 global::System.IntPtr cPtr = NDalicPINVOKE.Quaternion_mVector_get(swigCPtr);
335 Vector4 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector4(cPtr, false);
336 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();