Immutable 2D vector class with 32-bit float components. This class provides comprehensive vector operations for 2D graphics and mathematics. All operations return new vector instances, preserving immutability.

Hierarchy (view full)

Implements

Constructors

Properties

_v: TypedArray = ...

Internal typed array storage for vector components

Accessors

  • get bytesPerComponent(): number
  • Gets the number of bytes per component in the underlying typed array.

    Returns number

    The number of bytes per component

  • get glslStrAsFloat(): string
  • Converts the vector to a GLSL vec2 string representation with float precision.

    Returns string

    GLSL-compatible vec2 string

  • get glslStrAsInt(): string
  • Converts the vector to a GLSL ivec2 string representation with integer precision.

    Returns string

    GLSL-compatible ivec2 string

  • get wgslStrAsFloat(): string
  • Converts the vector to a WGSL vec2f string representation with float precision.

    Returns string

    WGSL-compatible vec2f string

  • get wgslStrAsInt(): string
  • Converts the vector to a WGSL vec2i string representation with integer precision.

    Returns string

    WGSL-compatible vec2i string

  • get compositionType(): CompositionTypeClass<"VEC2">
  • Gets the composition type of this vector.

    Returns CompositionTypeClass<"VEC2">

    The composition type (Vec2)

Methods

  • Gets the component at the specified index.

    Parameters

    • i: number

      The index (0 for x, 1 for y)

    Returns number

    The component value at the specified index

  • Checks if this vector is approximately equal to another vector within a tolerance.

    Parameters

    • vec: IVector2

      The vector to compare with

    • delta: number = Number.EPSILON

      The tolerance value (default: Number.EPSILON)

    Returns boolean

    True if vectors are approximately equal, false otherwise

  • Checks if the internal storage shares the same ArrayBuffer as the provided one. Useful for determining if vectors share underlying memory.

    Parameters

    • arrayBuffer: ArrayBuffer

      The ArrayBuffer to compare against

    Returns boolean

    True if the same ArrayBuffer is used, false otherwise

  • Gets the component value at the specified index. Alias for the at() method for convenience.

    Parameters

    • i: number

      The index of the component to retrieve

    Returns number

    The component value at the given index

  • Divides the left vector by the right vector component-wise.

    Parameters

    • l_vec: IVector2

      The left vector operand (dividend)

    • r_vec: IVector2

      The right vector operand (divisor)

    Returns Vector2

    A new Vector2 instance containing the component-wise division result

  • Calculates the dot product of two vectors (static version).

    Parameters

    Returns number

    The dot product of the two vectors

  • Creates a vector from an array, taking the first 2 elements.

    Parameters

    • array: number[]

      The array containing components

    Returns Vector2

    A new Vector2 instance

  • Calculates the squared length of a vector (static version). This is more efficient than calculating the actual length when only comparison is needed.

    Parameters

    • vec: IVector2

      The vector to calculate squared length for

    Returns number

    The squared length of the vector

  • Multiplies a vector by a scalar value.

    Parameters

    • vec: IVector2

      The vector to multiply

    • value: number

      The scalar value to multiply by

    Returns Vector2

    A new Vector2 instance containing the scaled result