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

From Reallusion Wiki!
Jump to: navigation, search
m (SetY)
m (AddWithWeight)
Line 254: Line 254:
 
==Member Functions==
 
==Member Functions==
 
===AddWithWeight===
 
===AddWithWeight===
 +
 
<syntaxhighlight lang="Python">
 
<syntaxhighlight lang="Python">
RLPy.RVector2.AddWithWeight ( self, vSrc, fWeight )
+
a = RLPy.RVector2(0, 1)
 +
b = RLPy.RVector2(1, 2)
 +
a.AddWithWeight(b, 2)
 +
print(str(a.x) + ', ' + str(a.y))      #2.0, 5.0
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 
Add a vector with weight.
 
Add a vector with weight.
 +
 
====Parameters====
 
====Parameters====
<div style="margin-left: 2em;">
 
  
 +
<div style="margin-left: 2em;">
 
'''vSrc''' [IN] The vector to add - RLPy.RVector2
 
'''vSrc''' [IN] The vector to add - RLPy.RVector2
 
 
'''fWeight''' [IN] The value of weight - float
 
'''fWeight''' [IN] The value of weight - float
 
</div>
 
</div>
 
-----
 
-----
 +
 
===Dot===
 
===Dot===
 
<syntaxhighlight lang="Python">
 
<syntaxhighlight lang="Python">

Revision as of 21:41, 20 February 2020

Main article: Modules.

Description

2D Vector math class for float values. This class provides access to RLPy's internal vector math library allowing vectors to be handled effortlessly, and in a manner compatible with internal RLPy data structures. It also supports operators and vector related functions.

RVector2 also provides some constants for your convenience:

Constant Description
RVector2.ZERO 2D zero vector: (0, 0)
RVector2.UNIT_X 2D x unit vector: (1, 0)
RVector2.UNIT_Y 2D y unit vector: (0, 1)
RVector2.UNIT_XY 2D unit vector: (1, 1)

Constructors & Destructors

__init__

Initialize a new RVector2 object as a 2D zero vector: (0, 0).

a = RLPy.RVector2()

__init__( self, x, y )

Initialize a new RVector2 object as a 2D vector: (x, y).

a = RLPy.RVector2(1, 2)

Parameters

x [IN] a numerical value for x coordinate - float or int
y [IN] a numerical value for y coordinate - float or int


__init__( self, args )

Initialize a new RVector2 object with another RVector2 object: args. This new RVector2 object has the same value as args.

a = RLPy.RVector2(1, 2)
b = RLPy.RVector2(a)

Operators

==

The “equal to” operator.

a = RLPy.RVector2(1, 2)
b = a
print(a == b)                         #True

!=

The “not equal to” operator.

a = RLPy.RVector2()
b = RLPy.RVector2(1, 2)
print(a != b)                         #True

<

The “less than” operator. Similar to string comparison: If first element (x) less than, return True, if greater than, return False, if equal then compare the second element (y). When (y) is greater than or equal return False else return True.

a = RLPy.RVector2(0, 0)
b = RLPy.RVector2(0, 1)
c = RLPy.RVector2(1, 0)
d = RLPy.RVector2(0, 0)

print(a < b)                       #True
print(b < c)                       #True
print(a < d)                       #False

>

The “greater than” operator. Similar to string comparison: If element (x) is greater than, return True, if less than, return False, if equal then compare the second element (y). If (y) is greater than or equal, return False, else return True.

a = RLPy.RVector2(0, 0)
b = RLPy.RVector2(0, 1)
c = RLPy.RVector2(1, 0)
d = RLPy.RVector2(0, 0)

print(b > a)                       #True
print(c > b)                       #True
print(d > a)                       #False

<=

The “less than or equal to” operator. Similar to string comparison: If element (x) is less than, return True, if greater than, return False, if equal then compare the second element (y). If (y) is greater than, return False, else return True.

a = RLPy.RVector2(0, 0)
b = RLPy.RVector2(0, 1)
c = RLPy.RVector2(1, 0)
d = RLPy.RVector2(0, 0)

print(a <= b)                      #True
print(b <= c)                      #True
print(a <= d)                      #True

>=

The "greater than or equal to" operator. Similar to string comparison: If element (x) is greater than, return True, if less than, return False, if equal then compare the second element (y). If (y) is less than, return False, else return True.

a = RLPy.RVector2(0, 0)
b = RLPy.RVector2(0, 1)
c = RLPy.RVector2(1, 0)
d = RLPy.RVector2(0, 0)

print(b >= a)                       #True
print(c >= b)                       #True
print(d >= a)                       #True

+

The “addition” operator. Perform 2D vector addition.

a = RLPy.RVector2(0, 1)
b = RLPy.RVector2(1, 2)
c = a + b
print(str(c.x) + ', ' + str(c.y))       #1.0, 3.0

-

The “subtraction” operator. Perform 2D vector subtraction.

a = RLPy.RVector2(0, 1)
b = RLPy.RVector2(1, 3)
c = b - a 
print(str(c.x) + ', ' + str(c.y))       #1.0, 2.0

*

The “multiplication” operator. Perform a scalar multiplication when the second element is an integer or float. If the second operand is another vector2, then the respective x, y elements are multiplied.

a = RLPy.RVector2(1, 2)
b = a * 2
c = RLPy.RVector2(2, 3)
d = a * c
print(str(b.x) + ', ' + str(b.y))      #2.0, 4.0
print(str(d.x) + ', ' + str(d.y))      #2.0, 6.0

/

The "division" operator. Perform a scalar division when the second operand is an integer or float. If the second operand is another vector2, then the respective x,y elements are divided.

a = RLPy.RVector2(1, 2)
b = a / 2
c = RLPy.RVector2(2, 3)
d = a / c
print(str(b.x) + ', ' + str(b.y))   #0.5, 1.0
print(str(d.x) + ', ' + str(d.y))   #0.5, 0.6666666865348816

-

The “unary minus” operator. Inverse the sign of each element.

a = RLPy.RVector2(1, 2)
b = -a
print(str(b.x) + ', ' + str(b.y))      #-1.0, -2.0

+=

The “addition assignment” operator.

a = RLPy.RVector2(0, 1)
b = RLPy.RVector2(1, 2)
a += b
print(str(a.x) + ', ' + str(a.y))      #1.0, 3.0

-=

The “subtraction assignment” operator.

a = RLPy.RVector2(0, 1)
b = RLPy.RVector2(1, 2)
a -= b
print(str(a.x) + ', ' + str(a.y))      #-1.0, -1.0

*=

The “multiplication assignment” operator. Please refer to * operator for calculation method.

a = RLPy.RVector2(1, 2)
a *= 2
b = RLPy.RVector2(1, 2)
c = RLPy.RVector2(2, 3)
b *= c
print(str(a.x) + ', ' + str(a.y))     #2.0, 4.0
print(str(b.x) + ', ' + str(b.y))     #2.0, 6.0

/=

The “division assignment” operator. Please refer to / operator for calculation method.

a = RLPy.RVector2(1, 2)
a /= 2
b = RLPy.RVector2(1, 2)
c = RLPy.RVector2(2, 3)
b /= c
print(str(a.x) + ', ' + str(a.y))     #0.5, 1.0
print(str(b.x) + ', ' + str(b.y))     #0.5, 0.6666666865348816

Member Functions

AddWithWeight

a = RLPy.RVector2(0, 1)
b = RLPy.RVector2(1, 2)
a.AddWithWeight(b, 2)
print(str(a.x) + ', ' + str(a.y))      #2.0, 5.0

Add a vector with weight.

Parameters

vSrc [IN] The vector to add - RLPy.RVector2 fWeight [IN] The value of weight - float


Dot

RLPy.RVector2.Dot ( self, vV )

Calculate dot production of the two vectors.

Parameters

vV [IN] The vector - RLPy.RVector2

Returns

The value of the dot production - float

Inverse

RLPy.RVector2.Inverse ( self )

Inverse this vector.

Returns

The inversed vector - RLPy.RVector2

Length

RLPy.RVector2.Length ( self )

Length of the vector.

Returns

The length of this vector - float

Normalize

RLPy.RVector2.Normalize ( self )

Normalizes this vector.

Returns

The normalized vector - float

SetX

RLPy.RVector2.SetX ( self, tX )

Set the value of the x-axis.

Parameters

tX [IN] the value of the x-axis - float


SetY

a = RLPy.RVector2(1, 1)
a.SetY(10)
print(str(a.x) + ', ' + str(a.y))   #1.0, 10.0

Set the value of the y-axis.

Parameters

tX [IN] the value of the y-axis.


SquaredLength

a = RLPy.RVector2(1, 1)
print(a.SquaredLength())          #2.0

Squared length of the vector.

Returns

The squared length of this vector - float


X

RLPy.RVector2.X ( self, args )

Get the value of the x-axis.

Returns

The value of the x-axis - float

Y

RLPy.RVector2.Y ( self, args )

Get the value of the y-axis.

Returns

The value of the y-axis - float