Difference between revisions of "Vector"

From Sven Co-op
Jump to navigation Jump to search
m
m
Line 8: Line 8:
 
! Description
 
! Description
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
| float DotProduct(const Vector2D& in lhs, const Vector2D& in rhs)
+
| <code>float DotProduct(const Vector2D& in lhs, const Vector2D& in rhs)
 
| Returns a dot product of the given 2D vectors
 
| Returns a dot product of the given 2D vectors
 
|- style="background-color:#F8F9FA; color:#202122;"
 
|- style="background-color:#F8F9FA; color:#202122;"
Line 14: Line 14:
 
| Returns the dot product of the given vectors
 
| Returns the dot product of the given vectors
 
|- style="background-color:#F8F9FA; color:#202122;"
 
|- style="background-color:#F8F9FA; color:#202122;"
| Vector CrossProduct(const Vector& in, const Vector& in)
+
| <code>Vector CrossProduct(const Vector& in, const Vector& in)
 
| style="vertical-align:middle;" | Returns the cross product of the given vectors
 
| style="vertical-align:middle;" | Returns the cross product of the given vectors
 
|}
 
|}
Line 23: Line 23:
 
! style="vertical-align:middle;" | Description
 
! style="vertical-align:middle;" | Description
 
|-
 
|-
| void Vector()
+
| <code>void Vector()
 
| style="vertical-align:middle;" | Default constructs a 3D vector (0, 0, 0)
 
| style="vertical-align:middle;" | Default constructs a 3D vector (0, 0, 0)
 
|-
 
|-
| void Vector(const Vector& in vec)
+
| <code>void Vector(const Vector& in vec)
 
| style="vertical-align:middle;" | Copy constructs a 3D vector
 
| style="vertical-align:middle;" | Copy constructs a 3D vector
 
|-
 
|-
| void Vector(float x, float y, float z)
+
| <code>void Vector(float x, float y, float z)
 
| style="vertical-align:middle;" | Constructs a 3D vector from 3 floats
 
| style="vertical-align:middle;" | Constructs a 3D vector from 3 floats
 
|-
 
|-
| Vector& opAssign(const Vector& in other)
+
| <code>Vector& opAssign(const Vector& in other)
 
| style="vertical-align:middle;" | Assign vector
 
| style="vertical-align:middle;" | Assign vector
 
|-
 
|-
| Vector opNeg() const
+
| <code>Vector opNeg() const
 
| style="vertical-align:middle;" | Negate vector
 
| style="vertical-align:middle;" | Negate vector
 
|-
 
|-
| Vector opAdd(const Vector& in other) const
+
| <code>Vector opAdd(const Vector& in other) const
 
| style="vertical-align:middle;" | Add vectors
 
| style="vertical-align:middle;" | Add vectors
 
|-
 
|-
| Vector opSub(const Vector& in other) const
+
| <code>Vector opSub(const Vector& in other) const
 
| style="vertical-align:middle;" | Subtract vectors
 
| style="vertical-align:middle;" | Subtract vectors
 
|-
 
|-
| Vector opMul(float fl) const
+
| <code>Vector opMul(float fl) const
 
| style="vertical-align:middle;" | Multiply vector by value
 
| style="vertical-align:middle;" | Multiply vector by value
 
|-
 
|-
| Vector opMul_r(float fl) const
+
| <code>Vector opMul_r(float fl) const
 
| style="vertical-align:middle;" | Multiply vector by value
 
| style="vertical-align:middle;" | Multiply vector by value
 
|-
 
|-
| Vector opDiv(float fl) const
+
| <code>Vector opDiv(float fl) const
 
| style="vertical-align:middle;" | Divide vector by value
 
| style="vertical-align:middle;" | Divide vector by value
 
|-
 
|-
| Vector opDiv_r(float fl) const
+
| <code>Vector opDiv_r(float fl) const
 
| style="vertical-align:middle;" | Divide vector by value
 
| style="vertical-align:middle;" | Divide vector by value
 
|-
 
|-
| float& opIndex(size_t uiIndex)
+
| <code>float& opIndex(size_t uiIndex)
 
| style="vertical-align:middle;" | Index operator
 
| style="vertical-align:middle;" | Index operator
 
|-
 
|-
| float opIndex(size_t uiIndex) const
+
| <code>float opIndex(size_t uiIndex) const
 
| style="vertical-align:middle;" | Index operator
 
| style="vertical-align:middle;" | Index operator
 
|-
 
|-
| bool opEquals(const Vector& in other) const
+
| <code>bool opEquals(const Vector& in other) const
 
| style="vertical-align:middle;" | Compare vectors
 
| style="vertical-align:middle;" | Compare vectors
 
|-
 
|-
| Vector opMul(const Vector& in other) const
+
| <code>Vector opMul(const Vector& in other) const
 
| style="vertical-align:middle;" | Multiply vectors
 
| style="vertical-align:middle;" | Multiply vectors
 
|-
 
|-
| Vector opDiv(const Vector& in other) const
+
| <code>Vector opDiv(const Vector& in other) const
 
| style="vertical-align:middle;" | Divide vectors
 
| style="vertical-align:middle;" | Divide vectors
 
|-
 
|-
| float Length() const
+
| <code>float Length() const
 
| style="vertical-align:middle;" | Gets the length of this vector
 
| style="vertical-align:middle;" | Gets the length of this vector
 
|-
 
|-
| float Length2D() const
+
| <code>float Length2D() const
 
| style="vertical-align:middle;" | Gets the length of this vector in 2D
 
| style="vertical-align:middle;" | Gets the length of this vector in 2D
 
|-
 
|-
| Vector Normalize() const
+
| <code>Vector Normalize() const
 
| style="vertical-align:middle;" | Returns the normalized form of this vector
 
| style="vertical-align:middle;" | Returns the normalized form of this vector
 
|-
 
|-
| Vector2D Make2D() const
+
| <code>Vector2D Make2D() const
 
| style="vertical-align:middle;" | Returns the 2D form of this vector
 
| style="vertical-align:middle;" | Returns the 2D form of this vector
 
|-
 
|-
| string ToString() const
+
| <code>string ToString() const
 
| style="vertical-align:middle;" | Returns a string representation of this vector in the format "x, y, z"
 
| style="vertical-align:middle;" | Returns a string representation of this vector in the format "x, y, z"
 
|}
 
|}
  
 
[[Category:Scripting]]
 
[[Category:Scripting]]

Revision as of 19:49, 14 February 2025

Vectors are essentially float arrays of size 3 which are used to represent various things like spatial co-ordinates, angles, velocities and colours, and so will come up very often.

Operations such as dot product and cross product can be performed on vectors using these global functions:

Function Description
float DotProduct(const Vector2D& in lhs, const Vector2D& in rhs) Returns a dot product of the given 2D vectors
float DotProduct(const Vector& in lhs, const Vector& in rhs) Returns the dot product of the given vectors
Vector CrossProduct(const Vector& in, const Vector& in) Returns the cross product of the given vectors
Method Description
void Vector() Default constructs a 3D vector (0, 0, 0)
void Vector(const Vector& in vec) Copy constructs a 3D vector
void Vector(float x, float y, float z) Constructs a 3D vector from 3 floats
Vector& opAssign(const Vector& in other) Assign vector
Vector opNeg() const Negate vector
Vector opAdd(const Vector& in other) const Add vectors
Vector opSub(const Vector& in other) const Subtract vectors
Vector opMul(float fl) const Multiply vector by value
Vector opMul_r(float fl) const Multiply vector by value
Vector opDiv(float fl) const Divide vector by value
Vector opDiv_r(float fl) const Divide vector by value
float& opIndex(size_t uiIndex) Index operator
float opIndex(size_t uiIndex) const Index operator
bool opEquals(const Vector& in other) const Compare vectors
Vector opMul(const Vector& in other) const Multiply vectors
Vector opDiv(const Vector& in other) const Divide vectors
float Length() const Gets the length of this vector
float Length2D() const Gets the length of this vector in 2D
Vector Normalize() const Returns the normalized form of this vector
Vector2D Make2D() const Returns the 2D form of this vector
string ToString() const Returns a string representation of this vector in the format "x, y, z"