Difference between revisions of "IC Python API:RLPy RVector3"
Chuck (RL) (Talk | contribs) m (→Interpolate) |
Chuck (RL) (Talk | contribs) m |
||
(2 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
== Description == | == Description == | ||
− | This class represent the 3D vector (x, y, z). This class provides access to RLPy's internal | + | This class represent the 3D vector (x, y, z). This class provides access to RLPy's internal 3D vector math library allowing 3D vectors to be handled easily, in a manner compatible with internal RLPy data structures. It also supports operators and provides some constants for your convenience: |
{|class = "wikitable" | {|class = "wikitable" | ||
Line 40: | Line 40: | ||
=== __init__ ( self ) === | === __init__ ( self ) === | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3() | a = RLPy.RVector3() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 46: | Line 46: | ||
=== __init__ ( self, x, y, z ) === | === __init__ ( self, x, y, z ) === | ||
− | <syntaxhighlight lang=" | + | ==== Parameters ==== |
+ | :'''x''' [IN] A numerical value for x coordinate - float or int | ||
+ | :'''y''' [IN] A numerical value for y coordinate - float or int | ||
+ | :'''z''' [IN] A numerical value for z coordinate - float or int | ||
+ | |||
+ | <syntaxhighlight lang="python" line='line'> | ||
a = RLPy.RVector3(1, 2, 3) | a = RLPy.RVector3(1, 2, 3) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
=== __init__ ( self, args ) === | === __init__ ( self, args ) === | ||
− | The constructor. Initialize a new RVector3 object with another RVector3 object: args. This new RVector3 object has the same value as args. | + | The constructor. Initialize a new [[IC_Python_API:RLPy_RVector3|RVector3]]object with another [[IC_Python_API:RLPy_RVector3|RVector3]]object: args. This new [[IC_Python_API:RLPy_RVector3|RVector3]]object has the same value as args. |
− | <syntaxhighlight lang=" | + | ==== Parameters ==== |
+ | :'''args''' [IN] a [[IC_Python_API:RLPy_RVector3|RVector3]]object - [[IC_Python_API:RLPy_RVector3|RVector3]] | ||
+ | |||
+ | <syntaxhighlight lang="python" line='line'> | ||
a = RLPy.RVector3(1, 2, 3) | a = RLPy.RVector3(1, 2, 3) | ||
b = RLPy.RVector3(a) | b = RLPy.RVector3(a) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | |||
− | |||
== Operators == | == Operators == | ||
Line 73: | Line 73: | ||
The "equal to" operator. | The "equal to" operator. | ||
− | <syntaxhighlight lang=" | + | See Also: [[#!=|!=]] |
+ | |||
+ | <syntaxhighlight lang="python" line='line'> | ||
a = RLPy.RVector3(1, 2, 3) | a = RLPy.RVector3(1, 2, 3) | ||
b = a | b = a | ||
Line 84: | Line 86: | ||
The "not equal to" operator. | The "not equal to" operator. | ||
− | <syntaxhighlight lang=" | + | See Also: [[#==|==]] |
+ | |||
+ | <syntaxhighlight lang="python" line='line'> | ||
a = RLPy.RVector3() | a = RLPy.RVector3() | ||
b = RLPy.RVector3(1, 2, 3) | b = RLPy.RVector3(1, 2, 3) | ||
Line 95: | Line 99: | ||
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'''. | ||
− | <syntaxhighlight lang=" | + | See Also: [[#<=|<=]] |
+ | |||
+ | <syntaxhighlight lang="python" line='line'> | ||
a = RLPy.RVector3(0, 1, 5) | a = RLPy.RVector3(0, 1, 5) | ||
b = RLPy.RVector3(0, 2, 0) | b = RLPy.RVector3(0, 2, 0) | ||
Line 110: | Line 116: | ||
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'''. | ||
− | <syntaxhighlight lang=" | + | See Also: [[#>=|>=]] |
+ | |||
+ | <syntaxhighlight lang="python" line='line'> | ||
a = RLPy.RVector3(0, 1, 5) | a = RLPy.RVector3(0, 1, 5) | ||
b = RLPy.RVector3(0, 1, 7) | b = RLPy.RVector3(0, 1, 7) | ||
Line 125: | Line 133: | ||
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'''. | ||
− | <syntaxhighlight lang=" | + | See Also: [[#<|<]] |
+ | |||
+ | <syntaxhighlight lang="python" line='line'> | ||
a = RLPy.RVector3(0, 1, 5) | a = RLPy.RVector3(0, 1, 5) | ||
b = RLPy.RVector3(0, 2, 0) | b = RLPy.RVector3(0, 2, 0) | ||
Line 140: | Line 150: | ||
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'''. | ||
− | <syntaxhighlight lang=" | + | See Also: [[#>|>]] |
+ | |||
+ | <syntaxhighlight lang="python" line='line'> | ||
a = RLPy.RVector3(0, 1, 5) | a = RLPy.RVector3(0, 1, 5) | ||
b = RLPy.RVector3(0, 1, 7) | b = RLPy.RVector3(0, 1, 7) | ||
Line 155: | Line 167: | ||
The "addition" operator. Perform 3D vector addition. | The "addition" operator. Perform 3D vector addition. | ||
− | <syntaxhighlight lang=" | + | See Also: [[#+=|+=]] |
+ | |||
+ | <syntaxhighlight lang="python" line='line'> | ||
a = RLPy.RVector3(0, 1, 2) | a = RLPy.RVector3(0, 1, 2) | ||
b = RLPy.RVector3(1, 2, 3) | b = RLPy.RVector3(1, 2, 3) | ||
Line 167: | Line 181: | ||
The "subtraction" operator. Perform 3D vector subtraction. | The "subtraction" operator. Perform 3D vector subtraction. | ||
− | <syntaxhighlight lang=" | + | See Also: [[#-=|-=]] |
+ | |||
+ | <syntaxhighlight lang="python" line='line'> | ||
a = RLPy.RVector3(0, 1, 2) | a = RLPy.RVector3(0, 1, 2) | ||
b = RLPy.RVector3(3, 2, 1) | b = RLPy.RVector3(3, 2, 1) | ||
Line 179: | Line 195: | ||
The "multiplication" operator. Perform a scalar multiplication when the second operand is an integer or float. If the second operand is another 3D vector, then the respective x, y, z 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 3D vector, then the respective x, y, z elements are multiplied. | ||
− | <syntaxhighlight lang=" | + | See Also: [[#*=|*=]] |
+ | |||
+ | <syntaxhighlight lang="python" line='line'> | ||
a = RLPy.RVector3(1, 2, 3) | a = RLPy.RVector3(1, 2, 3) | ||
b = a * 2 | b = a * 2 | ||
Line 190: | Line 208: | ||
=== / === | === / === | ||
− | The "division" operator. Perform a scalar division when the second operand is an integer or float. If the second operand is another vector, then the respective x, y, z 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 3D vector, then the respective x, y, z elements are divided. |
+ | |||
+ | See Also: [[#/=|/=]] | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3(1, 2, 3) | a = RLPy.RVector3(1, 2, 3) | ||
b = a / 2 | b = a / 2 | ||
Line 206: | Line 226: | ||
The "unary minus" operator. Inverse the sign of each element. | The "unary minus" operator. Inverse the sign of each element. | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3(1, 2, 3) | a = RLPy.RVector3(1, 2, 3) | ||
b = -a | b = -a | ||
Line 217: | Line 237: | ||
The "addition assignment" operator. | The "addition assignment" operator. | ||
− | <syntaxhighlight lang=" | + | See Also: [[#+|+]] |
+ | |||
+ | <syntaxhighlight lang="python" line='line'> | ||
a = RLPy.RVector3(0, 1, 2) | a = RLPy.RVector3(0, 1, 2) | ||
b = RLPy.RVector3(1, 2, 3) | b = RLPy.RVector3(1, 2, 3) | ||
Line 229: | Line 251: | ||
The "subtraction assignment" operator. | The "subtraction assignment" operator. | ||
− | <syntaxhighlight lang=" | + | See Also: [[#-|-]] |
+ | |||
+ | <syntaxhighlight lang="python" line='line'> | ||
a = RLPy.RVector3(0, 1, 4) | a = RLPy.RVector3(0, 1, 4) | ||
b = RLPy.RVector3(1, 2, 3) | b = RLPy.RVector3(1, 2, 3) | ||
Line 239: | Line 263: | ||
=== *= === | === *= === | ||
− | The "multiplication assignment" operator. | + | The "multiplication assignment" operator. For calculation method, refer to the '''*''' operator. |
+ | |||
+ | See Also: [[#*|*]] | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3(1, 2, 3) | a = RLPy.RVector3(1, 2, 3) | ||
a *= 2 | a *= 2 | ||
Line 254: | Line 280: | ||
=== /= === | === /= === | ||
− | The "division assignment" operator. | + | The "division assignment" operator. For calculation method, refer to the '''/''' operator. |
− | <syntaxhighlight lang=" | + | See Also: [[#/|/]] |
+ | |||
+ | <syntaxhighlight lang="python" line='line'> | ||
a = RLPy.RVector3(1, 2, 3) | a = RLPy.RVector3(1, 2, 3) | ||
a /= 2 | a /= 2 | ||
Line 271: | Line 299: | ||
=== AlmostTheSame ( self, vV ) === | === AlmostTheSame ( self, vV ) === | ||
− | Determine the | + | Determine if this and another 3D vector is the equivalent withing a tolerance. |
==== Returns ==== | ==== Returns ==== | ||
− | :True if the | + | :'''True''' if the 3D vectors are almost the same, else '''False''' - bool |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3(1, 2, 3) | a = RLPy.RVector3(1, 2, 3) | ||
b = RLPy.RVector3(1, 2, 3.000000001) | b = RLPy.RVector3(1, 2, 3.000000001) | ||
Line 289: | Line 317: | ||
=== AlmostZero ( self ) === | === AlmostZero ( self ) === | ||
− | Determine | + | Determine if this 3D vector is a zeroed 3D vector. |
==== Returns ==== | ==== Returns ==== | ||
− | :True if | + | :'''True''' if this 3D vector is a zeroed 3D vector, else '''False''' - bool |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3(0.00000001, 0, 0.00000003) | a = RLPy.RVector3(0.00000001, 0, 0.00000003) | ||
b = RLPy.RVector3(0.00001, 0, 0) | b = RLPy.RVector3(0.00001, 0, 0) | ||
Line 306: | Line 334: | ||
=== Cross ( self, vV ) === | === Cross ( self, vV ) === | ||
− | + | Calculate the cross production of this and another 3D vector. | |
− | + | ||
− | + | ||
− | + | ||
− | Calculate cross production of | + | |
==== Parameters ==== | ==== Parameters ==== | ||
− | :'''vV''' [IN] The vector - | + | :'''vV''' [IN] The vector - [[IC_Python_API:RLPy_RVector3|RVector3]] |
==== Returns ==== | ==== Returns ==== | ||
− | :New vector which is the cross product of | + | :New 3D vector which is the cross product of this and another 3D vector - [[IC_Python_API:RLPy_RVector3|RVector3]] |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3(1, 0, 0) | a = RLPy.RVector3(1, 0, 0) | ||
b = RLPy.RVector3(0, 1, 0) | b = RLPy.RVector3(0, 1, 0) | ||
Line 328: | Line 352: | ||
=== Distance ( self, vV ) === | === Distance ( self, vV ) === | ||
− | + | Calculate the distance between this and another 3D vector. | |
==== Parameters ==== | ==== Parameters ==== | ||
− | :'''vV''' [IN] The vector - | + | :'''vV''' [IN] The vector - [[IC_Python_API:RLPy_RVector3|RVector3]] |
==== Returns ==== | ==== Returns ==== | ||
− | :The distance - float | + | :The distance between this and another 3D vector - float |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3(3, 0, 0) | a = RLPy.RVector3(3, 0, 0) | ||
b = RLPy.RVector3(0, 4, 0) | b = RLPy.RVector3(0, 4, 0) | ||
Line 345: | Line 369: | ||
=== Dot (self, vV) === | === Dot (self, vV) === | ||
− | Calculate dot production of | + | Calculate the dot production of this and another 3D vector. |
==== Parameters ==== | ==== Parameters ==== | ||
− | :'''vV''' [IN] The 3D vector with which to compute the dot product - | + | :'''vV''' [IN] The 3D vector with which to compute the dot product - [[IC_Python_API:RLPy_RVector3|RVector3]] |
==== Returns ==== | ==== Returns ==== | ||
:The value of the dot product - float | :The value of the dot product - float | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3(1, 2, 3) | a = RLPy.RVector3(1, 2, 3) | ||
b = RLPy.RVector3(1, 2, 3) | b = RLPy.RVector3(1, 2, 3) | ||
Line 362: | Line 386: | ||
=== Interpolate ( self, vRatio, vV ) === | === Interpolate ( self, vRatio, vV ) === | ||
− | + | Calculate the interpolate of this and another 3D vector. | |
==== Parameters ==== | ==== Parameters ==== | ||
:'''vRatio''' [IN] ratio value - float | :'''vRatio''' [IN] ratio value - float | ||
− | :'''vV''' [IN] | + | :'''vV''' [IN] Another 3D vector - [[IC_Python_API:RLPy_RVector3|RVector3]] |
==== Returns ==== | ==== Returns ==== | ||
− | :New vector which is the cross product | + | :New vector which is the cross product this and another vector - [[IC_Python_API:RLPy_RVector3|RVector3]] |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3(10, 20, 30) | a = RLPy.RVector3(10, 20, 30) | ||
b = RLPy.RVector3(1, 2, 3) | b = RLPy.RVector3(1, 2, 3) | ||
Line 384: | Line 408: | ||
==== Returns ==== | ==== Returns ==== | ||
− | :The | + | :The inverse of this 3D vector - [[IC_Python_API:RLPy_RVector3|RVector3]] |
+ | |||
+ | <syntaxhighlight lang="python" line='line'> | ||
+ | a = RLPy.RVector3(1, 2, 3) | ||
+ | b = a.Inverse() | ||
+ | print(str(b.x) + ', ' + str(b.y) + ', ' + str(b.z)) # 1.0, 0.5, 0.3333333432674408 | ||
+ | </syntaxhighlight> | ||
=== Length ( self )=== | === Length ( self )=== | ||
Line 393: | Line 423: | ||
:Length of this vector - float | :Length of this vector - float | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3(1, 1, 1) | a = RLPy.RVector3(1, 1, 1) | ||
Line 401: | Line 431: | ||
=== Normalize ( self ) === | === Normalize ( self ) === | ||
− | + | Normalize this 3D vector. | |
==== Returns ==== | ==== Returns ==== | ||
− | :The normalized vector - float | + | :The normalized 3D vector - float |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3(1, 1, 1) | a = RLPy.RVector3(1, 1, 1) | ||
Line 415: | Line 445: | ||
=== SetX ( self, tX ) === | === SetX ( self, tX ) === | ||
− | Set the value of the x-axis. | + | Set the value of the x-axis for this 3D vector. |
==== Parameters ==== | ==== Parameters ==== | ||
− | :'''tX''' [IN] | + | :'''tX''' [IN] The value of the x-axis - float |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3(1, 1, 1) | a = RLPy.RVector3(1, 1, 1) | ||
a.SetX(10) | a.SetX(10) | ||
Line 429: | Line 459: | ||
=== SetXYZ ( self, tX, tY, tZ ) === | === SetXYZ ( self, tX, tY, tZ ) === | ||
− | Set the value of the all axes. | + | Set the value of the all axes for this 3D vector. |
==== Parameters ==== | ==== Parameters ==== | ||
− | :'''tX''' [IN] | + | :'''tX''' [IN] The value of the x-axis - float |
− | :'''tY''' [IN] | + | :'''tY''' [IN] The value of the y-axis - float |
− | :'''tZ''' [IN] | + | :'''tZ''' [IN] The value of the z-axis - float |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3(1, 1, 1) | a = RLPy.RVector3(1, 1, 1) | ||
a.SetXYZ(10, 20, 30) | a.SetXYZ(10, 20, 30) | ||
Line 445: | Line 475: | ||
=== SetY ( self, tY ) === | === SetY ( self, tY ) === | ||
− | Set the value of the y-axis. | + | Set the value of the y-axis for this 3D vector. |
==== Parameters ==== | ==== Parameters ==== | ||
:'''tX''' [IN] the value of the y-axis. | :'''tX''' [IN] the value of the y-axis. | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3(1, 1, 1) | a = RLPy.RVector3(1, 1, 1) | ||
a.SetY(10) | a.SetY(10) | ||
Line 459: | Line 489: | ||
=== SetZ ( self, tZ ) === | === SetZ ( self, tZ ) === | ||
− | Set the value of the z-axis. | + | Set the value of the z-axis for this 3D vector. |
==== Parameters ==== | ==== Parameters ==== | ||
− | :tX[IN] | + | :tX[IN] The value for the z-axis. |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3(1, 1, 1) | a = RLPy.RVector3(1, 1, 1) | ||
a.SetZ(10) | a.SetZ(10) | ||
Line 473: | Line 503: | ||
=== SquaredDistance ( self, vV ) === | === SquaredDistance ( self, vV ) === | ||
− | + | Get the squared distance between this and another 3D vector. | |
==== Parameters ==== | ==== Parameters ==== | ||
− | :'''vV''' [IN] The vector - | + | :'''vV''' [IN] The vector - [[IC_Python_API:RLPy_RVector3|RVector3]] |
==== Returns ==== | ==== Returns ==== | ||
− | :The | + | :The squared distance of this and another 3D vector - float |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3(1, 1, 1) | a = RLPy.RVector3(1, 1, 1) | ||
Line 489: | Line 519: | ||
=== SquaredLength ( self ) === | === SquaredLength ( self ) === | ||
− | + | Get the squared length of this 3D vector. | |
==== Returns ==== | ==== Returns ==== | ||
:The squared length of this vector - float | :The squared length of this vector - float | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3(1, 1, 1) | a = RLPy.RVector3(1, 1, 1) | ||
Line 502: | Line 532: | ||
=== XY ( self ) === | === XY ( self ) === | ||
− | Get the x and y elements of | + | Get the x and y elements of this 3D vector. |
==== Returns ==== | ==== Returns ==== | ||
− | : | + | :A 2D vector composed of this 3D vector's x and y elements - [[IC_Python_API:RLPy_RVector2|RVector2]] |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="python" line='line'> |
a = RLPy.RVector3(1, 2, 3) | a = RLPy.RVector3(1, 2, 3) | ||
b = a.XY() | b = a.XY() |
Latest revision as of 18:55, 13 April 2020
Contents
- 1 Description
- 2 Constructor & Destructor
- 3 Operators
- 4 Member Functions
- 4.1 AlmostTheSame ( self, vV )
- 4.2 AlmostZero ( self )
- 4.3 Cross ( self, vV )
- 4.4 Distance ( self, vV )
- 4.5 Dot (self, vV)
- 4.6 Interpolate ( self, vRatio, vV )
- 4.7 Inverse ( self )
- 4.8 Length ( self )
- 4.9 Normalize ( self )
- 4.10 SetX ( self, tX )
- 4.11 SetXYZ ( self, tX, tY, tZ )
- 4.12 SetY ( self, tY )
- 4.13 SetZ ( self, tZ )
- 4.14 SquaredDistance ( self, vV )
- 4.15 SquaredLength ( self )
- 4.16 XY ( self )
- Main article: Modules.
- Last modified: 04/13/2020
Description
This class represent the 3D vector (x, y, z). This class provides access to RLPy's internal 3D vector math library allowing 3D vectors to be handled easily, in a manner compatible with internal RLPy data structures. It also supports operators and provides some constants for your convenience:
Constant | Description |
---|---|
RVector3.ZERO | 3D zero vector: (0, 0, 0) |
RVector3.UNIT_X | 3D x unit vector: (1, 0, 0) |
RVector3.UNIT_Y | 3D y unit vector: (0, 1, 0) |
RVector3.UNIT_Z | 3D z unit vector: (0, 0, 1) |
RVector3.UNIT_XY | 3D vector: (1, 1, 0) |
RVector3.UNIT_YZ | 3D vector: (0, 1, 1) |
RVector3.UNIT_XZ | 3D vector: (1, 0, 1) |
RVector3.UNIT_XYZ | 3D vector: (1, 1, 1) |
Constructor & Destructor
__init__ ( self )
1 a = RLPy.RVector3()
__init__ ( self, x, y, z )
Parameters
- x [IN] A numerical value for x coordinate - float or int
- y [IN] A numerical value for y coordinate - float or int
- z [IN] A numerical value for z coordinate - float or int
1 a = RLPy.RVector3(1, 2, 3)
__init__ ( self, args )
The constructor. Initialize a new RVector3object with another RVector3object: args. This new RVector3object has the same value as args.
Parameters
- args [IN] a RVector3object - RVector3
1 a = RLPy.RVector3(1, 2, 3)
2 b = RLPy.RVector3(a)
Operators
==
The "equal to" operator.
See Also: !=
1 a = RLPy.RVector3(1, 2, 3)
2 b = a
3
4 print(a == b) #True
!=
The "not equal to" operator.
See Also: ==
1 a = RLPy.RVector3()
2 b = RLPy.RVector3(1, 2, 3)
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: <=
1 a = RLPy.RVector3(0, 1, 5)
2 b = RLPy.RVector3(0, 2, 0)
3 c = RLPy.RVector3(1, 0, 1)
4 d = RLPy.RVector3(0, 1, 5)
5
6 print(a < b) #True
7 print(b < c) #True
8 print(a < d) #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: >=
1 a = RLPy.RVector3(0, 1, 5)
2 b = RLPy.RVector3(0, 1, 7)
3 c = RLPy.RVector3(1, 0, 1)
4 d = RLPy.RVector3(0, 1, 5)
5
6 print(b > a) #True
7 print(c > b) #True
8 print(d > a) #False
<=
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: <
1 a = RLPy.RVector3(0, 1, 5)
2 b = RLPy.RVector3(0, 2, 0)
3 c = RLPy.RVector3(1, 0, 1)
4 d = RLPy.RVector3(0, 1, 5)
5
6 print(a<= b) #True
7 print(b<= c) #True
8 print(a<= d) #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: >
1 a = RLPy.RVector3(0, 1, 5)
2 b = RLPy.RVector3(0, 1, 7)
3 c = RLPy.RVector3(1, 0, 1)
4 d = RLPy.RVector3(0, 1, 5)
5
6 print(b >= a) #True
7 print(c >= b) #True
8 print(d >= a) #True
+
The "addition" operator. Perform 3D vector addition.
See Also: +=
1 a = RLPy.RVector3(0, 1, 2)
2 b = RLPy.RVector3(1, 2, 3)
3 c = a + b
4
5 print(str(c.x) + ', ' + str(c.y) + ', ' + str(c.z)) #1.0, 3.0, 5.0
-
The "subtraction" operator. Perform 3D vector subtraction.
See Also: -=
1 a = RLPy.RVector3(0, 1, 2)
2 b = RLPy.RVector3(3, 2, 1)
3 c = b - a
4
5 print(str(c.x) + ', ' + str(c.y) + ', ' + str(c.z)) #3.0, 1.0, -1.0
*
The "multiplication" operator. Perform a scalar multiplication when the second operand is an integer or float. If the second operand is another 3D vector, then the respective x, y, z elements are multiplied.
See Also: *=
1 a = RLPy.RVector3(1, 2, 3)
2 b = a * 2
3 c = a * a
4
5 print(str(b.x) + ', ' + str(b.y) + ', ' + str(b.z)) #2.0, 4.0, 6.0
6 print(str(c.x) + ', ' + str(c.y) + ', ' + str(c.z)) #1.0, 4.0, 9.0
/
The "division" operator. Perform a scalar division when the second operand is an integer or float. If the second operand is another 3D vector, then the respective x, y, z elements are divided.
See Also: /=
1 a = RLPy.RVector3(1, 2, 3)
2 b = a / 2
3 c = RLPy.RVector3(2, 2, 10)
4 d = a / c
5
6 print(str(b.x) + ', ' + str(b.y) + ', ' + str(b.z)) #0.5, 1.0, 1.5
7 print(str(d.x) + ', ' + str(d.y) + ', ' + str(d.z)) #0.5, 1.0, 0.3
-
The "unary minus" operator. Inverse the sign of each element.
1 a = RLPy.RVector3(1, 2, 3)
2 b = -a
3
4 print(str(b.x) + ', ' + str(b.y) + ', ' + str(b.z)) #-1.0, -2.0, -3.0
+=
The "addition assignment" operator.
See Also: +
1 a = RLPy.RVector3(0, 1, 2)
2 b = RLPy.RVector3(1, 2, 3)
3 a += b
4
5 print(str(a.x) + ', ' + str(a.y)+ ', ' + str(a.z)) #1.0, 3.0, 5.0
-=
The "subtraction assignment" operator.
See Also: -
1 a = RLPy.RVector3(0, 1, 4)
2 b = RLPy.RVector3(1, 2, 3)
3 a -= b
4
5 print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z)) #-1.0, -1.0, 1.0
*=
The "multiplication assignment" operator. For calculation method, refer to the * operator.
See Also: *
1 a = RLPy.RVector3(1, 2, 3)
2 a *= 2
3 b = RLPy.RVector3(1, 2, 3)
4 c = RLPy.RVector3(2, 3, 4)
5 b *= c
6
7 print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z)) #2.0, 4.0, 6.0
8 print(str(b.x) + ', ' + str(b.y) + ', ' + str(b.z)) #2.0, 6.0, 12.0
/=
The "division assignment" operator. For calculation method, refer to the / operator.
See Also: /
1 a = RLPy.RVector3(1, 2, 3)
2 a /= 2
3 b = RLPy.RVector3(1, 2, 3)
4 c = RLPy.RVector3(2, 4, 2)
5 b /= c
6
7 print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z)) #0.5, 1.0, 1.5
8 print(str(b.x) + ', ' + str(b.y) + ', ' + str(b.z)) #0.5, 0.5, 1.5
Member Functions
AlmostTheSame ( self, vV )
Determine if this and another 3D vector is the equivalent withing a tolerance.
Returns
- True if the 3D vectors are almost the same, else False - bool
1 a = RLPy.RVector3(1, 2, 3)
2 b = RLPy.RVector3(1, 2, 3.000000001)
3 c = RLPy.RVector3(1, 2, 3.00001)
4
5 if a.AlmostTheSame(b): #True
6 print("a ≈ b")
7 if a.AlmostTheSame(c): #False
8 print("a ≈ c")
AlmostZero ( self )
Determine if this 3D vector is a zeroed 3D vector.
Returns
- True if this 3D vector is a zeroed 3D vector, else False - bool
1 a = RLPy.RVector3(0.00000001, 0, 0.00000003)
2 b = RLPy.RVector3(0.00001, 0, 0)
3
4 if a.AlmostZero(): #True
5 print("a is ZERO vector.")
6 if b.AlmostZero(): #False
7 print("a is ZERO vector.")
Cross ( self, vV )
Calculate the cross production of this and another 3D vector.
Parameters
- vV [IN] The vector - RVector3
Returns
- New 3D vector which is the cross product of this and another 3D vector - RVector3
1 a = RLPy.RVector3(1, 0, 0)
2 b = RLPy.RVector3(0, 1, 0)
3 c = a.Cross(b)
4
5 print(str(c.x) + ', ' + str(c.y) + ', ' + str(c.z)) # 0.0, 0.0, 1.0
Distance ( self, vV )
Calculate the distance between this and another 3D vector.
Parameters
- vV [IN] The vector - RVector3
Returns
- The distance between this and another 3D vector - float
1 a = RLPy.RVector3(3, 0, 0)
2 b = RLPy.RVector3(0, 4, 0)
3
4 print(a.Distance(b)) # 5.0
Dot (self, vV)
Calculate the dot production of this and another 3D vector.
Parameters
- vV [IN] The 3D vector with which to compute the dot product - RVector3
Returns
- The value of the dot product - float
1 a = RLPy.RVector3(1, 2, 3)
2 b = RLPy.RVector3(1, 2, 3)
3
4 print(a.Dot(b)) # 14.0
Interpolate ( self, vRatio, vV )
Calculate the interpolate of this and another 3D vector.
Parameters
- vRatio [IN] ratio value - float
- vV [IN] Another 3D vector - RVector3
Returns
- New vector which is the cross product this and another vector - RVector3
1 a = RLPy.RVector3(10, 20, 30)
2 b = RLPy.RVector3(1, 2, 3)
3 c = a.Interpolate(0.1, b)
4
5 print(str(c.x) + ', ' + str(c.y) + ', ' + str(c.z)) # 9.100000381469727, 18.200000762939453, 27.299999237060547
Inverse ( self )
Invert all the elements of this 3D vector.
Returns
- The inverse of this 3D vector - RVector3
1 a = RLPy.RVector3(1, 2, 3)
2 b = a.Inverse()
3 print(str(b.x) + ', ' + str(b.y) + ', ' + str(b.z)) # 1.0, 0.5, 0.3333333432674408
Length ( self )
Length of the vector.
Returns
- Length of this vector - float
1 a = RLPy.RVector3(1, 1, 1)
2
3 print(a.Length()) # 1.7320507764816284
Normalize ( self )
Normalize this 3D vector.
Returns
- The normalized 3D vector - float
1 a = RLPy.RVector3(1, 1, 1)
2
3 print(a.Normalize()) #1.7320507764816284
4 print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z)) # 0.5773502588272095, 0.5773502588272095, 0.5773502588272095
SetX ( self, tX )
Set the value of the x-axis for this 3D vector.
Parameters
- tX [IN] The value of the x-axis - float
1 a = RLPy.RVector3(1, 1, 1)
2 a.SetX(10)
3
4 print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z)) # 10.0, 1.0, 1.0
SetXYZ ( self, tX, tY, tZ )
Set the value of the all axes for this 3D vector.
Parameters
- tX [IN] The value of the x-axis - float
- tY [IN] The value of the y-axis - float
- tZ [IN] The value of the z-axis - float
1 a = RLPy.RVector3(1, 1, 1)
2 a.SetXYZ(10, 20, 30)
3
4 print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z)) # 10.0, 20.0, 30.0
SetY ( self, tY )
Set the value of the y-axis for this 3D vector.
Parameters
- tX [IN] the value of the y-axis.
1 a = RLPy.RVector3(1, 1, 1)
2 a.SetY(10)
3
4 print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z)) # 1.0, 10.0, 1.0
SetZ ( self, tZ )
Set the value of the z-axis for this 3D vector.
Parameters
- tX[IN] The value for the z-axis.
1 a = RLPy.RVector3(1, 1, 1)
2 a.SetZ(10)
3
4 print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z)) # 1.0, 1.0, 10.0
SquaredDistance ( self, vV )
Get the squared distance between this and another 3D vector.
Parameters
- vV [IN] The vector - RVector3
Returns
- The squared distance of this and another 3D vector - float
1 a = RLPy.RVector3(1, 1, 1)
2
3 print(a.SquaredLength()) # 3.0
SquaredLength ( self )
Get the squared length of this 3D vector.
Returns
- The squared length of this vector - float
1 a = RLPy.RVector3(1, 1, 1)
2
3 print(a.SquaredLength()) # 3.0
XY ( self )
Get the x and y elements of this 3D vector.
Returns
- A 2D vector composed of this 3D vector's x and y elements - RVector2
1 a = RLPy.RVector3(1, 2, 3)
2 b = a.XY()
3
4 print(str(b.x) + ', ' + str(b.y)) # 1.0, 2.0