2 * Copyright(c) 2019 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 : Disposable
33 /// <since_tizen> 3 </since_tizen>
34 protected bool swigCMemOwn;
35 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
40 /// <since_tizen> 3 </since_tizen>
41 public Vector3() : this(Interop.Vector3.new_Vector3__SWIG_0(), true)
43 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
47 /// The default constructor initializes the vector to 0.
49 /// <param name="x">The x (or width) component.</param>
50 /// <param name="y">The y (or height) component.</param>
51 /// <param name="z">The z (or depth) component.</param>
52 /// <since_tizen> 3 </since_tizen>
53 public Vector3(float x, float y, float z) : this(Interop.Vector3.new_Vector3__SWIG_1(x, y, z), true)
55 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
59 /// Conversion constructor from an array of three floats.
61 /// <param name="array">An array of xyz.</param>
62 /// <since_tizen> 3 </since_tizen>
63 public Vector3(float[] array) : this(Interop.Vector3.new_Vector3__SWIG_2(array), true)
65 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
71 /// <param name="vec2">Vector2 to create this vector from.</param>
72 /// <since_tizen> 3 </since_tizen>
73 public Vector3(Vector2 vec2) : this(Interop.Vector3.new_Vector3__SWIG_3(Vector2.getCPtr(vec2)), true)
75 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
81 /// <param name="vec4">Vector4 to create this vector from.</param>
82 /// <since_tizen> 3 </since_tizen>
83 public Vector3(Vector4 vec4) : this(Interop.Vector3.new_Vector3__SWIG_4(Vector4.getCPtr(vec4)), true)
85 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
88 internal Vector3(global::System.IntPtr cPtr, bool cMemoryOwn)
90 swigCMemOwn = cMemoryOwn;
91 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
97 /// <since_tizen> 3 </since_tizen>
98 public static Vector3 One
102 global::System.IntPtr cPtr = Interop.Vector3.Vector3_ONE_get();
103 Vector3 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector3(cPtr, false);
104 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
110 /// The vector representing the x-axis.
112 /// <since_tizen> 3 </since_tizen>
113 public static Vector3 XAxis
117 global::System.IntPtr cPtr = Interop.Vector3.Vector3_XAXIS_get();
118 Vector3 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector3(cPtr, false);
119 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
125 /// The vector representing the y-axis.
127 /// <since_tizen> 3 </since_tizen>
128 public static Vector3 YAxis
132 global::System.IntPtr cPtr = Interop.Vector3.Vector3_YAXIS_get();
133 Vector3 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector3(cPtr, false);
134 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
140 /// The vector representing the z-axis.
142 /// <since_tizen> 3 </since_tizen>
143 public static Vector3 ZAxis
147 global::System.IntPtr cPtr = Interop.Vector3.Vector3_ZAXIS_get();
148 Vector3 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector3(cPtr, false);
149 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
155 /// The vector representing the negative x-axis.
157 /// <since_tizen> 3 </since_tizen>
158 public static Vector3 NegativeXAxis
162 global::System.IntPtr cPtr = Interop.Vector3.Vector3_NEGATIVE_XAXIS_get();
163 Vector3 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector3(cPtr, false);
164 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
170 /// Th vector representing the negative y-axis.
172 /// <since_tizen> 3 </since_tizen>
173 public static Vector3 NegativeYAxis
177 global::System.IntPtr cPtr = Interop.Vector3.Vector3_NEGATIVE_YAXIS_get();
178 Vector3 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector3(cPtr, false);
179 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
185 /// The vector representing the negative z-axis.
187 /// <since_tizen> 3 </since_tizen>
188 public static Vector3 NegativeZAxis
192 global::System.IntPtr cPtr = Interop.Vector3.Vector3_NEGATIVE_ZAXIS_get();
193 Vector3 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector3(cPtr, false);
194 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
200 /// (0.0f, 0.0f, 0.0f).
202 /// <since_tizen> 3 </since_tizen>
203 public static Vector3 Zero
207 global::System.IntPtr cPtr = Interop.Vector3.Vector3_ZERO_get();
208 Vector3 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector3(cPtr, false);
209 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
217 /// <since_tizen> 3 </since_tizen>
222 Interop.Vector3.Vector3_X_set(swigCPtr, value);
223 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
227 float ret = Interop.Vector3.Vector3_X_get(swigCPtr);
228 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
234 /// The width component.
236 /// <since_tizen> 3 </since_tizen>
241 Interop.Vector3.Vector3_Width_set(swigCPtr, value);
242 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
246 float ret = Interop.Vector3.Vector3_Width_get(swigCPtr);
247 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
253 /// The red component.
255 /// <since_tizen> 3 </since_tizen>
260 Interop.Vector3.Vector3_r_set(swigCPtr, value);
261 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
265 float ret = Interop.Vector3.Vector3_r_get(swigCPtr);
266 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
274 /// <since_tizen> 3 </since_tizen>
279 Interop.Vector3.Vector3_Y_set(swigCPtr, value);
280 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
284 float ret = Interop.Vector3.Vector3_Y_get(swigCPtr);
285 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
291 /// The height component.
293 /// <since_tizen> 3 </since_tizen>
298 Interop.Vector3.Vector3_Height_set(swigCPtr, value);
299 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
303 float ret = Interop.Vector3.Vector3_Height_get(swigCPtr);
304 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
310 /// The green component.
312 /// <since_tizen> 3 </since_tizen>
317 Interop.Vector3.Vector3_g_set(swigCPtr, value);
318 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
322 float ret = Interop.Vector3.Vector3_g_get(swigCPtr);
323 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
331 /// <since_tizen> 3 </since_tizen>
336 Interop.Vector3.Vector3_Z_set(swigCPtr, value);
337 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
341 float ret = Interop.Vector3.Vector3_Z_get(swigCPtr);
342 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
348 /// The depth component.
350 /// <since_tizen> 3 </since_tizen>
355 Interop.Vector3.Vector3_Depth_set(swigCPtr, value);
356 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
360 float ret = Interop.Vector3.Vector3_Depth_get(swigCPtr);
361 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
367 /// The blue component.
369 /// <since_tizen> 3 </since_tizen>
374 Interop.Vector3.Vector3_b_set(swigCPtr, value);
375 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
379 float ret = Interop.Vector3.Vector3_b_get(swigCPtr);
380 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
386 /// An array subscript operator overload.
388 /// <param name="index">The subscript index.</param>
389 /// <returns>The float at the given index.</returns>
390 /// <since_tizen> 3 </since_tizen>
391 public float this[uint index]
395 return ValueOfIndex(index);
400 /// The addition operator.
402 /// <param name="arg1">The first value.</param>
403 /// <param name="arg2">The second value.</param>
404 /// <returns>The vector containing the result of the addition.</returns>
405 /// <since_tizen> 3 </since_tizen>
406 public static Vector3 operator +(Vector3 arg1, Vector3 arg2)
408 return arg1.Add(arg2);
412 /// The subtraction operator.
414 /// <param name="arg1">The first value.</param>
415 /// <param name="arg2">The second value.</param>
416 /// <returns>The vector containing the result of the subtraction.</returns>
417 /// <since_tizen> 3 </since_tizen>
418 public static Vector3 operator -(Vector3 arg1, Vector3 arg2)
420 return arg1.Subtract(arg2);
424 /// The unary negation operator.
426 /// <param name="arg1">The target value.</param>
427 /// <returns>The vector containg the negation.</returns>
428 /// <since_tizen> 3 </since_tizen>
429 public static Vector3 operator -(Vector3 arg1)
431 return arg1.Subtract();
435 /// The multiplication operator.
437 /// <param name="arg1">The first value.</param>
438 /// <param name="arg2">The second value.</param>
439 /// <returns>The vector containing the result of the multiplication.</returns>
440 /// <since_tizen> 3 </since_tizen>
441 public static Vector3 operator *(Vector3 arg1, Vector3 arg2)
443 return arg1.Multiply(arg2);
447 /// The multiplication operator.
449 /// <param name="arg1">The first value.</param>
450 /// <param name="arg2">The float value to scale the vector.</param>
451 /// <returns>The vector containing the result of the scaling.</returns>
452 /// <since_tizen> 3 </since_tizen>
453 public static Vector3 operator *(Vector3 arg1, float arg2)
455 return arg1.Multiply(arg2);
459 /// The division operator.
461 /// <param name="arg1">The first value.</param>
462 /// <param name="arg2">The second value.</param>
463 /// <returns>The vector containing the result of the division.</returns>
464 /// <since_tizen> 3 </since_tizen>
465 public static Vector3 operator /(Vector3 arg1, Vector3 arg2)
467 return arg1.Divide(arg2);
471 /// The division operator.
473 /// <param name="arg1">The first value.</param>
474 /// <param name="arg2">The float value to scale the vector by.</param>
475 /// <returns>The vector containing the result of the scaling.</returns>
476 /// <since_tizen> 3 </since_tizen>
477 public static Vector3 operator /(Vector3 arg1, float arg2)
479 return arg1.Divide(arg2);
483 /// Determines whether the specified object is equal to the current object.
485 /// <param name="obj">The object to compare with the current object.</param>
486 /// <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
487 public override bool Equals(System.Object obj)
489 Vector3 vector3 = obj as Vector3;
491 if (X == vector3?.X && Y == vector3?.Y && Z == vector3?.Z)
499 /// Gets the the hash code of this Vector3.
501 /// <returns>The Hash Code.</returns>
502 /// <since_tizen> 6 </since_tizen>
503 public override int GetHashCode()
505 return swigCPtr.Handle.GetHashCode();
509 /// Returns the length of the vector.
511 /// <returns>The length of the vector.</returns>
512 /// <since_tizen> 3 </since_tizen>
513 public float Length()
515 float ret = Interop.Vector3.Vector3_Length(swigCPtr);
516 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
521 /// Returns the length of the vector squared.<br />
522 /// This is more efficient than Length() for threshold
523 /// testing as it avoids the use of a square root.<br />
525 /// <returns>The length of the vector squared.</returns>
526 /// <since_tizen> 3 </since_tizen>
527 public float LengthSquared()
529 float ret = Interop.Vector3.Vector3_LengthSquared(swigCPtr);
530 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
535 /// Sets the vector to be unit length, whilst maintaining its direction.
537 /// <since_tizen> 3 </since_tizen>
538 public void Normalize()
540 Interop.Vector3.Vector3_Normalize(swigCPtr);
541 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
545 /// Clamps the vector between minimum and maximum vectors.
547 /// <param name="min">The minimum vector.</param>
548 /// <param name="max">The maximum vector.</param>
549 /// <since_tizen> 3 </since_tizen>
550 public void Clamp(Vector3 min, Vector3 max)
552 Interop.Vector3.Vector3_Clamp(swigCPtr, Vector3.getCPtr(min), Vector3.getCPtr(max));
553 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
557 /// Returns the x and y components (or width and height, or r and g) as a Vector2.
559 /// <returns>The partial vector contents as Vector2 (x,y).</returns>
560 /// <since_tizen> 3 </since_tizen>
561 public Vector2 GetVectorXY()
563 Vector2 ret = new Vector2(Interop.Vector3.Vector3_GetVectorXY__SWIG_0(swigCPtr), false);
564 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
569 /// Returns the y and z components (or height and depth, or g and b) as a Vector2.
571 /// <returns>The partial vector contents as Vector2 (y,z).</returns>
572 /// <since_tizen> 3 </since_tizen>
573 public Vector2 GetVectorYZ()
575 Vector2 ret = new Vector2(Interop.Vector3.Vector3_GetVectorYZ__SWIG_0(swigCPtr), false);
576 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
580 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Vector3 obj)
582 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
585 internal static Vector3 GetVector3FromPtr(global::System.IntPtr cPtr)
587 Vector3 ret = new Vector3(cPtr, false);
588 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
592 internal SWIGTYPE_p_float AsFloat()
594 global::System.IntPtr cPtr = Interop.Vector3.Vector3_AsFloat__SWIG_0(swigCPtr);
595 SWIGTYPE_p_float ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_float(cPtr, false);
596 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
603 /// <param name="type">The dispose type</param>
604 /// <since_tizen> 3 </since_tizen>
605 protected override void Dispose(DisposeTypes type)
612 //Release your own unmanaged resources here.
613 //You should not access any managed member here except static instance.
614 //because the execution order of Finalizes is non-deterministic.
616 if (swigCPtr.Handle != global::System.IntPtr.Zero)
621 Interop.Vector3.delete_Vector3(swigCPtr);
623 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
628 private Vector3 Add(Vector3 rhs)
630 Vector3 ret = new Vector3(Interop.Vector3.Vector3_Add(swigCPtr, Vector3.getCPtr(rhs)), true);
631 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
635 private Vector3 AddAssign(Vector3 rhs)
637 Vector3 ret = new Vector3(Interop.Vector3.Vector3_AddAssign(swigCPtr, Vector3.getCPtr(rhs)), false);
638 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
642 private Vector3 Subtract(Vector3 rhs)
644 Vector3 ret = new Vector3(Interop.Vector3.Vector3_Subtract__SWIG_0(swigCPtr, Vector3.getCPtr(rhs)), true);
645 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
649 private Vector3 SubtractAssign(Vector3 rhs)
651 Vector3 ret = new Vector3(Interop.Vector3.Vector3_SubtractAssign(swigCPtr, Vector3.getCPtr(rhs)), false);
652 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
656 private Vector3 Multiply(Vector3 rhs)
658 Vector3 ret = new Vector3(Interop.Vector3.Vector3_Multiply__SWIG_0(swigCPtr, Vector3.getCPtr(rhs)), true);
659 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
663 private Vector3 Multiply(float rhs)
665 Vector3 ret = new Vector3(Interop.Vector3.Vector3_Multiply__SWIG_1(swigCPtr, rhs), true);
666 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
670 private Vector3 MultiplyAssign(Vector3 rhs)
672 Vector3 ret = new Vector3(Interop.Vector3.Vector3_MultiplyAssign__SWIG_0(swigCPtr, Vector3.getCPtr(rhs)), false);
673 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
677 private Vector3 MultiplyAssign(float rhs)
679 Vector3 ret = new Vector3(Interop.Vector3.Vector3_MultiplyAssign__SWIG_1(swigCPtr, rhs), false);
680 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
684 private Vector3 MultiplyAssign(Rotation rhs)
686 Vector3 ret = new Vector3(Interop.Vector3.Vector3_MultiplyAssign__SWIG_2(swigCPtr, Rotation.getCPtr(rhs)), false);
687 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
691 private Vector3 Divide(Vector3 rhs)
693 Vector3 ret = new Vector3(Interop.Vector3.Vector3_Divide__SWIG_0(swigCPtr, Vector3.getCPtr(rhs)), true);
694 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
698 private Vector3 Divide(float rhs)
700 Vector3 ret = new Vector3(Interop.Vector3.Vector3_Divide__SWIG_1(swigCPtr, rhs), true);
701 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
705 private Vector3 DivideAssign(Vector3 rhs)
707 Vector3 ret = new Vector3(Interop.Vector3.Vector3_DivideAssign__SWIG_0(swigCPtr, Vector3.getCPtr(rhs)), false);
708 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
712 private Vector3 DivideAssign(float rhs)
714 Vector3 ret = new Vector3(Interop.Vector3.Vector3_DivideAssign__SWIG_1(swigCPtr, rhs), false);
715 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
719 private Vector3 Subtract()
721 Vector3 ret = new Vector3(Interop.Vector3.Vector3_Subtract__SWIG_1(swigCPtr), true);
722 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
726 private bool EqualTo(Vector3 rhs)
728 bool ret = Interop.Vector3.Vector3_EqualTo(swigCPtr, Vector3.getCPtr(rhs));
729 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
733 private bool NotEqualTo(Vector3 rhs)
735 bool ret = Interop.Vector3.Vector3_NotEqualTo(swigCPtr, Vector3.getCPtr(rhs));
736 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
740 private float ValueOfIndex(uint index)
742 float ret = Interop.Vector3.Vector3_ValueOfIndex__SWIG_0(swigCPtr, index);
743 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
747 internal float Dot(Vector3 other)
749 float ret = Interop.Vector3.Vector3_Dot(swigCPtr, Vector3.getCPtr(other));
750 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
754 internal Vector3 Cross(Vector3 other)
756 Vector3 ret = new Vector3(Interop.Vector3.Vector3_Cross(swigCPtr, Vector3.getCPtr(other)), true);
757 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();