Libraries.Compute.Vector3 Documentation
Vector3 is a class representing a vector in 3D space.
Example Code
use Libraries.Compute.Vector3
Vector3 vector1
Vector3 vector2
vector1:Set(2, 6, 9)
vector2:Set(1, 7, 2)
vector1:CrossProduct(vector2)
number newX = vector1:GetX()
number newY = vector1:GetY()
output "The cross product of the two vectors is: [" + newX + ", " + newY + "]"
Inherits from: Libraries.Language.Object
Actions Documentation
Add(number xValue, number yValue, number zValue)
This action adds the vector with the passed x, y, and z components to the calling vector. This changes the calling vector to the result of the addition.
Parameters
- number xValue: The x component of the vector to add
- number yValue: The y component of the vector to add
- number zValue: The z component of the vector to add
Return
Libraries.Compute.Vector3: The calling vector after addition
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(4.3, 8.1, 6.6)
vector:Add(3.3, 9.2, -4.3)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Add(number value)
This action adds the passed value to the x, y, and z components of the vector. This changes the vector to the result of the addition.
Parameters
- number value: The value to add to the x, y, and z components
Return
Libraries.Compute.Vector3: The vector after addition
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(3.5, 5.0, 3.1)
vector:Add(4.0)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Add(Libraries.Compute.Vector3 vector)
This action adds the passed vector to the calling vector. This action changes the calling vector to the result of the addition.
Parameters
- Libraries.Compute.Vector3: The vector to add
Return
Libraries.Compute.Vector3: The calling vector after addition
Example
use Libraries.Compute.Vector3
Vector3 firstVector
Vector3 secondVector
firstVector:Set(3.2, 5.5, 9.0)
secondVector:Set(8.3, 4.2, -7.3)
firstVector:Add(secondVector)
number newX = firstVector:GetX()
number newY = firstVector:GetY()
number newZ = firstVector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Clamp(number min, number max)
This action clamps the length of the vector to be between the passed minimum and maximum values. This changes the vector if the length of the vector is greater than the maximum or less than the minimum.
Parameters
- number min: The minimum length
- number max: The maximum length
Return
Libraries.Compute.Vector3: The vector with a new length if the old length was below the minimum or above the maximum
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(2.0, 1.0, 2.0)
vector:Clamp(0.5, 1.5)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Compare(Libraries.Language.Object object)
This action compares two object hash codes and returns an integer. The result is larger if this hash code is larger than the object passed as a parameter, smaller, or equal. In this case, -1 means smaller, 0 means equal, and 1 means larger. This action was changed in Quorum 7 to return an integer, instead of a CompareResult object, because the previous implementation was causing efficiency issues.
Parameters
- Libraries.Language.Object: The object to compare to.
Return
integer: The Compare result, Smaller, Equal, or Larger.
Example
Object o
Object t
integer result = o:Compare(t) //1 (larger), 0 (equal), or -1 (smaller)
Copy()
This action returns a copy of the current vector. The new vector's x, y, and z components are the same as the calling vector's x, y, and z components.
Return
Libraries.Compute.Vector3: a new vector that is a copy of the calling vector
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(4.8, 3.2, -4.2)
Vector3 copyVector
copyVector = vector:Copy()
number newX = copyVector:GetX()
number newY = copyVector:GetY()
number newZ = copyVector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
CrossProduct(Libraries.Compute.Vector3 vector)
This action computes the cross product between this vector and the passed vector. This changes the calling vector to the result of the cross product.
Parameters
- Libraries.Compute.Vector3: The other vector
Return
Libraries.Compute.Vector3: The calling vector after taking the cross product
Example
use Libraries.Compute.Vector3
Vector3 firstVector
Vector3 secondVector
firstVector:Set(1.0, 0.0, 0.0)
secondVector:Set(0.0, 1.0, 0.0)
firstVector:CrossProduct(secondVector)
number newX = firstVector:GetX()
number newY = firstVector:GetY()
number newZ = firstVector:GetZ()
output "The cross product is: [" + newX + ", " + newY + ", " + newZ + "]"
CrossProduct(number xValue, number yValue, number zValue)
This action computes the cross product between the calling vector and the vector with the passed x, y, and z components. This changes the calling vector to the result of the cross product.
Parameters
- number xValue: The x component of the other vector
- number yValue: The y component of the other vector
- number zValue: The z component of the other vector
Return
Libraries.Compute.Vector3: The calling vector after taking the cross product
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(1.0, 0.0, 0.0)
vector:CrossProduct(0.0, 1.0, 0.0)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The cross product is: [" + newX + ", " + newY + ", " + newZ + "]"
Distance(number x1, number y1, number z1, number x2, number y2, number z2)
This action computes the distance between the vectors represented by the passed x, y, and z components.
Parameters
- number x1: The x component of the first vector
- number y1: The y component of the first vector
- number z1: The z component of the first vector
- number x2: The x component of the second vector
- number y2: The y component of the second vector
- number z2: The z component of the second vector
Return
number: The distance between the two vectors
Example
use Libraries.Compute.Vector3
Vector3 vector
number distance = vector:Distance(2.0, 3.0, 4.0, 2.0, 5.0, 1.0)
output "The distance is " + distance
Distance(Libraries.Compute.Vector3 vector)
This action computes the distance between the calling vector and the passed vector.
Parameters
- Libraries.Compute.Vector3: The other vector
Return
number: The distance between the two vectors
Example
use Libraries.Compute.Vector3
Vector3 vector
Vector3 otherVector
vector:Set(2.0, 3.0, 4.0)
otherVector:Set(2.0, 5.0, 1.0)
number distance = vector:Distance(otherVector)
output "The distance is " + distance
Distance(number xValue, number yValue, number zValue)
This action computes the distance between the calling vector and the vector represented by the passed x, y, and z components.
Parameters
- number xValue: The x component of the other vector
- number yValue: The y component of the other vector
- number zValue: The z component of the other vector
Return
number: The distance between the two vectors
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(2.0, 3.0, 4.0)
number distance = vector:Distance(2.0, 5.0, 1.0)
output "The distance is " + distance
DistanceSquared(Libraries.Compute.Vector3 vector)
This action computes the square of the distance between the calling vector and the passed vector.
Parameters
- Libraries.Compute.Vector3: The other vector
Return
number: The square of the distance between the two vectors
Example
use Libraries.Compute.Vector3
Vector3 vector
Vector3 otherVector
vector:Set(2.0, 3.0, 4.0)
otherVector:Set(2.0, 5.0, 1.0)
number distanceSquared = vector:DistanceSquared(otherVector)
output "The square of the distance is " + distanceSquared
DistanceSquared(number xValue, number yValue, number zValue)
This action computes the square of the distance between the calling vector and the vector represented by the passed x, y, and z components.
Parameters
- number xValue: The x component of the other vector
- number yValue: The y component of the other vector
- number zValue: The z component of the other vector
Return
number: The square of the distance between the two vectors
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(2.0, 3.0, 4.0)
number distanceSquared = vector:DistanceSquared(2.0, 5.0, 1.0)
output "The square of the distance is " + distanceSquared
DistanceSquared(number x1, number y1, number z1, number x2, number y2, number z2)
This action computes the square of the distance between the vectors represented by the passed x, y, and z components.
Parameters
- number x1: The x component of the first vector
- number y1: The y component of the first vector
- number z1: The z component of the first vector
- number x2: The x component of the second vector
- number y2: The y component of the second vector
- number z2: The z component of the second vector
Return
number: The square of the distance between the two vectors
Example
use Libraries.Compute.Vector3
Vector3 vector
number distanceSquared = vector:DistanceSquared(2.0, 3.0, 4.0, 2.0, 5.0, 1.0)
output "The square of the distance is " + distanceSquared
DotProduct(number x1, number y1, number z1, number x2, number y2, number z2)
This action computes the dot product of the two vectors given by the passed x, y, and z components.
Parameters
- number x1: The x component of the first vector
- number y1: The y component of the first vector
- number z1: The z component of the first vector
- number x2: The x component of the second vector
- number y2: The y component of the second vector
- number z2: The z component of the second vector
Return
number: The dot product of the two vectors.
Example
use Libraries.Compute.Vector3
Vector3 vector
number dotProduct = vector:DotProduct(3.0, 4.0, 5.0, 5.0, 6.0, 7.0)
output "The dot product is " + dotProduct
DotProduct(Libraries.Compute.Vector3 vector)
This action computes the dot product between the calling vector and the passed vector.
Parameters
- Libraries.Compute.Vector3: The other vector
Return
number: The dot product of the two vectors
Example
use Libraries.Compute.Vector3
Vector3 firstVector
Vector3 secondVector
firstVector:Set(3.0, 4.0, 5.0)
secondVector:Set(5.0, 6.0, 7.0)
number dotProduct = firstVector:DotProduct(secondVector)
output "The dot product is " + dotProduct
DotProduct(number xValue, number yValue, number zValue)
This action computes the dot product between the calling vector and the vector with the passed x, y, and z components.
Parameters
- number xValue: The x component of the other vector
- number yValue: The y component of the other vector
- number zValue: The z component of the other vector
Return
number: The dot product of the two vectors
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(3.0, 4.0, 5.0)
number dotProduct = vector:DotProduct(4.0, 5.0, 6.0)
output "The dot product is " + dotProduct
Equals(Libraries.Language.Object object)
This action determines if two objects are equal based on their hash code values.
Parameters
- Libraries.Language.Object: The to be compared.
Return
boolean: True if the hash codes are equal and false if they are not equal.
Example
use Libraries.Language.Object
use Libraries.Language.Types.Text
Object o
Text t
boolean result = o:Equals(t)
Equals(Libraries.Compute.Vector3 vector)
This action determines whether the passed vector is equal to this vector. Two vectors are equal if they have the same x, y, and z components.
Parameters
- Libraries.Compute.Vector3: The vector to check if equal
Return
boolean: true if the two vectors are equal, false otherwise
Example
use Libraries.Compute.Vector3
Vector3 firstVector
Vector3 secondVector
firstVector:Set(2.0, 3.0, 4.0)
secondVector:Set(2.0, 3.0, 4.0)
boolean areEqual = firstVector:Equals(secondVector)
if areEqual
output "The two vectors are equal."
else
output "The two vectors are not equal."
end
EqualsAtPrecision(Libraries.Compute.Vector3 other, number epsilon)
This action determines whether the passed vector equals the calling vector to within the passed precision.
Parameters
- Libraries.Compute.Vector3
- number epsilon
Return
boolean: true if the vectors are equal within the passed precision, false otherwise
Example
use Libraries.Compute.Vector3
Vector3 firstVector
Vector3 secondVector
firstVector:Set(3.0, 4.0, 5.0)
secondVector:Set(6.0, 8.0, 10.0)
secondVector:Scale(0.5)
boolean areEqual = firstVector:EqualsAtPrecision(secondVector, 0.00001)
if areEqual
output "The two vectors are equal."
else
output "The two vectors are not equal."
end
EqualsAtPrecision(number xVal, number yVal, number zVal, number precision)
This action determines whether the vector represented by the passed x, y, and z components equals the calling vector to within the passed precision.
Parameters
- number xVal
- number yVal
- number zVal
- number precision: The desired precision
Return
boolean: true if the vectors are equal within the passed precision, false otherwise
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(3.0, 4.0, 7.5)
boolean areEqual = vector:EqualsAtPrecision(3.0, 4.0000001, 7.5000002, 0.00001)
if areEqual
output "The two vectors are equal."
else
output "The two vectors are not equal."
end
GetHashCode()
This action gets the hash code for an object.
Return
integer: The integer hash code of the object.
Example
Object o
integer hash = o:GetHashCode()
GetX()
This action returns the x component of the vector.
Return
number: the x component of the vector
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(1, 2, 3)
number x = vector:GetX()
output "The x component is: " + x
GetY()
This action returns the y component of the vector.
Return
number: the y component of the vector
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(1, 2, 3)
number y = vector:GetY()
output "The y component is: " + y
GetZ()
This action returns the z component of the vector.
Return
number: the z component of the vector
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(1, 2, 3)
number z = vector:GetZ()
output "The z component is: " + z
HasOppositeDirection(Libraries.Compute.Vector3 vector)
This action determines whether the passed vector has the opposite direction as the calling vector.
Parameters
- Libraries.Compute.Vector3: The other vector
Return
boolean: true if the two vectors have the opposite direction, false otherwise
Example
use Libraries.Compute.Vector3
Vector3 firstVector
Vector3 secondVector
firstVector:Set(3.0, 4.0, 5.0)
secondVector:Set(-3.0, -4.0, -5.0)
boolean isOpposite = firstVector:HasOppositeDirection(secondVector)
if isOpposite
output "The two vectors have opposite directions."
else
output "The two vectors do not have opposite directions."
end
HasSameDirection(Libraries.Compute.Vector3 vector)
This action determines whether the passed vector has the same direction as the calling vector.
Parameters
- Libraries.Compute.Vector3: The other vector
Return
boolean: true if the two vectors have the same direction, false otherwise
Example
use Libraries.Compute.Vector3
Vector3 firstVector
Vector3 secondVector
firstVector:Set(3.0, 4.0, 5.0)
secondVector:Set(6.0, 8.0, 10.0)
boolean isSame = firstVector:HasSameDirection(secondVector)
if isSame
output "The two vectors have the same direction."
else
output "The two vectors do not have the same direction."
end
IsCollinear(Libraries.Compute.Vector3 other, number precision)
This action determines whether the passed vector is collinear with the calling vector, meaning that it lies on the same line as the calling vector and has the same direction as the calling vector to within the passed precision.
Parameters
- Libraries.Compute.Vector3: The other vector
- number precision: The desired precision
Return
boolean: true if the vectors are collinear, false otherwise.
Example
use Libraries.Compute.Vector3
Vector3 firstVector
Vector3 secondVector
firstVector:Set(3.0, 4.0, 5.0)
secondVector:Set(6.0, 8.0, 10.0)
boolean collinear = firstVector:IsCollinear(secondVector, 0.00001)
if collinear
output "The two vectors are collinear in the same direction"
else
output "The two vectors are not collinear in the same direction"
end
IsCollinear(Libraries.Compute.Vector3 other)
This action determines whether the passed vector is collinear with the calling vector, meaning that it lies on the same line as the calling vector and has the same direction as the calling vector.
Parameters
- Libraries.Compute.Vector3: The other vector
Return
boolean: true if the vectors are collinear, false otherwise.
Example
use Libraries.Compute.Vector3
Vector3 firstVector
Vector3 secondVector
firstVector:Set(3.0, 4.0, 5.0)
secondVector:Set(6.0, 8.0, 10.0)
boolean collinear = firstVector:IsCollinear(secondVector)
if collinear
output "The two vectors are collinear in the same direction"
else
output "The two vectors are not collinear in the same direction"
end
IsCollinearOpposite(Libraries.Compute.Vector3 other, number precision)
This action determines whether the passed vector is collinear in the opposite direction with the calling vector, meaning that it lies on the same line as the calling vector and has the opposite direction as the calling vector to within the passed precision.
Parameters
- Libraries.Compute.Vector3: The other vector
- number precision: The desired precision
Return
boolean: true if the vectors are collinear in the opposite directions, false otherwise
Example
use Libraries.Compute.Vector3
Vector3 firstVector
Vector3 secondVector
firstVector:Set(3.0, 4.0, 5.0)
secondVector:Set(-6.0, -8.0, -10.0)
boolean collinearOpposite = firstVector:IsCollinearOpposite(secondVector, 0.00001)
if collinearOpposite
output "The two vectors are collinear in the opposite direction"
else
output "The two vectors are not collinear in the opposite direction"
end
IsCollinearOpposite(Libraries.Compute.Vector3 other)
This action determines whether the passed vector is collinear in the opposite direction with the calling vector, meaning that it lies on the same line as the calling vector and has the opposite direction as the calling vector.
Parameters
- Libraries.Compute.Vector3: The other vector
Return
boolean: true if the vectors are collinear in the opposite directions, false otherwise
Example
use Libraries.Compute.Vector3
Vector3 firstVector
Vector3 secondVector
firstVector:Set(3.0, 4.0, 5.0)
secondVector:Set(-6.0, -8.0, -10.0)
boolean collinearOpposite = firstVector:IsCollinearOpposite(secondVector)
if collinearOpposite
output "The two vectors are collinear in the opposite direction"
else
output "The two vectors are not collinear in the opposite direction"
end
IsOnLine(Libraries.Compute.Vector3 other)
This action determines whether the passed vector is on the same line as the calling vector, either in the same or opposite direction.
Parameters
- Libraries.Compute.Vector3: The other vector
Return
boolean: true if the vectors are on the same line, false otherwise
Example
use Libraries.Compute.Vector3
Vector3 firstVector
Vector3 secondVector
firstVector:Set(1.0, 2.0, 3.0)
secondVector:Set(-2.0, -4.0, -6.0)
boolean onLine = firstVector:IsOnLine(secondVector)
if onLine
output "The two vectors are on the same line."
else
output "The two vectors are not on the same line."
end
IsOnLine(Libraries.Compute.Vector3 other, number precision)
This action determines whether the passed vector is on the same line as the calling vector to within the passed precision, either in the same or opposite direction
Parameters
- Libraries.Compute.Vector3: The other vector
- number precision: The desired precision
Return
boolean: true if the vectors are on the same line, false otherwise
Example
use Libraries.Compute.Vector3
Vector3 firstVector
Vector3 secondVector
firstVector:Set(1.0, 2.0, 3.0)
secondVector:Set(-2.0, -4.0, -6.0)
boolean onLine = firstVector:IsOnLine(secondVector, 0.00001)
if onLine
output "The two vectors are on the same line."
else
output "The two vectors are not on the same line."
end
IsPerpendicular(Libraries.Compute.Vector3 vector)
This action determines whether the passed vector is perpendicular to the calling vector.
Parameters
- Libraries.Compute.Vector3: The other vector
Return
boolean: true if the two vectors are perpendicular, false otherwise
Example
use Libraries.Compute.Vector3
Vector3 firstVector
Vector3 secondVector
firstVector:Set(1.0, 0.0, 0.0)
secondVector:Set(0.0, 1.0, 0.0)
boolean isPerpendicular = firstVector:IsPerpendicular(secondVector)
if isPerpendicular
output "The two vectors are perpendicular."
else
output "The two vectors are not perpendicular."
end
IsPerpendicular(Libraries.Compute.Vector3 vector, number precision)
This action determines whether the passed vector is perpendicular to the calling vector to within the passed precision.
Parameters
- Libraries.Compute.Vector3: The other vector
- number precision: The desired precision
Return
boolean: true if the two vectors are perpendicular, false otherwise
Example
use Libraries.Compute.Vector3
Vector3 firstVector
Vector3 secondVector
firstVector:Set(1.0, 0.0, 0.0)
secondVector:Set(0.0, 1.0, 0.0)
boolean isPerpendicular = firstVector:IsPerpendicular(secondVector, 0.00001)
if isPerpendicular
output "The two vectors are perpendicular."
else
output "The two vectors are not perpendicular."
end
IsUnit()
This action determines whether the vector is a unit vector, meaning it has a length of 1.
Return
boolean: true if the vector is a unit vector, false otherwise
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(0.0, 1.0, 0.0)
boolean isUnit = vector:IsUnit()
if isUnit
output "The vector is a unit vector."
else
output "The vector is not a unit vector."
end
IsUnit(number precision)
This action determines whether the vector is a unit vector, meaning it has a length of 1 to within the passed precision.
Parameters
- number precision: The desired precision
Return
boolean: true if the vector is a unit vector to within the passed precision, false otherwise
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(0.0, 1.0, 0.0)
boolean isUnit = vector:IsUnit(0.00001)
if isUnit
output "The vector is a unit vector."
else
output "The vector is not a unit vector."
end
IsZero()
This action determines whether the vector is the zero vector, meaning that its x, y, and z components are 0.
Return
boolean: true if the vector is the zero vector, false otherwise
Example
use Libraries.Compute.Vector3
Vector3 firstVector
Vector3 secondVector
firstVector:Set(5.0, 6.0, 7.0)
secondVector:Set(5.0, 6.0, 7.0)
firstVector:Subtract(secondVector)
boolean isZero = firstVector:IsZero()
if isZero
output "The vector is the zero vector."
else
output "The vector is not the zero vector."
end
IsZero(number precision)
This action determines whether the vector is the zero vector to within the passed precision, meaning that its x, y, and z components are 0.
Parameters
- number precision: The desired precision
Return
boolean: true if the vector is the zero vector to within the passed precision, false otherwise
Example
use Libraries.Compute.Vector3
Vector3 firstVector
Vector3 secondVector
firstVector:Set(5.0, 6.0, 7.0)
secondVector:Set(5.0, 6.0, 7.0)
firstVector:Subtract(secondVector)
boolean isZero = firstVector:IsZero(0.00001)
if isZero
output "The vector is the zero vector."
else
output "The vector is not the zero vector."
end
Length(number x, number y, number z)
This action returns the length of the vector with the passed x, y, and z components measured from the origin (0, 0).
Parameters
- number x: The x component of the vector
- number y: The y component of the vector
- number z: The z component of the vector
Return
number: The length of the vector
Example
use Libraries.Compute.Vector3
Vector3 vector
number length = vector:Length(1.0, 2.0, 2.0)
output "The length of the vector is " + length
Length()
This action returns the length of the vector measured from the origin (0, 0)
Return
number: the length of the calling vector
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(1.0, 2.0, 2.0)
number length = vector:Length()
output "The length of the vector is " + length
LengthSquared()
This action returns the square of the length of the vector measured from the origin (0, 0).
Return
number: The square of the length of the calling vector
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(2.0, 1.0, 2.0)
number lengthSquared = vector:LengthSquared()
output "The square of the length of the vector is " + lengthSquared
LengthSquared(number x, number y, number z)
This action returns the square of the length of the vector with the passed x, y, and z components measured from the origin (0, 0).
Parameters
- number x: The x component of the vector
- number y: The y component of the vector
- number z: The z component of the vector
Return
number: The square of the length of the vector
Example
use Libraries.Compute.Vector3
Vector3 vector
number lengthSquared = vector:LengthSquared(1.0, 2.0, 2.0)
output "The square of the length of the vector is " + lengthSquared
Limit(number limit)
This action limits the length of the vector to the passed limit value. This changes the calling vector to have a new length if its old length was greater than the passed limit.
Parameters
- number limit: The value to limit the length to
Return
Libraries.Compute.Vector3: The vector with a new length if its old length was larger than the passed limit
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(2.0, 1.0, 2.0)
vector:Limit(1.5)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
LimitSquared(number limitSquared)
This action limits the square of the length of the vector to the passed value, which represents the square of the value to limit the length of the vector to. This changes the calling vector to have a new length if the old length squared was greater than the limit squared.
Parameters
- number limitSquared: the square of the limit
Return
Libraries.Compute.Vector3: the calling vector with a new length if the old length squared was greater than the limit squared
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(2.0, 1.0, 2.0)
vector:LimitSquared(2.25)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
LinearInterpolation(Libraries.Compute.Vector3 target, number alpha)
This action performs a linear interpolation between the calling vector and the passed target vector by alpha, which is between 0 and 1, inclusive. This changes the calling vector to the result of the linear interpolation.
Parameters
- Libraries.Compute.Vector3: The target vector
- number alpha: The alpha value
Return
Libraries.Compute.Vector3: The calling vector after linear interpolation
Example
use Libraries.Compute.Vector3
Vector3 vector
Vector3 target
vector:Set(1.0, 2.0, 1.0)
target:Set(2.0, 3.0, 1.0)
number alpha = 0.5
vector:LinearInterpolation(target, alpha)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
MakeOpposite()
This action makes the current vector point in the opposite direction by negating all of its components.
Multiply(Libraries.Compute.Quaternion quaternion)
This action multiplies the vector by the passed quaternion.
Parameters
- Libraries.Compute.Quaternion: The Quaternion to multiply by
Return
Libraries.Compute.Vector3: The vector after multiplication
Example
use Libraries.Compute.Vector3
use Libraries.Compute.Quaternion
Vector3 vector
Quaternion quaternion
vector:Set(3.0, 4.0, 7.0)
quaternion:Set(4.0, 3.0, 6.0, 6.0)
vector:Multiply(quaternion)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Multiply(Libraries.Compute.Matrix4 matrix)
This action multiplies the vector by a 4-by-4 matrix assuming the fourth w component of the vector is 1. This action is mainly used for game graphics.
Parameters
- Libraries.Compute.Matrix4: The matrix to multiply
Return
Libraries.Compute.Vector3: The vector after multiplication
Example
use Libraries.Compute.Vector3
use Libraries.Compute.Matrix4
use Libraries.Containers.Array
Vector3 vector
Matrix4 matrix
Array<number> values
integer i = 0
repeat 16 times
array:Add(i)
i = i + 1
end
matrix:Set(values)
vector:Multiply(matrix)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Multiply(Libraries.Compute.Matrix3 matrix)
This action multiplies the vector by the passed 3-by-3 matrix and stores the result in the vector.
Parameters
- Libraries.Compute.Matrix3: The matrix to multiply
Return
Libraries.Compute.Vector3: The vector after multiplication
Example
use Libraries.Compute.Vector3
use Libraries.Compute.Matrix3
use Libraries.Containers.Array
Vector3 vector
Matrix3 matrix
vector:Set(2.0, 3.0, 5.0)
Array<number> values
integer i = 0
repeat 9 times
values:Add(i)
i = i + 1
end
matrix:Set(values)
vector:Multiply(matrix)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
MultiplyAndAdd(Libraries.Compute.Vector3 addVector, Libraries.Compute.Vector3 scaleVector)
This action multiplies the passed vector by the passed scalar vector and adds the result to the calling vector. This changes the calling vector to the result of the multiplication and addition.
Parameters
- Libraries.Compute.Vector3: The vector to multiply by the scale vector
- Libraries.Compute.Vector3: The vector to multiply the add vector by
Return
Libraries.Compute.Vector3: The calling vector after multiplication and addition
Example
use Libraries.Compute.Vector3
Vector3 vector
Vector3 addVector
Vector3 scaleVector
vector:Set(4.0, 7.0, 5.0)
addVector:Set(2.0, 3.0, 1.0)
scaleVector:Set(3.0, 1.0, 2.0)
vector:MultiplyAndAdd(addVector, scaleVector)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
MultiplyAndAdd(Libraries.Compute.Vector3 vector, number scalar)
This action multiplies the passed vector by the passed scalar and adds the result to the calling vector. This changes the calling vector to the result of the multiplication and addition.
Parameters
- Libraries.Compute.Vector3: The vector to multiply by the scalar
- number scalar: The value to multiply the vector by
Return
Libraries.Compute.Vector3: The calling vector after multiplication and addition
Example
use Libraries.Compute.Vector3
Vector3 vector
Vector3 addVector
vector:Set(4.0, 7.0, 5.0)
addVector:Set(2.5, 1.5, 2.0)
vector:MultiplyAndAdd(addVector, 2.0)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
MultiplyBy4x3Matrix(Libraries.Containers.Array<number> matrix)
This action multiplies the vector by a 4-by-3 matrix and stores the result in the vector. This action is mainly used in graphics programming where the matrix is composed of a 3-by-3 matrix representing rotation and scale and a 1-by-3 matrix representing translation.
Parameters
- Libraries.Containers.Array: The array representing the 4-by-3 matrix values
Return
Libraries.Compute.Vector3: The vector after multiplication
Example
use Libraries.Compute.Vector3
use Libraries.Containers.Array
Vector3 vector
vector:Set(3.0, 4.0, 2.0)
Array<number> matrix
matrix:Add(2.0)
matrix:Add(0.0)
matrix:Add(0.0)
matrix:Add(0.0)
matrix:Add(2.0)
matrix:Add(0.0)
matrix:Add(0.0)
matrix:Add(0.0)
matrix:Add(2.0)
matrix:Add(1.0)
matrix:Add(1.0)
matrix:Add(1.0)
vector:MultiplyBy4x3Matrix(matrix)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
MultiplyByTranspose(Libraries.Compute.Matrix3 matrix)
This action multiplies the vector by the transpose of the passed 3-by-3 matrix and stores the result in the vector.
Parameters
- Libraries.Compute.Matrix3: The matrix to multiply
Return
Libraries.Compute.Vector3: The vector after multiplication
Example
use Libraries.Compute.Vector3
use Libraries.Compute.Matrix3
use Libraries.Containers.Array
Vector3 vector
Matrix3 matrix
vector:Set(2.0, 3.0, 5.0)
Array<number> values
integer i = 0
repeat 9 times
values:Add(i)
i = i + 1
end
matrix:Set(values)
vector:MultiplyByTranspose(matrix)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
MultiplyByTranspose(Libraries.Compute.Matrix4 matrix)
This action multiplies the vector by the transpose of the passed 4-by-4 matrix assuming the fourth w component of the vector is 1. This action is mainly used for game graphics.
Parameters
- Libraries.Compute.Matrix4: The matrix to multiply
Return
Libraries.Compute.Vector3: The vector after multiplication
Example
use Libraries.Compute.Vector3
use Libraries.Compute.Matrix4
use Libraries.Containers.Array
Vector3 vector
Matrix4 matrix
Array<number> values
integer i = 0
repeat 16 times
array:Add(i)
i = i + 1
end
matrix:Set(values)
vector:MultiplyByTranspose(matrix)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Normalize()
This action produces a normalized vector with the same direction as the original vector but with a length of 1. This action changes the calling vector to the normalized vector.
Return
Libraries.Compute.Vector3: the normalized vector with a length of 1
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(23.4, 43.2, 45.6)
vector:Normalize()
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The normalized vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Output()
Project(Libraries.Compute.Matrix4 matrix)
This action projects the vector via a perspective projection matrix. This is mainly useful for game graphics.
Parameters
- Libraries.Compute.Matrix4: The perspective matrix
Return
Libraries.Compute.Vector3: The vector after projection
Example
use Libraries.Compute.Vector3
use Libraries.Compute.Matrix4
use Libraries.Containers.Array
Vector3 vector
Matrix4 matrix
Array<number> values
vector:Set(3.0, 4.0, 2.0)
values:Set(matrix:M00, 2 * 3 / (100 - 0))
values:Set(matrix:M01, 0)
values:Set(matrix:M02, (100 + 0) / (100 - 0))
values:Set(matrix:M03, 0)
values:Set(matrix:M10, 0)
values:Set(matrix:M11, 2 * 3 / (100 - 0))
values:Set(matrix:M12, (100 + 0) / (100 - 0))
values:Set(matrix:M13, 0)
values:Set(matrix:M20, 0)
values:Set(matrix:M21, 0)
values:Set(matrix:M22, -1 * (10 + 3) / (10 - 3))
values:Set(matrix:M23, -2 * 10 * 3 / (10 - 3))
values:Set(matrix:M30, 0)
values:Set(matrix:M31, 0)
values:Set(matrix:M32, -1)
values:Set(matrix:M33, 0)
matrix:Set(values)
vector:Project(matrix)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Rotate(Libraries.Compute.Vector3 axis, number degrees)
This action rotates the vector the given number of degrees around the passed axis.
Parameters
- Libraries.Compute.Vector3: The rotation axis
- number degrees: The rotation angle in degrees
Return
Libraries.Compute.Vector3: The vector after rotation
Example
use Libraries.Compute.Vector3
Vector3 vector
Vector3 axis
vector:Set(3.0, 2.0, 5.0)
axis:Set(1.0, 0.0, 0.0)
vector:Rotate(axis, 45)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Rotate(number degrees, number axisX, number axisY, number axisZ)
This action rotates the vector the given number of degrees around the axis with the passed x, y, and z components.
Parameters
- number degrees: The rotation angle in degrees
- number axisX: The x component of the axis to rotate around
- number axisY: The y component of the axis to rotate around
- number axisZ: The z component of the axis to rotate around
Return
Libraries.Compute.Vector3: The vector after rotation
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(3.0, 2.0, 5.0)
vector:Rotate(45, 1, 0, 0)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Rotate(Libraries.Compute.Matrix4 matrix)
This action multiplies the vector by the first three columns of the passed matrix, effectively applying rotation and scaling to the vector. This action is mainly used in game graphics.
Parameters
- Libraries.Compute.Matrix4: The transformation matrix
Return
Libraries.Compute.Vector3: The vector after rotation
Example
use Libraries.Compute.Vector3
use Libraries.Compute.Matrix4
use Libraries.Containers.Array
use Libraries.Compute.Math
Math math
Vector3 vector
vector:Set(3, 2, 5)
Matrix4 matrix
Array<number> values
values:SetSize(16)
values:Set(matrix:M00, math:Cosine(math:pi / 4))
values:Set(matrix:M01, -1 * math:Sine(math:pi / 4))
values:Set(matrix:M02, 0)
values:Set(matrix:M03, 1)
values:Set(matrix:M10, math:Sine(math:pi / 4))
values:Set(matrix:M11, math:Cosine(math:pi / 4))
values:Set(matrix:M12, 0)
values:Set(matrix:M13, 1)
values:Set(matrix:M20, 0)
values:Set(matrix:M21, 0)
values:Set(matrix:M22, 1)
values:Set(matrix:M23, 1)
values:Set(matrix:M30, 1)
values:Set(matrix:M31, 1)
values:Set(matrix:M32, 1)
values:Set(matrix:M33, 1)
matrix:Set(values)
vector:Rotate(matrix)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
RotateRadians(Libraries.Compute.Vector3 axis, number radians)
This action rotates the vector the given number of radians around the passed axis.
Parameters
- Libraries.Compute.Vector3: The rotation axis
- number radians: The rotation angle in radians
Return
Libraries.Compute.Vector3: The vector after rotation
Example
use Libraries.Compute.Vector3
use Libraries.Compute.Math
Math math
Vector3 vector
Vector3 axis
vector:Set(3.0, 2.0, 5.0)
axis:Set(1.0, 0.0, 0.0)
vector:RotateRadians(axis, math:pi / 4)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
RotateRadians(number radians, number axisX, number axisY, number axisZ)
This action rotates the vector the given number of radians around the axis with the passed x, y, and z components.
Parameters
- number radians: The rotation angle in radians
- number axisX: The x component of the axis to rotate around
- number axisY: The y component of the axis to rotate around
- number axisZ: The z component of the axis to rotate around
Return
Libraries.Compute.Vector3: The vector after rotation
Example
use Libraries.Compute.Vector3
use Libraries.Compute.Math
Math math
Vector3 vector
vector:Set(3.0, 2.0, 5.0)
vector:RotateRadians(math:pi / 4, 1, 0, 0)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Scale(Libraries.Compute.Vector3 vector)
This action scales the vector by multiplying the x component by the x component of the passed vector, the y component by the y component of the passed vector, and the z component by the z component of the passed vector.
Parameters
- Libraries.Compute.Vector3: The vector to scale by
Return
Libraries.Compute.Vector3: The calling vector
Example
use Libraries.Compute.Vector3
Vector3 vector
Vector3 scaleVector
vector:Set(2.0, 3.0, 4.0)
scaleVector:Set(3.0, 4.0, 2.0)
vector:Scale(scaleVector)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Scale(number scalar)
This action scales the vector by multiplying the x, y, and z components by the passed scalar value.
Parameters
- number scalar: The scalar value to multiply by
Return
Libraries.Compute.Vector3: The calling vector
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(2.0, 3.0, 4.0)
vector:Scale(2.0)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Scale(number xValue, number yValue, number zValue)
This action scales the vector by multiplying the x component with the passed x value, the y component with the passed y value, and the z component with the passed z value.
Parameters
- number xValue: The value to multiply the x component by
- number yValue: The value to multiply the y component by
- number zValue: The value to multiply the z component by
Return
Libraries.Compute.Vector3: The calling vector
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(2.0, 3.0, 4.0)
vector:Scale(3.0, 4.0, 2.0)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Set(number xValue, number yValue, number zValue)
This action sets the x, y, and z components of the vector to the passed x, y, and z values.
Parameters
- number xValue: the value to set as the x component
- number yValue: the value to set as the y component
- number zValue: the value to set as the z component
Return
Libraries.Compute.Vector3: the calling vector
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(8.8, 4.2, 9.2)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Set(Libraries.Containers.Array<number> array)
This action sets the x, y, and z components of the vector to the elements of the passed array. The x component is assigned the element at array position 0, the y component the element at array position 1, and the z component the element at array position 2.
Parameters
- Libraries.Containers.Array: The array containing the numbers to assign as the x, y, and z components of the vector
Return
Libraries.Compute.Vector3: the calling vector
Example
use Libraries.Compute.Vector3
use Libraries.Containers.Array
Vector3 vector
Array<number> array
array:Add(3.0)
array:Add(-4.5)
array:Add(5.2)
vector:Set(array)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Set(Libraries.Compute.Vector2 vector, number z)
This action sets the vector's x and y components to the x and y components of the passed 2D vector and sets the z component to the passed z value.
Parameters
- Libraries.Compute.Vector2: The 2D vector to set this vector's x and y components
- number z: The value to set the z component to
Return
Libraries.Compute.Vector3: The calling vector
Example
use Libraries.Compute.Vector3
use Libraries.Compute.Vector2
Vector3 vector
Vector2 setVector
setVector:Set(3.5, -7.0)
vector:Set(setVector, 4.2)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Set(Libraries.Compute.Vector3 vector)
This action sets the vector's components to the components of the passed vector.
Parameters
- Libraries.Compute.Vector3: the vector to use to set the components
Return
Libraries.Compute.Vector3: the calling vector
Example
use Libraries.Compute.Vector3
Vector3 firstVector
firstVector:Set(2.4, 4.3, 2.7)
Vector3 secondVector
secondVector:Set(firstVector)
number newX = secondVector:GetX()
number newY = secondVector:GetY()
number newZ = secondVector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
SetX(number newX)
This action sets the x component of the vector to the passed value.
Parameters
- number newX: The value to set as the x component
SetY(number newY)
This action sets the y component of the vector to the passed value.
Parameters
- number newY: The value to set as the y component
SetZ(number newZ)
This action sets the z component of the vector to the passed value.
Parameters
- number newZ: The value to set as the z component
SetZero()
This action sets the vector to the zero vector, meaning the x, y, and z components will be set to 0.
Return
Libraries.Compute.Vector3: The calling vector set to the zero vector
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:SetZero()
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
SphericalLinearInterpolation(Libraries.Compute.Vector3 target, number alpha)
This action performs a spherical interpolation between the calling vector and the passed target vector by alpha, which is between 0 and 1, inclusive. This changes the calling vector to the result of the spherical linear interpolation.
Parameters
- Libraries.Compute.Vector3: The target vector
- number alpha: The alpha value
Return
Libraries.Compute.Vector3: The calling vector after spherical linear interpolation
Example
use Libraries.Compute.Vector3
Vector3 vector
Vector3 target
vector:Set(0.4, 0.3, 0.2)
target:Set(0.1, 0.2, 0.3)
alpha = 0.5
vector:SphericalLinearInterpolation(target, alpha)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Subtract(number value)
This action subtracts the passed value from the x, y, and z components of the vector. This changes the vector to the result of the subtraction.
Parameters
- number value: The value to subtract from the x, y, and z components
Return
Libraries.Compute.Vector3: The vector after subtraction
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(3.5, 5,0, 3.1)
vector:Subtract(2.0)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Subtract(number xValue, number yValue, number zValue)
This action subtracts a vector with the passed components from the calling vector. This action changes the calling vector to the result of the subtraction.
Parameters
- number xValue: The x component of the vector to subtract
- number yValue: The y component of the vector to subtract
- number zValue: The z component of the vector to subtract
Return
Libraries.Compute.Vector3: The calling vector after subtraction
Example
use Libraries.Compute.Vector3
Vector3 vector
vector:Set(9.0, 8.0, 7.0)
vector:Subtract(6.0, 5.0, 4.0)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Subtract(Libraries.Compute.Vector3 vector)
This action subtracts the passed vector from the calling vector. This changes the calling vector to the result of the subtraction.
Parameters
- Libraries.Compute.Vector3: The vector to subtract
Return
Libraries.Compute.Vector3: The calling vector after subtraction
Example
use Libraries.Compute.Vector3
Vector3 firstVector
Vector3 secondVector
firstVector:Set(9.0, 8.0, 7.0)
secondVector:Set(6.0, 5.0, 4.0)
firstVector:Subtract(secondVector)
number newX = firstVector:GetX()
number newY = firstVector:GetY()
number newZ = firstVector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Unrotate(Libraries.Compute.Matrix4 matrix)
This action multiplies the vector by the first three columns of the transpose of the passed matrix, effectively undoing any rotation and translation of the vector.
Parameters
- Libraries.Compute.Matrix4: The transformation matrix
Return
Libraries.Compute.Vector3: The vector after unrotating
Example
use Libraries.Compute.Vector3
use Libraries.Compute.Matrix4
use Libraries.Containers.Array
use Libraries.Compute.Math
Math math
Vector3 vector
vector:Set(3, 2, 5)
Matrix4 matrix
Array<number> values
values:SetSize(16)
values:Set(matrix:M00, math:Cosine(math:pi / 4))
values:Set(matrix:M01, -1 * math:Sine(math:pi / 4))
values:Set(matrix:M02, 0)
values:Set(matrix:M03, 1)
values:Set(matrix:M10, math:Sine(math:pi / 4))
values:Set(matrix:M11, math:Cosine(math:pi / 4))
values:Set(matrix:M12, 0)
values:Set(matrix:M13, 1)
values:Set(matrix:M20, 0)
values:Set(matrix:M21, 0)
values:Set(matrix:M22, 1)
values:Set(matrix:M23, 1)
values:Set(matrix:M30, 1)
values:Set(matrix:M31, 1)
values:Set(matrix:M32, 1)
values:Set(matrix:M33, 1)
matrix:Set(values)
vector:Rotate(matrix)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
vector:Unrotate(matrix)
newX = vector:GetX()
newY = vector:GetY()
newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
Untransform(Libraries.Compute.Matrix4 matrix)
This action translates the vector in the direction opposite from the translation of the matrix and then multiplies the vector by the first three columns of the matrix. This undoes the translations and rotations applied to the vector.
Parameters
- Libraries.Compute.Matrix4: The transformation matrix
Return
Libraries.Compute.Vector3: The vector after untransforming
Example
use Libraries.Compute.Vector3
use Libraries.Compute.Matrix4
use Libraries.Containers.Array
Vector3 vector
Matrix4 matrix
Array<number> values
vector:Set(3.0, 4.0, 2.0)
values:Set(matrix:M00, 2 * 3 / (100 - 0))
values:Set(matrix:M01, 0)
values:Set(matrix:M02, (100 + 0) / (100 - 0))
values:Set(matrix:M03, 0)
values:Set(matrix:M10, 0)
values:Set(matrix:M11, 2 * 3 / (100 - 0))
values:Set(matrix:M12, (100 + 0) / (100 - 0))
values:Set(matrix:M13, 0)
values:Set(matrix:M20, 0)
values:Set(matrix:M21, 0)
values:Set(matrix:M22, -1 * (10 + 3) / (10 - 3))
values:Set(matrix:M23, -2 * 10 * 3 / (10 - 3))
values:Set(matrix:M30, 0)
values:Set(matrix:M31, 0)
values:Set(matrix:M32, -1)
values:Set(matrix:M33, 0)
matrix:Set(values)
vector:Project(matrix)
number newX = vector:GetX()
number newY = vector:GetY()
number newZ = vector:GetZ()
output "The new vector is: [" + newX + ", " + newY + ", " + newZ + "]"
On this page
Variables TableAction Documentation- Add(number xValue, number yValue, number zValue)
- Add(number value)
- Add(Libraries.Compute.Vector3 vector)
- Clamp(number min, number max)
- Compare(Libraries.Language.Object object)
- Copy()
- CrossProduct(Libraries.Compute.Vector3 vector)
- CrossProduct(number xValue, number yValue, number zValue)
- Distance(number x1, number y1, number z1, number x2, number y2, number z2)
- Distance(Libraries.Compute.Vector3 vector)
- Distance(number xValue, number yValue, number zValue)
- DistanceSquared(Libraries.Compute.Vector3 vector)
- DistanceSquared(number xValue, number yValue, number zValue)
- DistanceSquared(number x1, number y1, number z1, number x2, number y2, number z2)
- DotProduct(number x1, number y1, number z1, number x2, number y2, number z2)
- DotProduct(Libraries.Compute.Vector3 vector)
- DotProduct(number xValue, number yValue, number zValue)
- Equals(Libraries.Language.Object object)
- Equals(Libraries.Compute.Vector3 vector)
- EqualsAtPrecision(Libraries.Compute.Vector3 other, number epsilon)
- EqualsAtPrecision(number xVal, number yVal, number zVal, number precision)
- GetHashCode()
- GetX()
- GetY()
- GetZ()
- HasOppositeDirection(Libraries.Compute.Vector3 vector)
- HasSameDirection(Libraries.Compute.Vector3 vector)
- IsCollinear(Libraries.Compute.Vector3 other, number precision)
- IsCollinear(Libraries.Compute.Vector3 other)
- IsCollinearOpposite(Libraries.Compute.Vector3 other, number precision)
- IsCollinearOpposite(Libraries.Compute.Vector3 other)
- IsOnLine(Libraries.Compute.Vector3 other)
- IsOnLine(Libraries.Compute.Vector3 other, number precision)
- IsPerpendicular(Libraries.Compute.Vector3 vector)
- IsPerpendicular(Libraries.Compute.Vector3 vector, number precision)
- IsUnit()
- IsUnit(number precision)
- IsZero()
- IsZero(number precision)
- Length(number x, number y, number z)
- Length()
- LengthSquared()
- LengthSquared(number x, number y, number z)
- Limit(number limit)
- LimitSquared(number limitSquared)
- LinearInterpolation(Libraries.Compute.Vector3 target, number alpha)
- MakeOpposite()
- Multiply(Libraries.Compute.Quaternion quaternion)
- Multiply(Libraries.Compute.Matrix4 matrix)
- Multiply(Libraries.Compute.Matrix3 matrix)
- MultiplyAndAdd(Libraries.Compute.Vector3 addVector, Libraries.Compute.Vector3 scaleVector)
- MultiplyAndAdd(Libraries.Compute.Vector3 vector, number scalar)
- MultiplyBy4x3Matrix(Libraries.Containers.Array
matrix) - MultiplyByTranspose(Libraries.Compute.Matrix3 matrix)
- MultiplyByTranspose(Libraries.Compute.Matrix4 matrix)
- Normalize()
- Output()
- Project(Libraries.Compute.Matrix4 matrix)
- Rotate(Libraries.Compute.Vector3 axis, number degrees)
- Rotate(number degrees, number axisX, number axisY, number axisZ)
- Rotate(Libraries.Compute.Matrix4 matrix)
- RotateRadians(Libraries.Compute.Vector3 axis, number radians)
- RotateRadians(number radians, number axisX, number axisY, number axisZ)
- Scale(Libraries.Compute.Vector3 vector)
- Scale(number scalar)
- Scale(number xValue, number yValue, number zValue)
- Set(number xValue, number yValue, number zValue)
- Set(Libraries.Containers.Array
array) - Set(Libraries.Compute.Vector2 vector, number z)
- Set(Libraries.Compute.Vector3 vector)
- SetX(number newX)
- SetY(number newY)
- SetZ(number newZ)
- SetZero()
- SphericalLinearInterpolation(Libraries.Compute.Vector3 target, number alpha)
- Subtract(number value)
- Subtract(number xValue, number yValue, number zValue)
- Subtract(Libraries.Compute.Vector3 vector)
- Unrotate(Libraries.Compute.Matrix4 matrix)
- Untransform(Libraries.Compute.Matrix4 matrix)