Difference between revisions of "IC Python API:RLPy RVector3"

From Reallusion Wiki!
Jump to: navigation, search
m (Interpolate)
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 vector3 math library allowing vector3s to be handled easily, in a manner compatible with internal RLPy data structures. It also supports operators and provides some constants for your convenience:  
+
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="Python">
+
<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="Python">
+
==== 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>
 
==== 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
 
  
 
=== __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="Python">
+
==== 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>
 
==== Parameters ====
 
:'''args''' [IN] a RVector3 object - RLPy.RVector3
 
  
 
== Operators ==
 
== Operators ==
Line 73: Line 73:
 
The "equal to" operator.
 
The "equal to" operator.
  
<syntaxhighlight lang="Python">
+
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="Python">
+
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="Python">
+
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="Python">
+
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="Python">
+
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="Python">
+
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="Python">
+
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="Python">
+
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="Python">
+
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="Python">
+
<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="Python">
+
<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="Python">
+
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="Python">
+
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. Please refer to '''*''' operator for calculation method.
+
The "multiplication assignment" operator. For calculation method, refer to the '''*''' operator.
 +
 
 +
See Also: [[#*|*]]
  
<syntaxhighlight lang="Python">
+
<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. Please refer to '''/''' operator for calculation method.
+
The "division assignment" operator. For calculation method, refer to the '''/''' operator.
  
<syntaxhighlight lang="Python">
+
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 two vectors are the same with tolerance.
+
Determine if this and another 3D vector is the equivalent withing a tolerance.
  
 
==== Returns ====
 
==== Returns ====
:True if the vector is almost the same - bool
+
:'''True''' if the 3D vectors are almost the same, else '''False''' - bool
  
<syntaxhighlight lang="Python">
+
<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 the vector is zero vector.
+
Determine if this 3D vector is a zeroed 3D vector.
  
 
==== Returns ====
 
==== Returns ====
:True if the vector is zero vector - bool
+
:'''True''' if this 3D vector is a zeroed 3D vector, else '''False''' - bool
  
<syntaxhighlight lang="Python">
+
<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 ) ===
  
<syntaxhighlight lang="Python">
+
Calculate the cross production of this and another 3D vector.
RLPy.RVector3.Cross ( self, vV )
+
</syntaxhighlight>
+
 
+
Calculate cross production of the two vectors.
+
  
 
==== Parameters ====
 
==== Parameters ====
:'''vV''' [IN] The vector - RLPy.RVector3
+
:'''vV''' [IN] The vector - [[IC_Python_API:RLPy_RVector3|RVector3]]
  
 
==== Returns ====
 
==== Returns ====
:New vector which is the cross product of the two vectors - RLPy.RVector3
+
:New 3D vector which is the cross product of this and another 3D vector - [[IC_Python_API:RLPy_RVector3|RVector3]]
  
<syntaxhighlight lang="Python">
+
<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 ) ===
  
Distance of the two vectors.
+
Calculate the distance between this and another 3D vector.
  
 
==== Parameters ====
 
==== Parameters ====
:'''vV''' [IN] The vector - RLPy.RVector3
+
:'''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="Python">
+
<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 the two vectors.
+
Calculate the dot production of this and another 3D vector.
  
 
==== Parameters ====
 
==== Parameters ====
:'''vV''' [IN] The 3D vector with which to compute the dot product - RLPy.RVector3
+
:'''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="Python">
+
<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 ) ===
  
Interpolate of the two vectors.
+
Calculate the interpolate of this and another 3D vector.
  
 
==== Parameters ====
 
==== Parameters ====
 
:'''vRatio''' [IN] ratio value - float
 
:'''vRatio''' [IN] ratio value - float
:'''vV''' [IN] The vector - RLPy.RVector3
+
:'''vV''' [IN] Another 3D vector - [[IC_Python_API:RLPy_RVector3|RVector3]]
  
 
==== Returns ====
 
==== Returns ====
:New vector which is the cross product of the two vectors - RLPy.RVector3
+
:New vector which is the cross product this and another vector - [[IC_Python_API:RLPy_RVector3|RVector3]]
  
<syntaxhighlight lang="Python">
+
<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 inversed vector - RLPy.RVector3
+
: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="Python">
+
<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 ) ===
  
Normalizes this vector.
+
Normalize this 3D vector.
  
 
==== Returns ====
 
==== Returns ====
:The normalized vector - float
+
:The normalized 3D vector - float
  
<syntaxhighlight lang="Python">
+
<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] the value of the x-axis - float
+
:'''tX''' [IN] The value of the x-axis - float
  
<syntaxhighlight lang="Python">
+
<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] the value of the x-axis - float
+
:'''tX''' [IN] The value of the x-axis - float
:'''tY''' [IN] the value of the y-axis - float
+
:'''tY''' [IN] The value of the y-axis - float
:'''tZ''' [IN] the value of the z-axis - float
+
:'''tZ''' [IN] The value of the z-axis - float
  
<syntaxhighlight lang="Python">
+
<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="Python">
+
<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] the value of the z-axis.
+
:tX[IN] The value for the z-axis.
  
<syntaxhighlight lang="Python">
+
<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 ) ===
  
Squared distance of the two vectors.
+
Get the squared distance between this and another 3D vector.
  
 
==== Parameters ====
 
==== Parameters ====
:'''vV''' [IN] The vector - RLPy.RVector3
+
:'''vV''' [IN] The vector - [[IC_Python_API:RLPy_RVector3|RVector3]]
  
 
==== Returns ====
 
==== Returns ====
:The Squared distance - float
+
:The squared distance of this and another 3D vector - float
  
<syntaxhighlight lang="Python">
+
<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 ) ===
  
Squared length of the vector.
+
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="Python">
+
<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 the 2D vector.
+
Get the x and y elements of this 3D vector.
  
 
==== Returns ====
 
==== Returns ====
:Return the 2D vector - RLPy.RVector2
+
:A 2D vector composed of this 3D vector's x and y elements - [[IC_Python_API:RLPy_RVector2|RVector2]]
  
<syntaxhighlight lang="Python">
+
<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 19:55, 13 April 2020

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