2 * Copyright(c) 2018 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 using Tizen.NUI.Binding;
24 /// A three-dimensional vector.
26 /// <since_tizen> 3 </since_tizen>
27 [TypeConverter(typeof(Vector3TypeConverter))]
28 public class Vector3 : global::System.IDisposable
33 /// <since_tizen> 3 </since_tizen>
34 protected bool swigCMemOwn;
36 /// A Flat to check if it is already disposed.
38 /// <since_tizen> 3 </since_tizen>
39 protected bool disposed = false;
40 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
41 //A Flag to check who called Dispose(). (By User or DisposeQueue)
42 private bool isDisposeQueued = false;
47 /// <since_tizen> 3 </since_tizen>
48 public Vector3() : this(NDalicPINVOKE.new_Vector3__SWIG_0(), true)
50 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
54 /// The default constructor initializes the vector to 0.
56 /// <param name="x">The x (or width) component.</param>
57 /// <param name="y">The y (or height) component.</param>
58 /// <param name="z">The z (or depth) component.</param>
59 /// <since_tizen> 3 </since_tizen>
60 public Vector3(float x, float y, float z) : this(NDalicPINVOKE.new_Vector3__SWIG_1(x, y, z), true)
62 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
66 /// Conversion constructor from an array of three floats.
68 /// <param name="array">An array of xyz.</param>
69 /// <since_tizen> 3 </since_tizen>
70 public Vector3(float[] array) : this(NDalicPINVOKE.new_Vector3__SWIG_2(array), true)
72 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
78 /// <param name="vec2">Vector2 to create this vector from.</param>
79 /// <since_tizen> 3 </since_tizen>
80 public Vector3(Vector2 vec2) : this(NDalicPINVOKE.new_Vector3__SWIG_3(Vector2.getCPtr(vec2)), true)
82 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
88 /// <param name="vec4">Vector4 to create this vector from.</param>
89 /// <since_tizen> 3 </since_tizen>
90 public Vector3(Vector4 vec4) : this(NDalicPINVOKE.new_Vector3__SWIG_4(Vector4.getCPtr(vec4)), true)
92 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
95 internal Vector3(global::System.IntPtr cPtr, bool cMemoryOwn)
97 swigCMemOwn = cMemoryOwn;
98 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
104 /// <since_tizen> 3 </since_tizen>
109 isDisposeQueued = true;
110 DisposeQueue.Instance.Add(this);
115 /// (1.0f,1.0f,1.0f).
117 /// <since_tizen> 3 </since_tizen>
118 public static Vector3 One
122 global::System.IntPtr cPtr = NDalicPINVOKE.Vector3_ONE_get();
123 Vector3 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector3(cPtr, false);
124 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
130 /// The vector representing the x-axis.
132 /// <since_tizen> 3 </since_tizen>
133 public static Vector3 XAxis
137 global::System.IntPtr cPtr = NDalicPINVOKE.Vector3_XAXIS_get();
138 Vector3 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector3(cPtr, false);
139 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
145 /// The vector representing the y-axis.
147 /// <since_tizen> 3 </since_tizen>
148 public static Vector3 YAxis
152 global::System.IntPtr cPtr = NDalicPINVOKE.Vector3_YAXIS_get();
153 Vector3 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector3(cPtr, false);
154 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
160 /// The vector representing the z-axis.
162 /// <since_tizen> 3 </since_tizen>
163 public static Vector3 ZAxis
167 global::System.IntPtr cPtr = NDalicPINVOKE.Vector3_ZAXIS_get();
168 Vector3 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector3(cPtr, false);
169 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
175 /// The vector representing the negative x-axis.
177 /// <since_tizen> 3 </since_tizen>
178 public static Vector3 NegativeXAxis
182 global::System.IntPtr cPtr = NDalicPINVOKE.Vector3_NEGATIVE_XAXIS_get();
183 Vector3 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector3(cPtr, false);
184 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
190 /// Th vector representing the negative y-axis.
192 /// <since_tizen> 3 </since_tizen>
193 public static Vector3 NegativeYAxis
197 global::System.IntPtr cPtr = NDalicPINVOKE.Vector3_NEGATIVE_YAXIS_get();
198 Vector3 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector3(cPtr, false);
199 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
205 /// The vector representing the negative z-axis.
207 /// <since_tizen> 3 </since_tizen>
208 public static Vector3 NegativeZAxis
212 global::System.IntPtr cPtr = NDalicPINVOKE.Vector3_NEGATIVE_ZAXIS_get();
213 Vector3 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector3(cPtr, false);
214 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
220 /// (0.0f, 0.0f, 0.0f).
222 /// <since_tizen> 3 </since_tizen>
223 public static Vector3 Zero
227 global::System.IntPtr cPtr = NDalicPINVOKE.Vector3_ZERO_get();
228 Vector3 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector3(cPtr, false);
229 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
237 /// <since_tizen> 3 </since_tizen>
242 NDalicPINVOKE.Vector3_X_set(swigCPtr, value);
243 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
247 float ret = NDalicPINVOKE.Vector3_X_get(swigCPtr);
248 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
254 /// The width component.
256 /// <since_tizen> 3 </since_tizen>
261 NDalicPINVOKE.Vector3_Width_set(swigCPtr, value);
262 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
266 float ret = NDalicPINVOKE.Vector3_Width_get(swigCPtr);
267 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
273 /// The red component.
275 /// <since_tizen> 3 </since_tizen>
280 NDalicPINVOKE.Vector3_r_set(swigCPtr, value);
281 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
285 float ret = NDalicPINVOKE.Vector3_r_get(swigCPtr);
286 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
294 /// <since_tizen> 3 </since_tizen>
299 NDalicPINVOKE.Vector3_Y_set(swigCPtr, value);
300 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
304 float ret = NDalicPINVOKE.Vector3_Y_get(swigCPtr);
305 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
311 /// The height component.
313 /// <since_tizen> 3 </since_tizen>
318 NDalicPINVOKE.Vector3_Height_set(swigCPtr, value);
319 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
323 float ret = NDalicPINVOKE.Vector3_Height_get(swigCPtr);
324 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
330 /// The green component.
332 /// <since_tizen> 3 </since_tizen>
337 NDalicPINVOKE.Vector3_g_set(swigCPtr, value);
338 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
342 float ret = NDalicPINVOKE.Vector3_g_get(swigCPtr);
343 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
351 /// <since_tizen> 3 </since_tizen>
356 NDalicPINVOKE.Vector3_Z_set(swigCPtr, value);
357 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
361 float ret = NDalicPINVOKE.Vector3_Z_get(swigCPtr);
362 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
368 /// The depth component.
370 /// <since_tizen> 3 </since_tizen>
375 NDalicPINVOKE.Vector3_Depth_set(swigCPtr, value);
376 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
380 float ret = NDalicPINVOKE.Vector3_Depth_get(swigCPtr);
381 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
387 /// The blue component.
389 /// <since_tizen> 3 </since_tizen>
394 NDalicPINVOKE.Vector3_b_set(swigCPtr, value);
395 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
399 float ret = NDalicPINVOKE.Vector3_b_get(swigCPtr);
400 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
406 /// An array subscript operator overload.
408 /// <param name="index">The subscript index.</param>
409 /// <returns>The float at the given index.</returns>
410 /// <since_tizen> 3 </since_tizen>
411 public float this[uint index]
415 return ValueOfIndex(index);
420 /// The addition operator.
422 /// <param name="arg1">The first value.</param>
423 /// <param name="arg2">The second value.</param>
424 /// <returns>The vector containing the result of the addition.</returns>
425 /// <since_tizen> 3 </since_tizen>
426 public static Vector3 operator +(Vector3 arg1, Vector3 arg2)
428 return arg1.Add(arg2);
432 /// The subtraction operator.
434 /// <param name="arg1">The first value.</param>
435 /// <param name="arg2">The second value.</param>
436 /// <returns>The vector containing the result of the subtraction.</returns>
437 /// <since_tizen> 3 </since_tizen>
438 public static Vector3 operator -(Vector3 arg1, Vector3 arg2)
440 return arg1.Subtract(arg2);
444 /// The unary negation operator.
446 /// <param name="arg1">The target value.</param>
447 /// <returns>The vector containg the negation.</returns>
448 /// <since_tizen> 3 </since_tizen>
449 public static Vector3 operator -(Vector3 arg1)
451 return arg1.Subtract();
455 /// The multiplication operator.
457 /// <param name="arg1">The first value.</param>
458 /// <param name="arg2">The second value.</param>
459 /// <returns>The vector containing the result of the multiplication.</returns>
460 /// <since_tizen> 3 </since_tizen>
461 public static Vector3 operator *(Vector3 arg1, Vector3 arg2)
463 return arg1.Multiply(arg2);
467 /// The multiplication operator.
469 /// <param name="arg1">The first value.</param>
470 /// <param name="arg2">The float value to scale the vector.</param>
471 /// <returns>The vector containing the result of the scaling.</returns>
472 /// <since_tizen> 3 </since_tizen>
473 public static Vector3 operator *(Vector3 arg1, float arg2)
475 return arg1.Multiply(arg2);
479 /// The division operator.
481 /// <param name="arg1">The first value.</param>
482 /// <param name="arg2">The second value.</param>
483 /// <returns>The vector containing the result of the division.</returns>
484 /// <since_tizen> 3 </since_tizen>
485 public static Vector3 operator /(Vector3 arg1, Vector3 arg2)
487 return arg1.Divide(arg2);
491 /// The division operator.
493 /// <param name="arg1">The first value.</param>
494 /// <param name="arg2">The float value to scale the vector by.</param>
495 /// <returns>The vector containing the result of the scaling.</returns>
496 /// <since_tizen> 3 </since_tizen>
497 public static Vector3 operator /(Vector3 arg1, float arg2)
499 return arg1.Divide(arg2);
503 /// Determines whether the specified object is equal to the current object.
505 /// <param name="obj">The object to compare with the current object.</param>
506 /// <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
507 public override bool Equals(System.Object obj)
509 Vector3 vector3 = obj as Vector3;
511 if (X == vector3?.X && Y == vector3?.Y && Z == vector3?.Z)
519 /// Gets the the hash code of this Vector3.
521 /// <returns>The Hash Code.</returns>
522 /// <since_tizen> 5 </since_tizen>
523 public override int GetHashCode()
525 return X.GetHashCode();
529 /// Returns the length of the vector.
531 /// <returns>The length of the vector.</returns>
532 /// <since_tizen> 3 </since_tizen>
533 public float Length()
535 float ret = NDalicPINVOKE.Vector3_Length(swigCPtr);
536 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
541 /// Returns the length of the vector squared.<br />
542 /// This is more efficient than Length() for threshold
543 /// testing as it avoids the use of a square root.<br />
545 /// <returns>The length of the vector squared.</returns>
546 /// <since_tizen> 3 </since_tizen>
547 public float LengthSquared()
549 float ret = NDalicPINVOKE.Vector3_LengthSquared(swigCPtr);
550 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
555 /// Sets the vector to be unit length, whilst maintaining its direction.
557 /// <since_tizen> 3 </since_tizen>
558 public void Normalize()
560 NDalicPINVOKE.Vector3_Normalize(swigCPtr);
561 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
565 /// Clamps the vector between minimum and maximum vectors.
567 /// <param name="min">The minimum vector.</param>
568 /// <param name="max">The maximum vector.</param>
569 /// <since_tizen> 3 </since_tizen>
570 public void Clamp(Vector3 min, Vector3 max)
572 NDalicPINVOKE.Vector3_Clamp(swigCPtr, Vector3.getCPtr(min), Vector3.getCPtr(max));
573 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
577 /// Returns the x and y components (or width and height, or r and g) as a Vector2.
579 /// <returns>The partial vector contents as Vector2 (x,y).</returns>
580 /// <since_tizen> 3 </since_tizen>
581 public Vector2 GetVectorXY()
583 Vector2 ret = new Vector2(NDalicPINVOKE.Vector3_GetVectorXY__SWIG_0(swigCPtr), false);
584 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
589 /// Returns the y and z components (or height and depth, or g and b) as a Vector2.
591 /// <returns>The partial vector contents as Vector2 (y,z).</returns>
592 /// <since_tizen> 3 </since_tizen>
593 public Vector2 GetVectorYZ()
595 Vector2 ret = new Vector2(NDalicPINVOKE.Vector3_GetVectorYZ__SWIG_0(swigCPtr), false);
596 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
603 /// <since_tizen> 3 </since_tizen>
604 public void Dispose()
606 //Throw excpetion if Dispose() is called in separate thread.
607 if (!Window.IsInstalled())
609 throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
614 Dispose(DisposeTypes.Implicit);
618 Dispose(DisposeTypes.Explicit);
619 System.GC.SuppressFinalize(this);
623 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Vector3 obj)
625 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
628 internal static Vector3 GetVector3FromPtr(global::System.IntPtr cPtr)
630 Vector3 ret = new Vector3(cPtr, false);
631 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
635 internal SWIGTYPE_p_float AsFloat()
637 global::System.IntPtr cPtr = NDalicPINVOKE.Vector3_AsFloat__SWIG_0(swigCPtr);
638 SWIGTYPE_p_float ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_float(cPtr, false);
639 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
646 /// <param name="type">The dispose type</param>
647 /// <since_tizen> 3 </since_tizen>
648 protected virtual void Dispose(DisposeTypes type)
655 if (type == DisposeTypes.Explicit)
658 //Release your own managed resources here.
659 //You should release all of your own disposable objects here.
662 //Release your own unmanaged resources here.
663 //You should not access any managed member here except static instance.
664 //because the execution order of Finalizes is non-deterministic.
666 if (swigCPtr.Handle != global::System.IntPtr.Zero)
671 NDalicPINVOKE.delete_Vector3(swigCPtr);
673 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
678 private Vector3 Add(Vector3 rhs)
680 Vector3 ret = new Vector3(NDalicPINVOKE.Vector3_Add(swigCPtr, Vector3.getCPtr(rhs)), true);
681 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
685 private Vector3 AddAssign(Vector3 rhs)
687 Vector3 ret = new Vector3(NDalicPINVOKE.Vector3_AddAssign(swigCPtr, Vector3.getCPtr(rhs)), false);
688 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
692 private Vector3 Subtract(Vector3 rhs)
694 Vector3 ret = new Vector3(NDalicPINVOKE.Vector3_Subtract__SWIG_0(swigCPtr, Vector3.getCPtr(rhs)), true);
695 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
699 private Vector3 SubtractAssign(Vector3 rhs)
701 Vector3 ret = new Vector3(NDalicPINVOKE.Vector3_SubtractAssign(swigCPtr, Vector3.getCPtr(rhs)), false);
702 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
706 private Vector3 Multiply(Vector3 rhs)
708 Vector3 ret = new Vector3(NDalicPINVOKE.Vector3_Multiply__SWIG_0(swigCPtr, Vector3.getCPtr(rhs)), true);
709 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
713 private Vector3 Multiply(float rhs)
715 Vector3 ret = new Vector3(NDalicPINVOKE.Vector3_Multiply__SWIG_1(swigCPtr, rhs), true);
716 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
720 private Vector3 MultiplyAssign(Vector3 rhs)
722 Vector3 ret = new Vector3(NDalicPINVOKE.Vector3_MultiplyAssign__SWIG_0(swigCPtr, Vector3.getCPtr(rhs)), false);
723 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
727 private Vector3 MultiplyAssign(float rhs)
729 Vector3 ret = new Vector3(NDalicPINVOKE.Vector3_MultiplyAssign__SWIG_1(swigCPtr, rhs), false);
730 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
734 private Vector3 MultiplyAssign(Rotation rhs)
736 Vector3 ret = new Vector3(NDalicPINVOKE.Vector3_MultiplyAssign__SWIG_2(swigCPtr, Rotation.getCPtr(rhs)), false);
737 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
741 private Vector3 Divide(Vector3 rhs)
743 Vector3 ret = new Vector3(NDalicPINVOKE.Vector3_Divide__SWIG_0(swigCPtr, Vector3.getCPtr(rhs)), true);
744 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
748 private Vector3 Divide(float rhs)
750 Vector3 ret = new Vector3(NDalicPINVOKE.Vector3_Divide__SWIG_1(swigCPtr, rhs), true);
751 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
755 private Vector3 DivideAssign(Vector3 rhs)
757 Vector3 ret = new Vector3(NDalicPINVOKE.Vector3_DivideAssign__SWIG_0(swigCPtr, Vector3.getCPtr(rhs)), false);
758 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
762 private Vector3 DivideAssign(float rhs)
764 Vector3 ret = new Vector3(NDalicPINVOKE.Vector3_DivideAssign__SWIG_1(swigCPtr, rhs), false);
765 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
769 private Vector3 Subtract()
771 Vector3 ret = new Vector3(NDalicPINVOKE.Vector3_Subtract__SWIG_1(swigCPtr), true);
772 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
776 private bool EqualTo(Vector3 rhs)
778 bool ret = NDalicPINVOKE.Vector3_EqualTo(swigCPtr, Vector3.getCPtr(rhs));
779 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
783 private bool NotEqualTo(Vector3 rhs)
785 bool ret = NDalicPINVOKE.Vector3_NotEqualTo(swigCPtr, Vector3.getCPtr(rhs));
786 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
790 private float ValueOfIndex(uint index)
792 float ret = NDalicPINVOKE.Vector3_ValueOfIndex__SWIG_0(swigCPtr, index);
793 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
797 internal float Dot(Vector3 other)
799 float ret = NDalicPINVOKE.Vector3_Dot(swigCPtr, Vector3.getCPtr(other));
800 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
804 internal Vector3 Cross(Vector3 other)
806 Vector3 ret = new Vector3(NDalicPINVOKE.Vector3_Cross(swigCPtr, Vector3.getCPtr(other)), true);
807 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();