Flocc
    Preparing search index...

    Class Vector

    A Vector contains multi-dimensional numeric data.

    0.1.0

    Implements

    • Point
    Index

    Constructors

    Properties

    data: number[]
    dimension: number

    The dimension of this Vector, or the last index that has a value (plus one).

    const a = new Vector(1, 1, 1);
    a.dimension; // 3

    const b = new Vector(1, 2, 3, 4, 5);
    b.dimension; // 5

    Dimensions can be dynamically updated after a Vector is created:

    const v = new Vector(0);
    v.dimension; // 1

    v.set(3, 10);
    v.dimension; // 4 (indices start at 0)

    Accessors

    • get a(): number

      a for 'alpha' (the 4th value)

      Returns number

      0.1.0

    • set a(n: number): void

      a for 'alpha' (the 4th value)

      Parameters

      • n: number

      Returns void

      0.1.0

    • get b(): number

      b for 'blue' (the 3rd value)

      Returns number

      0.1.0

    • set b(n: number): void

      b for 'blue' (the 3rd value)

      Parameters

      • n: number

      Returns void

      0.1.0

    • get g(): number

      g for 'green' (the 2nd value)

      Returns number

      0.1.0

    • set g(n: number): void

      g for 'green' (the 2nd value)

      Parameters

      • n: number

      Returns void

      0.1.0

    • get r(): number

      r for 'red' (the 1st value)

      Returns number

      0.1.0

    • set r(n: number): void

      r for 'red' (the 1st value)

      Parameters

      • n: number

      Returns void

      0.1.0

    • get rgb(): [number, number, number]

      Returns [number, number, number]

      0.2.4

    • get rgba(): [number, number, number, number]

      Returns [number, number, number, number]

      0.2.4

    • get x(): number

      Returns number

      0.1.0

    • set x(n: number): void

      Parameters

      • n: number

      Returns void

      0.1.0

    • get xyz(): [number, number, number]

      Returns [number, number, number]

      0.2.4

    • get y(): number

      Returns number

      0.1.0

    • set y(n: number): void

      Parameters

      • n: number

      Returns void

      0.1.0

    • get z(): number

      Returns number

      0.1.0

    • set z(n: number): void

      Parameters

      • n: number

      Returns void

      0.1.0

    Methods

    • Add another Vector to this Vector. This does mutate the Vector that calls this method.

      Parameters

      Returns this

      0.1.0

    • Add a scalar number to all of this Vector's values'. This does mutate the Vector that calls this method.

      Parameters

      • n: number

      Returns this

      0.1.0

    • Retrieve a value from a Vector by its index. If the given index is greater than the Vector's dimension, this returns 0 by default.

      const v = new Vector(1, 2, 4);

      v.index(0); // returns 1
      v.index(2); // returns 4
      v.index(5); // returns 0

      Parameters

      • i: number

      Returns number

      0.1.0

    • Computes the Euclidean length (straight-line length) from the origin to this vector.

      Returns number

      0.1.0

    • Linearly interpolate between this Vector and another Vector. This does not mutate the original Vector that calls this method, but returns a new Vector.

      const a = new Vector(1, 3, -5);
      const b = new Vector(4, -2);

      a.lerp(b, 0); // returns a clone of Vector a
      a.lerp(b, 1); // returns a clone of Vector b

      const mid = a.lerp(b, 0.5); // returns a Vector halfway between a and b
      mid.xyz; // returns [2.5, 0.5, -2.5]

      Parameters

      • v: Vector

        The other vector.

      • t: number

        The amount by which to interpolate (usually between 0 and 1, although it can be any number).

      Returns Vector

      • The new, interpolated vector.

      0.2.4

    • Multiply this Vector by a scalar number. This does mutate the Vector that calls this method.

      const v = new Vector(1, 2);
      v.multiplyScalar(5);
      v.xy; // returns [5, 10]

      v.multiplyScalar(-0.5);
      v.xy; // returns [-2.5, -5]

      Parameters

      • n: number

      Returns this

      0.1.0

    • Normalize the Vector (turn it into a Vector with length = 1). Has no effect on the 0 Vector. This does mutate the Vector that calls this method.

      const v = new Vector(5, 3, -1);
      v.normalize();
      v.length(); // returns 1

      Returns this

      0.1.0

    • Rotate the Vector about the z-axis by angle radians (updating its x and y values). This does mutate the Vector that calls this method.

      const v = new Vector(1, 0);
      v.rotateZ(Math.PI / 2); // rotate by PI / 2 radians = 90 degrees

      v.xy; // returns [0, 1]

      Parameters

      • angle: number

      Returns this

      0.2.2

    • Set the value at a given index. If the index is greater than the dimension of this Vector, the dimension will be increased to the dimensionality implied by the index.

      Parameters

      • i: number | "b" | "x" | "y" | "z" | "w" | "r" | "g" | "a"

        The numerical index (0-based) or lowercase string value (e.g. "x") to set.

      • value: number

        The value to set at this index/position.

        const vector = new Vector();
        vector.set(0, 10);
        vector.set('y', 2);
        vector.set(2, 4);

        vector.xyz; // [10, 2, 4]

      Returns this

      0.1.0