2 * Copyright(c) 2017 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 four-dimensional vector.
26 /// <since_tizen> 3 </since_tizen>
27 [TypeConverter(typeof(Vector4TypeConverter))]
28 public class Vector4 : global::System.IDisposable
30 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
34 /// <since_tizen> 3 </since_tizen>
35 protected bool swigCMemOwn;
37 internal Vector4(global::System.IntPtr cPtr, bool cMemoryOwn)
39 swigCMemOwn = cMemoryOwn;
40 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
43 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Vector4 obj)
45 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
48 //A Flag to check who called Dispose(). (By User or DisposeQueue)
49 private bool isDisposeQueued = false;
52 /// A Flat to check if it is already disposed.
54 /// <since_tizen> 3 </since_tizen>
55 protected bool disposed = false;
60 /// <since_tizen> 3 </since_tizen>
65 isDisposeQueued = true;
66 DisposeQueue.Instance.Add(this);
73 /// <since_tizen> 3 </since_tizen>
76 //Throw excpetion if Dispose() is called in separate thread.
77 if (!Window.IsInstalled())
79 throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
84 Dispose(DisposeTypes.Implicit);
88 Dispose(DisposeTypes.Explicit);
89 System.GC.SuppressFinalize(this);
96 /// <param name="type">The dispose type</param>
97 /// <since_tizen> 3 </since_tizen>
98 protected virtual void Dispose(DisposeTypes type)
105 if(type == DisposeTypes.Explicit)
108 //Release your own managed resources here.
109 //You should release all of your own disposable objects here.
112 //Release your own unmanaged resources here.
113 //You should not access any managed member here except static instance.
114 //because the execution order of Finalizes is non-deterministic.
116 if (swigCPtr.Handle != global::System.IntPtr.Zero)
121 NDalicPINVOKE.delete_Vector4(swigCPtr);
123 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
129 /// The addition operator.
131 /// <param name="arg1">The first value.</param>
132 /// <param name="arg2">The second value.</param>
133 /// <returns>The vector containing the result of the addition.</returns>
134 /// <since_tizen> 3 </since_tizen>
135 public static Vector4 operator +(Vector4 arg1, Vector4 arg2)
137 return arg1.Add(arg2);
141 /// The subtraction operator.
143 /// <param name="arg1">The first value.</param>
144 /// <param name="arg2">The second value.</param>
145 /// <returns>The vector containing the result of the subtraction.</returns>
146 /// <since_tizen> 3 </since_tizen>
147 public static Vector4 operator -(Vector4 arg1, Vector4 arg2)
149 return arg1.Subtract(arg2);
153 /// The unary negation operator.
155 /// <param name="arg1">The target value.</param>
156 /// <returns>The vector containing the negation.</returns>
157 /// <since_tizen> 3 </since_tizen>
158 public static Vector4 operator -(Vector4 arg1)
160 return arg1.Subtract();
164 /// The multiplication operator.
166 /// <param name="arg1">The first value.</param>
167 /// <param name="arg2">The second value.</param>
168 /// <returns>The vector containing the result of the multiplication.</returns>
169 /// <since_tizen> 3 </since_tizen>
170 public static Vector4 operator *(Vector4 arg1, Vector4 arg2)
172 return arg1.Multiply(arg2);
176 /// The multiplication operator.
178 /// <param name="arg1">The first value.</param>
179 /// <param name="arg2">The float value to scale the vector.</param>
180 /// <returns>The vector containing the result of scaling.</returns>
181 /// <since_tizen> 3 </since_tizen>
182 public static Vector4 operator *(Vector4 arg1, float arg2)
184 return arg1.Multiply(arg2);
188 /// The division operator.
190 /// <param name="arg1">The first value.</param>
191 /// <param name="arg2">The second value.</param>
192 /// <returns>The vector containing the result of the division.</returns>
193 /// <since_tizen> 3 </since_tizen>
194 public static Vector4 operator /(Vector4 arg1, Vector4 arg2)
196 return arg1.Divide(arg2);
200 /// The division operator.
202 /// <param name="arg1">The first value.</param>
203 /// <param name="arg2">The float value to scale the vector by.</param>
204 /// <returns>The vector containing the result of scaling.</returns>
205 /// <since_tizen> 3 </since_tizen>
206 public static Vector4 operator /(Vector4 arg1, float arg2)
208 return arg1.Divide(arg2);
212 /// The array subscript operator overload.
214 /// <param name="index">The subscript index.</param>
215 /// <returns>The float at the given index.</returns>
216 /// <since_tizen> 3 </since_tizen>
217 public float this[uint index]
221 return ValueOfIndex(index);
225 internal static Vector4 GetVector4FromPtr(global::System.IntPtr cPtr)
227 Vector4 ret = new Vector4(cPtr, false);
228 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
233 /// The default constructor initializes the vector to 0.
235 /// <since_tizen> 3 </since_tizen>
236 public Vector4() : this(NDalicPINVOKE.new_Vector4__SWIG_0(), true)
238 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
242 /// The conversion constructor from four floats.
244 /// <param name="x">The x (or r/s) component.</param>
245 /// <param name="y">The y (or g/t) component.</param>
246 /// <param name="z">The z (or b/p) component.</param>
247 /// <param name="w">The w (or a/q) component.</param>
248 /// <since_tizen> 3 </since_tizen>
249 public Vector4(float x, float y, float z, float w) : this(NDalicPINVOKE.new_Vector4__SWIG_1(x, y, z, w), true)
251 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
255 /// The conversion constructor from an array of four floats.
257 /// <param name="array">The array of either xyzw/rgba/stpq.</param>
258 /// <since_tizen> 3 </since_tizen>
259 public Vector4(float[] array) : this(NDalicPINVOKE.new_Vector4__SWIG_2(array), true)
261 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
265 /// The conversion constructor from Vector2.
267 /// <param name="vec2">Vector2 to copy from, z and w are initialized to 0.</param>
268 /// <since_tizen> 3 </since_tizen>
269 public Vector4(Vector2 vec2) : this(NDalicPINVOKE.new_Vector4__SWIG_3(Vector2.getCPtr(vec2)), true)
271 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
275 /// The conversion constructor from Vector3.
277 /// <param name="vec3">Vector3 to copy from, w is initialized to 0.</param>
278 /// <since_tizen> 3 </since_tizen>
279 public Vector4(Vector3 vec3) : this(NDalicPINVOKE.new_Vector4__SWIG_4(Vector3.getCPtr(vec3)), true)
281 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
285 /// (1.0f,1.0f,1.0f,1.0f).
287 /// <since_tizen> 3 </since_tizen>
288 public static Vector4 One
292 global::System.IntPtr cPtr = NDalicPINVOKE.Vector4_ONE_get();
293 Vector4 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector4(cPtr, false);
294 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
300 /// (1.0f,0.0f,0.0f,0.0f).
302 /// <since_tizen> 3 </since_tizen>
303 public static Vector4 XAxis
307 global::System.IntPtr cPtr = NDalicPINVOKE.Vector4_XAXIS_get();
308 Vector4 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector4(cPtr, false);
309 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
315 /// (0.0f,1.0f,0.0f,0.0f).
317 /// <since_tizen> 3 </since_tizen>
318 public static Vector4 YAxis
322 global::System.IntPtr cPtr = NDalicPINVOKE.Vector4_YAXIS_get();
323 Vector4 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector4(cPtr, false);
324 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
330 /// (0.0f,0.0f,1.0f,0.0f).
332 /// <since_tizen> 3 </since_tizen>
333 public static Vector4 ZAxis
337 global::System.IntPtr cPtr = NDalicPINVOKE.Vector4_ZAXIS_get();
338 Vector4 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector4(cPtr, false);
339 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
345 /// (0.0f, 0.0f, 0.0f, 0.0f).
347 /// <since_tizen> 3 </since_tizen>
348 public static Vector4 Zero
352 global::System.IntPtr cPtr = NDalicPINVOKE.Vector4_ZERO_get();
353 Vector4 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector4(cPtr, false);
354 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
359 private Vector4 Add(Vector4 rhs)
361 Vector4 ret = new Vector4(NDalicPINVOKE.Vector4_Add(swigCPtr, Vector4.getCPtr(rhs)), true);
362 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
366 private Vector4 AddAssign(Vector4 rhs)
368 Vector4 ret = new Vector4(NDalicPINVOKE.Vector4_AddAssign(swigCPtr, Vector4.getCPtr(rhs)), false);
369 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
373 private Vector4 Subtract(Vector4 rhs)
375 Vector4 ret = new Vector4(NDalicPINVOKE.Vector4_Subtract__SWIG_0(swigCPtr, Vector4.getCPtr(rhs)), true);
376 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
380 private Vector4 SubtractAssign(Vector4 rhs)
382 Vector4 ret = new Vector4(NDalicPINVOKE.Vector4_SubtractAssign(swigCPtr, Vector4.getCPtr(rhs)), false);
383 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
387 private Vector4 Multiply(Vector4 rhs)
389 Vector4 ret = new Vector4(NDalicPINVOKE.Vector4_Multiply__SWIG_0(swigCPtr, Vector4.getCPtr(rhs)), true);
390 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
394 private Vector4 Multiply(float rhs)
396 Vector4 ret = new Vector4(NDalicPINVOKE.Vector4_Multiply__SWIG_1(swigCPtr, rhs), true);
397 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
401 private Vector4 MultiplyAssign(Vector4 rhs)
403 Vector4 ret = new Vector4(NDalicPINVOKE.Vector4_MultiplyAssign__SWIG_0(swigCPtr, Vector4.getCPtr(rhs)), false);
404 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
408 private Vector4 MultiplyAssign(float rhs)
410 Vector4 ret = new Vector4(NDalicPINVOKE.Vector4_MultiplyAssign__SWIG_1(swigCPtr, rhs), false);
411 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
415 private Vector4 Divide(Vector4 rhs)
417 Vector4 ret = new Vector4(NDalicPINVOKE.Vector4_Divide__SWIG_0(swigCPtr, Vector4.getCPtr(rhs)), true);
418 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
422 private Vector4 Divide(float rhs)
424 Vector4 ret = new Vector4(NDalicPINVOKE.Vector4_Divide__SWIG_1(swigCPtr, rhs), true);
425 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
429 private Vector4 DivideAssign(Vector4 rhs)
431 Vector4 ret = new Vector4(NDalicPINVOKE.Vector4_DivideAssign__SWIG_0(swigCPtr, Vector4.getCPtr(rhs)), false);
432 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
436 private Vector4 DivideAssign(float rhs)
438 Vector4 ret = new Vector4(NDalicPINVOKE.Vector4_DivideAssign__SWIG_1(swigCPtr, rhs), false);
439 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
443 private Vector4 Subtract()
445 Vector4 ret = new Vector4(NDalicPINVOKE.Vector4_Subtract__SWIG_1(swigCPtr), true);
446 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
450 private bool EqualTo(Vector4 rhs)
452 bool ret = NDalicPINVOKE.Vector4_EqualTo(swigCPtr, Vector4.getCPtr(rhs));
453 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
457 private bool NotEqualTo(Vector4 rhs)
459 bool ret = NDalicPINVOKE.Vector4_NotEqualTo(swigCPtr, Vector4.getCPtr(rhs));
460 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
464 private float ValueOfIndex(uint index)
466 float ret = NDalicPINVOKE.Vector4_ValueOfIndex__SWIG_0(swigCPtr, index);
467 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
471 internal float Dot(Vector3 other)
473 float ret = NDalicPINVOKE.Vector4_Dot__SWIG_0(swigCPtr, Vector3.getCPtr(other));
474 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
478 internal float Dot(Vector4 other)
480 float ret = NDalicPINVOKE.Vector4_Dot__SWIG_1(swigCPtr, Vector4.getCPtr(other));
481 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
485 internal float Dot4(Vector4 other)
487 float ret = NDalicPINVOKE.Vector4_Dot4(swigCPtr, Vector4.getCPtr(other));
488 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
492 internal Vector4 Cross(Vector4 other)
494 Vector4 ret = new Vector4(NDalicPINVOKE.Vector4_Cross(swigCPtr, Vector4.getCPtr(other)), true);
495 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
500 /// Determines whether the specified object is equal to the current object.
502 /// <param name="obj">The object to compare with the current object.</param>
503 /// <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
504 public override bool Equals(System.Object obj)
506 Vector4 vector4 = obj as Vector4;
508 if (X == vector4?.X && Y == vector4?.Y && Z == vector4?.Z && W == vector4?.W)
516 /// Returns the length of the vector.
518 /// <returns>The length.</returns>
519 /// <since_tizen> 3 </since_tizen>
520 public float Length()
522 float ret = NDalicPINVOKE.Vector4_Length(swigCPtr);
523 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
528 /// Returns the length of the vector squared.<br />
529 /// This is faster than using Length() when performing
530 /// threshold checks as it avoids use of the square root.<br />
532 /// <returns>The length of the vector squared.</returns>
533 /// <since_tizen> 3 </since_tizen>
534 public float LengthSquared()
536 float ret = NDalicPINVOKE.Vector4_LengthSquared(swigCPtr);
537 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
542 /// Normalizes the vector.<br />
543 /// Sets the vector to unit length whilst maintaining its direction.<br />
545 /// <since_tizen> 3 </since_tizen>
546 public void Normalize()
548 NDalicPINVOKE.Vector4_Normalize(swigCPtr);
549 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
553 /// Clamps the vector between minimum and maximum vectors.
555 /// <param name="min">The minimum vector.</param>
556 /// <param name="max">The maximum vector.</param>
557 /// <since_tizen> 3 </since_tizen>
558 public void Clamp(Vector4 min, Vector4 max)
560 NDalicPINVOKE.Vector4_Clamp(swigCPtr, Vector4.getCPtr(min), Vector4.getCPtr(max));
561 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
564 internal SWIGTYPE_p_float AsFloat()
566 global::System.IntPtr cPtr = NDalicPINVOKE.Vector4_AsFloat__SWIG_0(swigCPtr);
567 SWIGTYPE_p_float ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_float(cPtr, false);
568 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
575 /// <since_tizen> 3 </since_tizen>
580 NDalicPINVOKE.Vector4_X_set(swigCPtr, value);
581 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
585 float ret = NDalicPINVOKE.Vector4_X_get(swigCPtr);
586 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
592 /// The red component.
594 /// <since_tizen> 3 </since_tizen>
599 NDalicPINVOKE.Vector4_r_set(swigCPtr, value);
600 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
604 float ret = NDalicPINVOKE.Vector4_r_get(swigCPtr);
605 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
613 /// <since_tizen> 3 </since_tizen>
618 NDalicPINVOKE.Vector4_s_set(swigCPtr, value);
619 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
623 float ret = NDalicPINVOKE.Vector4_s_get(swigCPtr);
624 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
632 /// <since_tizen> 3 </since_tizen>
637 NDalicPINVOKE.Vector4_Y_set(swigCPtr, value);
638 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
642 float ret = NDalicPINVOKE.Vector4_Y_get(swigCPtr);
643 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
649 /// The green component.
651 /// <since_tizen> 3 </since_tizen>
656 NDalicPINVOKE.Vector4_g_set(swigCPtr, value);
657 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
661 float ret = NDalicPINVOKE.Vector4_g_get(swigCPtr);
662 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
670 /// <since_tizen> 3 </since_tizen>
675 NDalicPINVOKE.Vector4_t_set(swigCPtr, value);
676 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
680 float ret = NDalicPINVOKE.Vector4_t_get(swigCPtr);
681 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
689 /// <since_tizen> 3 </since_tizen>
694 NDalicPINVOKE.Vector4_Z_set(swigCPtr, value);
695 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
699 float ret = NDalicPINVOKE.Vector4_Z_get(swigCPtr);
700 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
706 /// The blue component.
708 /// <since_tizen> 3 </since_tizen>
713 NDalicPINVOKE.Vector4_b_set(swigCPtr, value);
714 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
718 float ret = NDalicPINVOKE.Vector4_b_get(swigCPtr);
719 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
727 /// <since_tizen> 3 </since_tizen>
732 NDalicPINVOKE.Vector4_p_set(swigCPtr, value);
733 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
737 float ret = NDalicPINVOKE.Vector4_p_get(swigCPtr);
738 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
746 /// <since_tizen> 3 </since_tizen>
751 NDalicPINVOKE.Vector4_W_set(swigCPtr, value);
752 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
756 float ret = NDalicPINVOKE.Vector4_W_get(swigCPtr);
757 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
763 /// The alpha component.
765 /// <since_tizen> 3 </since_tizen>
770 NDalicPINVOKE.Vector4_a_set(swigCPtr, value);
771 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
775 float ret = NDalicPINVOKE.Vector4_a_get(swigCPtr);
776 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
784 /// <since_tizen> 3 </since_tizen>
789 NDalicPINVOKE.Vector4_q_set(swigCPtr, value);
790 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
794 float ret = NDalicPINVOKE.Vector4_q_get(swigCPtr);
795 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();