CPoint Class Operators
The CPoint class supports several math operations between points and other objects or numbers. Operators make it possible for a script to contain expressions like the following:
|
-- creates a new point P2 half as large as P. |
|
-- subtracts P2 from P1 and multiples the result by 2.5. |
A primary difference between the operators and methods is that many of the operators create the result as a new CPoint object, whereas methods operate on the object that calls them. Operators are provided for the arithmetic operations +-*/% and for comparisons.
P1 + P2 |
Adds two points. For example, P3 = P1 + P2 is equivalent to P3 = NewPoint( P1 ) P3:Offset( P2 ) |
P + t |
Adds 2 Lua array elements to a point. For example, P2 = P + t is equivalent to P2 = NewPoint() P2.x = P.x + t[0] P2.y = P.y + t[1] |
P + R |
Adds a CRect to a point. This offsets the point by R:Width() and R:Height(). For example, P2 = P + R is equivalent to P2 = NewPoint() P2.x = P.x + R:Width() P2.y = P.y + R:Height() |
P + num |
Adds a number to a point. For example, P2 = P + 0.5 is equivalent to P2 = NewPoint() P2.x = P.x + 0.5 P2.y = P.y + 0.5 |
P1 - P2 |
Subtracts two points. For example, P3 = P1 - P2 is equivalent to P3 = NewPoint() P3.x = P1.x - P2.x P3.y = P1.y - P2.y |
P - t |
Subtracts 2 Lua array elements to a point. For example, P2 = P - t is equivalent to P2 = NewPoint() P2.x = P.x - t[0] P2.y = P.y - t[1] |
P - R |
Subtracts a CRect size from the point. This offsets the point by -R:Width() and -R:Height(). For example, P2 = P - R is equivalent to P2 = NewPoint() P2.x = P.x - R:Width() P2.y = P.y - R:Height() |
P - num |
Subtracts a number from a point. For example, P2 = P - 0.5 is equivalent to P2 = NewPoint() P2.x = P.x - 0.5 P2.y = P.y - 0.5 |
P1 * P2 |
Multiples two points. For example, P3 = P1 * P2 is equivalent to P3 = NewPoint() P3.x = P1.x * P2.x P3.y = P1.y * P2.y |
P * t |
Multiples the point values by 2 Lua array elements. For example, P2 = P * t is equivalent to P2 = NewPoint() P2.x = P.x * t[0] P2.y = P.y * t[1] |
P * R |
Multiples the point values by a CRect size. For example, P2 = P * R is equivalent to P2 = NewPoint() P2.x = P.x * R:Width() P2.y = P.y * R:Height() |
P * num |
Multiples the point values by a number. For example, P2 = P * 0.5 is equivalent to P2 = NewPoint() P2.x = P.x * 0.5 P2.y = P.y * 0.5 |
P1 / P2 |
Divides two points. For example, P3 = P1 / P2 is equivalent to P3 = NewPoint() P3.x = P1.x / P2.x P3.y = P1.y / P2.y |
P / t |
Divides the point values by 2 Lua array elements. For example, P2 = P / t is equivalent to P2 = NewPoint() P2.x = P.x / t[0] P2.y = P.y / t[1] |
P / R |
Divides the point values by a CRect size. For example, P2 = P / R is equivalent to P2 = NewPoint() P2.x = P.x / R:Width() P2.y = P.y / R:Height() |
P / num |
Divides the point values by a number. For example, P2 = P / 0.5 is equivalent to P2 = NewPoint() P2.x = P.x / 0.5 P2.y = P.y / 0.5 |
P1 % P2 |
Calculates the remainder of dividing a point by another point. For example, P3 = P1 % P2 is equivalent to P3 = NewPoint() P3.x = P1.x % P2.x P3.y = P1.y % P2.y |
P % t |
Calculates the remainder of dividing a point by 2 Lua array elements. For example, P2 = P % t is equivalent to P2 = NewPoint() P2.x = P.x % t[0] P2.y = P.y % t[1] |
P % R |
Calculates the remainder of dividing a point by a CRect size. For example, P2 = P % R is equivalent to P2 = NewPoint() P2.x = P.x % R:Width() P2.y = P.y % R:Height() |
P % num |
Calculates the remainder of dividing a point by a number. For example, P2 = P % 0.5 is equivalent to P2 = NewPoint() P2.x = P.x % 0.5 P2.y = P.y % 0.5 |
–P |
Computes the unary minus (or negative) of the point values. For example, P2 = -P is equivalent to P2 = NewPoint() P2.x = -P.x P2.y = -P.y and -P is equivalent to P.x = -P.x P.y = -P.y |
== |
For two points, P1 and P2, this operator returns true if each property of P1 is equal to the corresponding property of P2. For example, if P2 == P1 then Func() end is equivalent to if P2.x == P1.x and P2.y == P1.y then Func() end |
<= |
For two points, P1 and P2, this operator returns true if each property of P1 is less than or equal to the corresponding property of P2. For example, if P2 <= P1 then Func() end is equivalent to if P2.x <= P1.x and P2.y <= P1.y then Func() end |
< |
For two points, P1 and P2, this operator returns true if each property of P1 is less than the corresponding property of P2. For example, if P2 < P1 then Func() end is equivalent to if P2.x < P1.x and P2.y < P1.y then Func() end |