struct

SF::Vector2(T)

Inherits Enumerable / Struct / Value / Object

Utility generic struct for manipulating 2-dimensional vectors

SF::Vector2 is a simple struct that defines a mathematical vector with two coordinates (x and y). It can be used to represent anything that has two dimensions: a size, a point, a velocity, etc.

The generic parameter T is the type of the coordinates. It can be any type that supports arithmetic operations (+, -, /, *) and comparisons (==, !=), for example Int or Float.

You generally don't have to care about the generic form, the most common specializations have special aliases:

  • SF::Vector2(Float32) is SF::Vector2f
  • SF::Vector2(Int32) is SF::Vector2i

See also: SF.vector2f, SF.vector2i.

The SF::Vector2 struct has a small and simple interface, its x and y members can be accessed directly and it contains no mathematical function like dot product, cross product, length, etc.

Usage example:

v1 = SF.vector2f(16.5, 24)
v1.x = 18.2_f32
y = v1.y

v2 = v1 * 5
v3 = v1 + v2

different = (v2 != v3)

Note: for 3-dimensional vectors, see SF::Vector3.

Constructors

new(x : T, y : T)

Construct the vector from its coordinates.

Source
new

Default constructor: equivalent to new(0, 0)

Source

Instance methods

*(n : Number)

Memberwise multiplication by a scalar

Source
*(other)

Memberwise multiplication of two vectors

Source
+(other)

Memberwise addition of two vectors

Source
-(other)

Memberwise subtraction of two vectors

Source
-

Memberwise opposite of the vector

Source
/(n : Number)

Memberwise division by a scalar

Source
==(other : Vector2)

Returns true if both corresponding coordinates of two vectors are equal

Source
[](i : Int) : T

Get a coordinate by its index: 0 is x, 1 is y.

Raises IndexError for other indices.

Source
each

Yields x, then y

Source
size

Returns 2

Source
x

The x coordinate

Source
x=(x : T)

The x coordinate

Source
y

The y coordinate

Source
y=(y : T)

The y coordinate

Source