Difference between revisions of "IC Python API:RLPy RVector4"
Chuck (RL) (Talk | contribs) m |
Chuck (RL) (Talk | contribs) m |
||
Line 93: | Line 93: | ||
The "less than" operator. Similar to string comparison: Returns '''True''' upon the first match that is less than, and '''False''' if it is greater than. If the current comparison is equal, continue onto the next element. If all elements are equal then return '''False'''. | The "less than" operator. Similar to string comparison: Returns '''True''' upon the first match that is less than, and '''False''' if it is greater than. If the current comparison is equal, continue onto the next element. If all elements are equal then return '''False'''. | ||
+ | |||
+ | See Also: [[#<=|<=]] | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
Line 110: | Line 112: | ||
The "greater than" operator. Similar to string comparison: Returns '''True''' upon the first match that is greater than, and '''False''' if it is less than. If the current comparison is equal, continue onto the next element. If all elements are equal then return '''False'''. | The "greater than" operator. Similar to string comparison: Returns '''True''' upon the first match that is greater than, and '''False''' if it is less than. If the current comparison is equal, continue onto the next element. If all elements are equal then return '''False'''. | ||
+ | |||
+ | See Also: [[#>=|>=]] | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
Line 128: | Line 132: | ||
The "less than or equal" operator. Similar to string comparison: Returns '''True''' upon the first match that is less than, and '''False''' if it is greater than. If the current comparison is equal, continue onto the next element. If all elements are equal then return '''True'''. | The "less than or equal" operator. Similar to string comparison: Returns '''True''' upon the first match that is less than, and '''False''' if it is greater than. If the current comparison is equal, continue onto the next element. If all elements are equal then return '''True'''. | ||
+ | |||
+ | See Also: [[#<|<]] | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
Line 146: | Line 152: | ||
The "greater than or equal" operator. Similar to string comparison: Returns '''True''' upon the first match that is greater than, and '''False''' if it is less than. If the current comparison is equal, continue onto the next element. If all elements are equal then return '''True'''. | The "greater than or equal" operator. Similar to string comparison: Returns '''True''' upon the first match that is greater than, and '''False''' if it is less than. If the current comparison is equal, continue onto the next element. If all elements are equal then return '''True'''. | ||
+ | |||
+ | See Also: [[#>|>]] | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
Line 164: | Line 172: | ||
The "addition" operator. Perform a 4D vector addition. | The "addition" operator. Perform a 4D vector addition. | ||
+ | |||
+ | See Also: [[#+=|+=]] | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
Line 176: | Line 186: | ||
The "subtraction" operator. Perform a 4D vector subtraction. | The "subtraction" operator. Perform a 4D vector subtraction. | ||
+ | |||
+ | See Also: [[#-=|-=]] | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
Line 188: | Line 200: | ||
The "multiplication" operator. Perform a scalar multiplication when the second operand is an integer or float. If the second operand is another 4D vector, then the corresponding elements are multiplied. | The "multiplication" operator. Perform a scalar multiplication when the second operand is an integer or float. If the second operand is another 4D vector, then the corresponding elements are multiplied. | ||
+ | |||
+ | See Also: [[#*=|*=]] | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
Line 201: | Line 215: | ||
The "division" operator. Perform a scalar division when the second operand is an integer or float. If the second operand is another 4D vector, then the corresponding elements are divided. | The "division" operator. Perform a scalar division when the second operand is an integer or float. If the second operand is another 4D vector, then the corresponding elements are divided. | ||
+ | |||
+ | See Also: [[#/=|/=]] | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
Line 215: | Line 231: | ||
The "unary minus" operator. Inverse the sign of each element. | The "unary minus" operator. Inverse the sign of each element. | ||
+ | |||
+ | See Also: [[#-=|-=]] | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
Line 226: | Line 244: | ||
The "addition assignment" operator. | The "addition assignment" operator. | ||
+ | |||
+ | See Also: [[#+|+]] | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
Line 238: | Line 258: | ||
The "subtraction assignment" operator. | The "subtraction assignment" operator. | ||
+ | |||
+ | See Also: [[#-|-]] | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
Line 249: | Line 271: | ||
=== *= === | === *= === | ||
− | The "multiplication assignment" operator. | + | The "multiplication assignment" operator. |
+ | |||
+ | See Also: [[#*|*]] | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
Line 264: | Line 288: | ||
=== /= === | === /= === | ||
− | The "division assignment" operator. | + | The "division assignment" operator. |
+ | |||
+ | See Also: [[#/|/]] | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> |
Revision as of 01:17, 7 April 2020
- Main article: Modules.
- Last modified: 04/7/2020
Description
This class represent a 4D vector (x, y, z, w). This class provides access to RLPy's internal 4D vector math library allowing 4D vectors to be handled easily, and in a manner compatible with internal RLPy data structures. It also supports operators and provides some convenient constants:
Constant | Description |
---|---|
RVector4.ZERO | 4D zero vector: (0, 0, 0, 0) |
RVector4.UNIT_X | 4D x unit vector: (1, 0, 0, 0) |
RVector4.UNIT_Y | 4D y unit vector: (0, 1, 0, 0) |
RVector4.UNIT_Z | 4D z unit vector: (0, 0, 1, 0) |
RVector4.UNIT_W | 4D w unit vector: (0, 0, 0, 1) |
RVector4.UNIT_XYZW | 4D vector: (1, 1, 1, 1) |
Constructor & Destructor
__init__ ( )
Initialize a new 4D vector object that is zeroed out: (0, 0, 0, 0).
a = RLPy.RVector4()
__init__ ( a, b, c, d )
Initialize a new 4D vector object as a 4D vector: (x, y, z, w).
Parameters
- a [IN] A numerical value for x coordinate - float or int
- b [IN] A numerical value for y coordinate - float or int
- c [IN] A numerical value for z coordinate - float or int
- d [IN] A numerical value for w coordinate - float or int
a = RLPy.RVector4(1, 2, 3, 4)
__init__ ( *args )
Initialize a new 4D vector object with another 4D vector object: args. This new 4D vector object has the same value as *args.
Parameters
- args [IN] a 4D vector object - RVector4
a = RLPy.RVector4(1, 2, 3, 4)
b = RLPy.RVector4(a)
Operators
=
The "equal to" operator.
a = RLPy.RVector4(1, 2, 3, 4)
b = a
print(a == b) #True
!=
The "not equal to" operator.
a = RLPy.RVector4()
b = RLPy.RVector4(1, 2, 3, 4)
print(a != b) # True
<
The "less than" operator. Similar to string comparison: Returns True upon the first match that is less than, and False if it is greater than. If the current comparison is equal, continue onto the next element. If all elements are equal then return False.
See Also: <=
a = RLPy.RVector4(0, 1, 5, 2)
b = RLPy.RVector4(0, 1, 5, 3)
c = RLPy.RVector4(1, 0, 1, 0)
d = RLPy.RVector4(0, 1, 5, 2)
print(a < b) # True
print(b < c) # True
print('b < c')
if a < d: # False
print('a < d')
>
The "greater than" operator. Similar to string comparison: Returns True upon the first match that is greater than, and False if it is less than. If the current comparison is equal, continue onto the next element. If all elements are equal then return False.
See Also: >=
a = RLPy.RVector4(0, 1, 5, 2)
b = RLPy.RVector4(0, 1, 5, 3)
c = RLPy.RVector4(1, 0, 1, 0)
d = RLPy.RVector4(0, 1, 5, 2)
if b >a: # True
print('b >a')
if c >b: # True
print('c >b')
if a >d: # True
print('a >d')
<=
The "less than or equal" operator. Similar to string comparison: Returns True upon the first match that is less than, and False if it is greater than. If the current comparison is equal, continue onto the next element. If all elements are equal then return True.
See Also: <
a = RLPy.RVector4(0, 1, 5, 2)
b = RLPy.RVector4(0, 1, 5, 3)
c = RLPy.RVector4(1, 0, 1, 0)
d = RLPy.RVector4(0, 1, 5, 2)
if a<= b: # True
print('a<= b')
if b<= c: # True
print('b<= c')
if a<= d: # True
print('a<= d')
>=
The "greater than or equal" operator. Similar to string comparison: Returns True upon the first match that is greater than, and False if it is less than. If the current comparison is equal, continue onto the next element. If all elements are equal then return True.
See Also: >
a = RLPy.RVector4(0, 1, 5, 2)
b = RLPy.RVector4(0, 1, 5, 3)
c = RLPy.RVector4(1, 0, 1, 0)
d = RLPy.RVector4(0, 1, 5, 2)
if b >= a: # True
print('b >= a')
if c >= b: # True
print('c >= b')
if a >= d: # False
print('a >= d')
+
The "addition" operator. Perform a 4D vector addition.
See Also: +=
a = RLPy.RVector4(0, 1, 2, 3)
b = RLPy.RVector4(1, 2, 3, 4)
c = a + b
print(str(c.x) + ', ' + str(c.y) + ', ' + str(c.z) + ', ' + str(c.w)) # 1.0, 3.0, 5.0, 7.0
-
The "subtraction" operator. Perform a 4D vector subtraction.
See Also: -=
a = RLPy.RVector4(0, 1, 2, 3)
b = RLPy.RVector4(3, 2, 1, 0)
c = b - a
print(str(c.x) + ', ' + str(c.y) + ', ' + str(c.z) + ', ' + str(c.w)) # 3.0, 1.0, -1.0, -3.0
*
The "multiplication" operator. Perform a scalar multiplication when the second operand is an integer or float. If the second operand is another 4D vector, then the corresponding elements are multiplied.
See Also: *=
a = RLPy.RVector4(1, 2, 3, 4)
b = a * 2
c = a * a
print(str(b.x) + ', ' + str(b.y) + ', ' + str(b.z) + ', ' + str(b.w)) # 2.0, 4.0, 6.0, 8.0
print(str(c.x) + ', ' + str(c.y) + ', ' + str(c.z) + ', ' + str(c.w)) # 1.0, 4.0, 9.0, 16.0
/
The "division" operator. Perform a scalar division when the second operand is an integer or float. If the second operand is another 4D vector, then the corresponding elements are divided.
See Also: /=
a = RLPy.RVector4(1, 2, 3, 4)
b = a / 2
c = RLPy.RVector4(2, 2, 10, 2)
d = a / c
print(str(b.x) + ', ' + str(b.y) + ', ' + str(b.z) + ', ' + str(b.w)) # 0.5, 1.0, 1.5, 2.0
print(str(d.x) + ', ' + str(d.y) + ', ' + str(d.z) + ', ' + str(d.w)) # 0.5, 1.0, 0.3, 2.0
-
The "unary minus" operator. Inverse the sign of each element.
See Also: -=
a = RLPy.RVector4(1, 2, 3, 4)
b = -a
print(str(b.x) + ', ' + str(b.y) + ', ' + str(b.z) + ', ' + str(b.w)) # -1.0, -2.0, -3.0, -4.0
+=
The "addition assignment" operator.
See Also: +
a = RLPy.RVector4(0, 1, 2, 3)
b = RLPy.RVector4(1, 2, 3, 4)
a += b
print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z) + ', ' + str(a.w)) # 1.0, 3.0, 5.0, 7.0
-=
The "subtraction assignment" operator.
See Also: -
a = RLPy.RVector4(0, 1, 4, 5)
b = RLPy.RVector4(1, 2, 3, 1)
a -= b
print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z) + ', ' + str(a.w)) # -1.0, -1.0, 1.0, 4.0
*=
The "multiplication assignment" operator.
See Also: *
a = RLPy.RVector4(1, 2, 3, 4)
a *= 2
b = RLPy.RVector4(1, 2, 3, 4)
c = RLPy.RVector4(2, 3, 4, 5)
b *= c
print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z) + ', ' + str(a.w)) # 2.0, 4.0, 6.0, 8.0
print(str(b.x) + ', ' + str(b.y) + ', ' + str(b.z) + ', ' + str(b.w)) # 2.0, 6.0, 12.0, 20.0
/=
The "division assignment" operator.
See Also: /
a = RLPy.RVector4(1, 2, 3, 4)
a /= 2
b = RLPy.RVector4(1, 2, 3, 4)
c = RLPy.RVector4(2, 4, 2, 2)
b /= c
print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z) + ', ' + str(a.w)) # 0.5, 1.0, 1.5, 2.0
print(str(b.x) + ', ' + str(b.y) + ', ' + str(b.z) + ', ' + str(b.w)) # 0.5, 0.5, 1.5, 2.0
Member Functions
Dot (self, vV)
Calculate dot product with the given vector.
a = RLPy.RVector4(1, 2, 3, 4)
b = RLPy.RVector4(1, 2, 3, 4)
print(a.Dot(b)) #30.0
Parameters
vV [IN] The vector to compute dot product - RVector4
Returns
Returns the value of the dot product - float
Inverse (self)
Invert every element of this 4D vector.
a = RLPy.RVector4(0.5, 2, 4, 1)
b = a.Inverse()
print(str(b.x) + ', ' + str(b.y) + ', ' + str(b.z) + ', ' + str(b.w)) # 2.0, 0.5, 0.25, 1.0
Returns
Returns the inversed vector - RVector4
Length (self)
Get the length (magnitude) of this 4D vector.
Returns
4D vector magnitude - float
a = RLPy.RVector4(1, 1, 1, 1)
print(a.Length()) # 2.0
Normalize (self)
Normalize this 4D vector.
Returns
Length of this 4D vector before normalization - float
SetW
Set the value of the w-axis.
a = RLPy.RVector4(1, 1, 1, 1)
print(a.Normalize()) # 2.0
print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z) + ', ' + str(a.w)) # 0.5, 0.5, 0.5, 0.5
Parameters
tW [IN] the value of the w-axis - float
a = RLPy.RVector4(1, 1, 1, 1)
a.SetW(10)
print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z) + ', ' + str(a.w)) # 1.0, 1.0, 1.0, 10.0
SetX (self, tX)
Set the value of the x-axis.
Parameters
- tX [IN] the value of the x-axis - float
a = RLPy.RVector4(1, 1, 1, 1)
a.SetX(10)
print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z) + ', ' + str(a.w)) # 10.0, 1.0, 1.0, 1.0
SetY (self, tY)
Set the value of the y-axis.
Parameters
- tY [IN] the value of the y-axis - float
a = RLPy.RVector4(1, 1, 1, 1)
a.SetY(10)
print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z) + ', ' + str(a.w)) # 1.0, 10.0, 1.0, 1.0
SetZ (self, tZ)
Set the value of the z-axis.
Parameters
- tZ [IN] the value of the z-axis - float
a = RLPy.RVector4(1, 1, 1, 1)
a.SetZ(10)
print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z) + ', ' + str(a.w)) # 1.0, 1.0, 10.0, 1.0
SquaredLength (self)
Squared length of this 4D vector.
Returns
- Returns the squared length of this 4D vector - float
a = RLPy.RVector4(1, 1, 1, 1)
print(a.SquaredLength()) # 4.0
XY (self)
Get the first 2 elements of this 4D vector (X, Y) as a 2D vector.
Returns
- Returns a 2D vector - RVector2
a = RLPy.RVector4(1, 2, 3, 4)
b = a.XY()
print(str(b.x) + ', ' + str(b.y)) # 1.0, 2.0
XYZ (self)
Get the first 3 elements of this 4D vector (X, Y, Z) as a 3D vector.
Returns
- Returns a 3D vector - RVector3
a = RLPy.RVector4(1, 2, 3, 4)
b = a.XYZ()
print(str(b.x) + ', ' + str(b.y) + ', ' + str(b.z)) # 1.0, 2.0, 3.0