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

From Reallusion Wiki!
Jump to: navigation, search
m
m
 
Line 36: Line 36:
 
Initialize a new 4D vector object that is zeroed out: (0, 0, 0, 0).
 
Initialize a new 4D vector object that is zeroed out: (0, 0, 0, 0).
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4()
 
a = RLPy.RVector4()
 
</syntaxhighlight>
 
</syntaxhighlight>
Line 50: Line 50:
 
:'''d''' [IN] A numerical value for w coordinate - float or int
 
:'''d''' [IN] A numerical value for w coordinate - float or int
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(1, 2, 3, 4)
 
a = RLPy.RVector4(1, 2, 3, 4)
 
</syntaxhighlight>
 
</syntaxhighlight>
Line 61: Line 61:
 
:'''args''' [IN] a 4D vector object - [[IC_Python_API:RLPy_RVector4|RVector4]]
 
:'''args''' [IN] a 4D vector object - [[IC_Python_API:RLPy_RVector4|RVector4]]
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(1, 2, 3, 4)
 
a = RLPy.RVector4(1, 2, 3, 4)
 
b = RLPy.RVector4(a)
 
b = RLPy.RVector4(a)
Line 72: Line 72:
 
The "equal to" operator.
 
The "equal to" operator.
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(1, 2, 3, 4)
 
a = RLPy.RVector4(1, 2, 3, 4)
 
b = a
 
b = a
Line 83: Line 83:
 
The "not equal to" operator.
 
The "not equal to" operator.
  
<syntaxhighlight lang="python">
+
See Also: [[#==|==]]
 +
 
 +
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4()
 
a = RLPy.RVector4()
 
b = RLPy.RVector4(1, 2, 3, 4)
 
b = RLPy.RVector4(1, 2, 3, 4)
Line 96: Line 98:
 
See Also: [[#<=|<=]]
 
See Also: [[#<=|<=]]
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(0, 1, 5, 2)
 
a = RLPy.RVector4(0, 1, 5, 2)
 
b = RLPy.RVector4(0, 1, 5, 3)
 
b = RLPy.RVector4(0, 1, 5, 3)
Line 115: Line 117:
 
See Also: [[#>=|>=]]
 
See Also: [[#>=|>=]]
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(0, 1, 5, 2)
 
a = RLPy.RVector4(0, 1, 5, 2)
 
b = RLPy.RVector4(0, 1, 5, 3)
 
b = RLPy.RVector4(0, 1, 5, 3)
Line 135: Line 137:
 
See Also: [[#<|<]]
 
See Also: [[#<|<]]
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(0, 1, 5, 2)
 
a = RLPy.RVector4(0, 1, 5, 2)
 
b = RLPy.RVector4(0, 1, 5, 3)
 
b = RLPy.RVector4(0, 1, 5, 3)
Line 155: Line 157:
 
See Also: [[#>|>]]
 
See Also: [[#>|>]]
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(0, 1, 5, 2)
 
a = RLPy.RVector4(0, 1, 5, 2)
 
b = RLPy.RVector4(0, 1, 5, 3)
 
b = RLPy.RVector4(0, 1, 5, 3)
Line 175: Line 177:
 
See Also: [[#+=|+=]]
 
See Also: [[#+=|+=]]
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(0, 1, 2, 3)
 
a = RLPy.RVector4(0, 1, 2, 3)
 
b = RLPy.RVector4(1, 2, 3, 4)
 
b = RLPy.RVector4(1, 2, 3, 4)
Line 189: Line 191:
 
See Also: [[#-=|-=]]
 
See Also: [[#-=|-=]]
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(0, 1, 2, 3)
 
a = RLPy.RVector4(0, 1, 2, 3)
 
b = RLPy.RVector4(3, 2, 1, 0)
 
b = RLPy.RVector4(3, 2, 1, 0)
Line 203: Line 205:
 
See Also: [[#*=|*=]]
 
See Also: [[#*=|*=]]
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(1, 2, 3, 4)
 
a = RLPy.RVector4(1, 2, 3, 4)
 
b = a * 2
 
b = a * 2
Line 218: Line 220:
 
See Also: [[#/=|/=]]
 
See Also: [[#/=|/=]]
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(1, 2, 3, 4)
 
a = RLPy.RVector4(1, 2, 3, 4)
 
b = a / 2
 
b = a / 2
Line 234: Line 236:
 
See Also: [[#-=|-=]]
 
See Also: [[#-=|-=]]
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(1, 2, 3, 4)
 
a = RLPy.RVector4(1, 2, 3, 4)
 
b = -a
 
b = -a
Line 247: Line 249:
 
See Also: [[#+|+]]
 
See Also: [[#+|+]]
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(0, 1, 2, 3)
 
a = RLPy.RVector4(0, 1, 2, 3)
 
b = RLPy.RVector4(1, 2, 3, 4)
 
b = RLPy.RVector4(1, 2, 3, 4)
Line 261: Line 263:
 
See Also: [[#-|-]]
 
See Also: [[#-|-]]
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(0, 1, 4, 5)
 
a = RLPy.RVector4(0, 1, 4, 5)
 
b = RLPy.RVector4(1, 2, 3, 1)
 
b = RLPy.RVector4(1, 2, 3, 1)
Line 275: Line 277:
 
See Also: [[#*|*]]
 
See Also: [[#*|*]]
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(1, 2, 3, 4)
 
a = RLPy.RVector4(1, 2, 3, 4)
 
a *= 2
 
a *= 2
Line 292: Line 294:
 
See Also: [[#/|/]]
 
See Also: [[#/|/]]
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(1, 2, 3, 4)
 
a = RLPy.RVector4(1, 2, 3, 4)
 
a /= 2
 
a /= 2
Line 309: Line 311:
 
Calculate dot product with the given vector.
 
Calculate dot product with the given vector.
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(1, 2, 3, 4)
 
a = RLPy.RVector4(1, 2, 3, 4)
 
b = RLPy.RVector4(1, 2, 3, 4)
 
b = RLPy.RVector4(1, 2, 3, 4)
Line 326: Line 328:
 
Invert every element of this 4D vector.
 
Invert every element of this 4D vector.
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(0.5, 2, 4, 1)
 
a = RLPy.RVector4(0.5, 2, 4, 1)
 
b = a.Inverse()
 
b = a.Inverse()
Line 343: Line 345:
 
4D vector magnitude - float
 
4D vector magnitude - float
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(1, 1, 1, 1)
 
a = RLPy.RVector4(1, 1, 1, 1)
  
Line 360: Line 362:
 
Set the value of the w-axis.
 
Set the value of the w-axis.
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(1, 1, 1, 1)
 
a = RLPy.RVector4(1, 1, 1, 1)
  
Line 370: Line 372:
 
'''tW''' [IN] the value of the w-axis - float
 
'''tW''' [IN] the value of the w-axis - float
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(1, 1, 1, 1)
 
a = RLPy.RVector4(1, 1, 1, 1)
 
a.SetW(10)
 
a.SetW(10)
Line 384: Line 386:
 
:'''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.RVector4(1, 1, 1, 1)
 
a = RLPy.RVector4(1, 1, 1, 1)
 
a.SetX(10)
 
a.SetX(10)
Line 398: Line 400:
 
:'''tY''' [IN] the value of the y-axis - float
 
:'''tY''' [IN] the value of the y-axis - float
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(1, 1, 1, 1)
 
a = RLPy.RVector4(1, 1, 1, 1)
 
a.SetY(10)
 
a.SetY(10)
Line 412: Line 414:
 
:'''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.RVector4(1, 1, 1, 1)
 
a = RLPy.RVector4(1, 1, 1, 1)
 
a.SetZ(10)
 
a.SetZ(10)
Line 426: Line 428:
 
:Returns the squared length of this 4D vector - float
 
:Returns the squared length of this 4D vector - float
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(1, 1, 1, 1)
 
a = RLPy.RVector4(1, 1, 1, 1)
  
Line 439: Line 441:
 
:Returns a 2D vector - [[IC_Python_API:RLPy_RVector2|RVector2]]
 
:Returns a 2D vector - [[IC_Python_API:RLPy_RVector2|RVector2]]
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(1, 2, 3, 4)
 
a = RLPy.RVector4(1, 2, 3, 4)
 
b = a.XY()
 
b = a.XY()
Line 453: Line 455:
 
:Returns a 3D vector - [[IC_Python_API:RLPy_RVector3|RVector3]]
 
:Returns a 3D vector - [[IC_Python_API:RLPy_RVector3|RVector3]]
  
<syntaxhighlight lang="python">
+
<syntaxhighlight lang="python" line='line'>
 
a = RLPy.RVector4(1, 2, 3, 4)
 
a = RLPy.RVector4(1, 2, 3, 4)
 
b = a.XYZ()
 
b = a.XYZ()

Latest revision as of 19:47, 13 April 2020

Main article: Modules.
Last modified: 04/13/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).

1 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
1 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
1 a = RLPy.RVector4(1, 2, 3, 4)
2 b = RLPy.RVector4(a)

Operators

=

The "equal to" operator.

1 a = RLPy.RVector4(1, 2, 3, 4)
2 b = a
3 
4 print(a == b) #True

!=

The "not equal to" operator.

See Also: ==

1 a = RLPy.RVector4()
2 b = RLPy.RVector4(1, 2, 3, 4)
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.RVector4(0, 1, 5, 2)
 2 b = RLPy.RVector4(0, 1, 5, 3)
 3 c = RLPy.RVector4(1, 0, 1, 0)
 4 d = RLPy.RVector4(0, 1, 5, 2)
 5 
 6 print(a < b)        # True
 7 print(b < c)        # True
 8     print('b < c')
 9 if a < d:           # False
10     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: >=

 1 a = RLPy.RVector4(0, 1, 5, 2)
 2 b = RLPy.RVector4(0, 1, 5, 3)
 3 c = RLPy.RVector4(1, 0, 1, 0)
 4 d = RLPy.RVector4(0, 1, 5, 2)
 5 
 6 if b >a:        # True
 7 print('b >a')
 8 if c >b:        # True
 9 print('c >b')
10 if a >d:        # True
11 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: <

 1 a = RLPy.RVector4(0, 1, 5, 2)
 2 b = RLPy.RVector4(0, 1, 5, 3)
 3 c = RLPy.RVector4(1, 0, 1, 0)
 4 d = RLPy.RVector4(0, 1, 5, 2)
 5 
 6 if a<= b:       # True
 7 print('a<= b')
 8 if b<= c:       # True
 9 print('b<= c')
10 if a<= d:       # True
11 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: >

 1 a = RLPy.RVector4(0, 1, 5, 2)
 2 b = RLPy.RVector4(0, 1, 5, 3)
 3 c = RLPy.RVector4(1, 0, 1, 0)
 4 d = RLPy.RVector4(0, 1, 5, 2)
 5 
 6 if b >= a:      # True
 7 print('b >= a')
 8 if c >= b:      # True
 9 print('c >= b')
10 if a >= d:      # False
11 print('a >= d')

+

The "addition" operator. Perform a 4D vector addition.

See Also: +=

1 a = RLPy.RVector4(0, 1, 2, 3)
2 b = RLPy.RVector4(1, 2, 3, 4)
3 c = a + b
4 
5 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: -=

1 a = RLPy.RVector4(0, 1, 2, 3)
2 b = RLPy.RVector4(3, 2, 1, 0)
3 c = b - a
4 
5 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: *=

1 a = RLPy.RVector4(1, 2, 3, 4)
2 b = a * 2
3 c = a * a
4 
5 print(str(b.x) + ', ' + str(b.y) + ', ' + str(b.z) + ', ' + str(b.w)) # 2.0, 4.0, 6.0, 8.0
6 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: /=

1 a = RLPy.RVector4(1, 2, 3, 4)
2 b = a / 2
3 c = RLPy.RVector4(2, 2, 10, 2)
4 d = a / c
5 
6 print(str(b.x) + ', ' + str(b.y) + ', ' + str(b.z) + ', ' + str(b.w)) # 0.5, 1.0, 1.5, 2.0
7 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: -=

1 a = RLPy.RVector4(1, 2, 3, 4)
2 b = -a
3 
4 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: +

1 a = RLPy.RVector4(0, 1, 2, 3)
2 b = RLPy.RVector4(1, 2, 3, 4)
3 a += b
4 
5 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: -

1 a = RLPy.RVector4(0, 1, 4, 5)
2 b = RLPy.RVector4(1, 2, 3, 1)
3 a -= b
4 
5 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: *

1 a = RLPy.RVector4(1, 2, 3, 4)
2 a *= 2
3 b = RLPy.RVector4(1, 2, 3, 4)
4 c = RLPy.RVector4(2, 3, 4, 5)
5 b *= c
6 
7 print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z) + ', ' + str(a.w)) # 2.0, 4.0, 6.0, 8.0
8 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: /

1 a = RLPy.RVector4(1, 2, 3, 4)
2 a /= 2
3 b = RLPy.RVector4(1, 2, 3, 4)
4 c = RLPy.RVector4(2, 4, 2, 2)
5 b /= c
6 
7 print(str(a.x) + ', ' + str(a.y) + ', ' + str(a.z) + ', ' + str(a.w)) # 0.5, 1.0, 1.5, 2.0
8 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.

1 a = RLPy.RVector4(1, 2, 3, 4)
2 b = RLPy.RVector4(1, 2, 3, 4)
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.

1 a = RLPy.RVector4(0.5, 2, 4, 1)
2 b = a.Inverse()
3 
4 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

1 a = RLPy.RVector4(1, 1, 1, 1)
2 
3 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.

1 a = RLPy.RVector4(1, 1, 1, 1)
2 
3 print(a.Normalize())    # 2.0
4 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

1 a = RLPy.RVector4(1, 1, 1, 1)
2 a.SetW(10)
3 
4 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
1 a = RLPy.RVector4(1, 1, 1, 1)
2 a.SetX(10)
3 
4 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
1 a = RLPy.RVector4(1, 1, 1, 1)
2 a.SetY(10)
3 
4 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
1 a = RLPy.RVector4(1, 1, 1, 1)
2 a.SetZ(10)
3 
4 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
1 a = RLPy.RVector4(1, 1, 1, 1)
2 
3 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
1 a = RLPy.RVector4(1, 2, 3, 4)
2 b = a.XY()
3 
4 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
1 a = RLPy.RVector4(1, 2, 3, 4)
2 b = a.XYZ()
3 
4 print(str(b.x) + ', ' + str(b.y) + ', ' + str(b.z)) # 1.0, 2.0, 3.0