Engine API Reference - v2.6.1
    Preparing search index...

    Class Vec3

    3-dimensional vector.

    Index

    Constructors

    • Creates a new Vec3 object.

      Parameters

      • Optionalx: number | number[] = 0

        The x value. Defaults to 0. If x is an array of length 3, the array will be used to populate all components.

      • Optionaly: number = 0

        The y value. Defaults to 0.

      • Optionalz: number = 0

        The z value. Defaults to 0.

      Returns Vec3

      const v = new pc.Vec3(1, 2, 3);
      

    Properties

    x: number

    The first component of the vector.

    y: number

    The second component of the vector.

    z: number

    The third component of the vector.

    BACK: Vec3 = ...

    A constant vector set to [0, 0, 1].

    DOWN: Vec3 = ...

    A constant vector set to [0, -1, 0].

    FORWARD: Vec3 = ...

    A constant vector set to [0, 0, -1].

    HALF: Vec3 = ...

    A constant vector set to [0.5, 0.5, 0.5].

    LEFT: Vec3 = ...

    A constant vector set to [-1, 0, 0].

    ONE: Vec3 = ...

    A constant vector set to [1, 1, 1].

    RIGHT: Vec3 = ...

    A constant vector set to [1, 0, 0].

    UP: Vec3 = ...

    A constant vector set to [0, 1, 0].

    ZERO: Vec3 = ...

    A constant vector set to [0, 0, 0].

    Methods

    • Adds a 3-dimensional vector to another in place.

      Parameters

      • rhs: Vec3

        The vector to add to the specified vector.

      Returns Vec3

      Self for chaining.

      const a = new pc.Vec3(10, 10, 10);
      const b = new pc.Vec3(20, 20, 20);

      a.add(b);

      // Outputs [30, 30, 30]
      console.log("The result of the addition is: " + a.toString());
    • Adds two 3-dimensional vectors together and returns the result.

      Parameters

      • lhs: Vec3

        The first vector operand for the addition.

      • rhs: Vec3

        The second vector operand for the addition.

      Returns Vec3

      Self for chaining.

      const a = new pc.Vec3(10, 10, 10);
      const b = new pc.Vec3(20, 20, 20);
      const r = new pc.Vec3();

      r.add2(a, b);
      // Outputs [30, 30, 30]

      console.log("The result of the addition is: " + r.toString());
    • Adds a number to each element of a vector.

      Parameters

      • scalar: number

        The number to add.

      Returns Vec3

      Self for chaining.

      const vec = new pc.Vec3(3, 4, 5);

      vec.addScalar(2);

      // Outputs [5, 6, 7]
      console.log("The result of the addition is: " + vec.toString());
    • Adds a 3-dimensional vector scaled by scalar value. Does not modify the vector being added.

      Parameters

      • rhs: Vec3

        The vector to add to the specified vector.

      • scalar: number

        The number to multiply the added vector with.

      Returns Vec3

      Self for chaining.

      const vec = new pc.Vec3(1, 2, 3);

      vec.addScaled(pc.Vec3.UP, 2);

      // Outputs [1, 4, 3]
      console.log("The result of the addition is: " + vec.toString());
    • Each element is rounded up to the next largest integer.

      Parameters

      • Optionalsrc: Vec3 = ...

        The vector to ceil. If not set, the operation is done in place.

      Returns Vec3

      Self for chaining.

    • Returns an identical copy of the specified 3-dimensional vector.

      Returns Vec3

      A 3-dimensional vector containing the result of the cloning.

      const v = new pc.Vec3(10, 20, 30);
      const vclone = v.clone();
      console.log("The result of the cloning is: " + vclone.toString());
    • Copies the contents of a source 3-dimensional vector to a destination 3-dimensional vector.

      Parameters

      • rhs: Vec3

        A vector to copy to the specified vector.

      Returns Vec3

      Self for chaining.

      const src = new pc.Vec3(10, 20, 30);
      const dst = new pc.Vec3();

      dst.copy(src);

      console.log("The two vectors are " + (dst.equals(src) ? "equal" : "different"));
    • Returns the result of a cross product operation performed on the two specified 3-dimensional vectors.

      Parameters

      • lhs: Vec3

        The first 3-dimensional vector operand of the cross product.

      • rhs: Vec3

        The second 3-dimensional vector operand of the cross product.

      Returns Vec3

      Self for chaining.

      const back = new pc.Vec3().cross(pc.Vec3.RIGHT, pc.Vec3.UP);

      // Prints the Z axis (i.e. [0, 0, 1])
      console.log("The result of the cross product is: " + back.toString());
    • Returns the distance between the two specified 3-dimensional vectors.

      Parameters

      • rhs: Vec3

        The second 3-dimensional vector to test.

      Returns number

      The distance between the two vectors.

      const v1 = new pc.Vec3(5, 10, 20);
      const v2 = new pc.Vec3(10, 20, 40);
      const d = v1.distance(v2);
      console.log("The distance between v1 and v2 is: " + d);
    • Divides a 3-dimensional vector by another in place.

      Parameters

      • rhs: Vec3

        The vector to divide the specified vector by.

      Returns Vec3

      Self for chaining.

      const a = new pc.Vec3(4, 9, 16);
      const b = new pc.Vec3(2, 3, 4);

      a.div(b);

      // Outputs [2, 3, 4]
      console.log("The result of the division is: " + a.toString());
    • Divides one 3-dimensional vector by another and writes the result to the specified vector.

      Parameters

      • lhs: Vec3

        The dividend vector (the vector being divided).

      • rhs: Vec3

        The divisor vector (the vector dividing the dividend).

      Returns Vec3

      Self for chaining.

      const a = new pc.Vec3(4, 9, 16);
      const b = new pc.Vec3(2, 3, 4);
      const r = new pc.Vec3();

      r.div2(a, b);
      // Outputs [2, 3, 4]

      console.log("The result of the division is: " + r.toString());
    • Divides each element of a vector by a number.

      Parameters

      • scalar: number

        The number to divide by.

      Returns Vec3

      Self for chaining.

      const vec = new pc.Vec3(3, 6, 9);

      vec.divScalar(3);

      // Outputs [1, 2, 3]
      console.log("The result of the division is: " + vec.toString());
    • Returns the result of a dot product operation performed on the two specified 3-dimensional vectors.

      Parameters

      • rhs: Vec3

        The second 3-dimensional vector operand of the dot product.

      Returns number

      The result of the dot product operation.

      const v1 = new pc.Vec3(5, 10, 20);
      const v2 = new pc.Vec3(10, 20, 40);
      const v1dotv2 = v1.dot(v2);
      console.log("The result of the dot product is: " + v1dotv2);
    • Reports whether two vectors are equal.

      Parameters

      • rhs: Vec3

        The vector to compare to the specified vector.

      Returns boolean

      True if the vectors are equal and false otherwise.

      const a = new pc.Vec3(1, 2, 3);
      const b = new pc.Vec3(4, 5, 6);
      console.log("The two vectors are " + (a.equals(b) ? "equal" : "different"));
    • Reports whether two vectors are equal using an absolute error tolerance.

      Parameters

      • rhs: Vec3

        The vector to be compared against.

      • Optionalepsilon: number = 1e-6

        The maximum difference between each component of the two vectors. Defaults to 1e-6.

      Returns boolean

      True if the vectors are equal and false otherwise.

      const a = new pc.Vec3();
      const b = new pc.Vec3();
      console.log("The two vectors are approximately " + (a.equalsApprox(b, 1e-9) ? "equal" : "different"));
    • Each element is set to the largest integer less than or equal to its value.

      Parameters

      • Optionalsrc: Vec3 = ...

        The vector to floor. If not set, the operation is done in place.

      Returns Vec3

      Self for chaining.

    • Set the values of the vector from an array.

      Parameters

      • arr: number[] | ArrayBufferView<ArrayBufferLike>

        The array to set the vector values from.

      • Optionaloffset: number = 0

        The zero-based index at which to start copying elements from the array. Default is 0.

      Returns Vec3

      Self for chaining.

      const v = new pc.Vec3();
      v.fromArray([20, 10, 5]);
      // v is set to [20, 10, 5]
    • Returns the magnitude of the specified 3-dimensional vector.

      Returns number

      The magnitude of the specified 3-dimensional vector.

      const vec = new pc.Vec3(3, 4, 0);
      const len = vec.length();
      // Outputs 5
      console.log("The length of the vector is: " + len);
    • Returns the magnitude squared of the specified 3-dimensional vector.

      Returns number

      The magnitude of the specified 3-dimensional vector.

      const vec = new pc.Vec3(3, 4, 0);
      const len = vec.lengthSq();
      // Outputs 25
      console.log("The length squared of the vector is: " + len);
    • Returns the result of a linear interpolation between two specified 3-dimensional vectors.

      Parameters

      • lhs: Vec3

        The 3-dimensional to interpolate from.

      • rhs: Vec3

        The 3-dimensional to interpolate to.

      • alpha: number

        The value controlling the point of interpolation. Between 0 and 1, the linear interpolant will occur on a straight line between lhs and rhs. Outside of this range, the linear interpolant will occur on a ray extrapolated from this line.

      Returns Vec3

      Self for chaining.

      const a = new pc.Vec3(0, 0, 0);
      const b = new pc.Vec3(10, 10, 10);
      const r = new pc.Vec3();

      r.lerp(a, b, 0); // r is equal to a
      r.lerp(a, b, 0.5); // r is 5, 5, 5
      r.lerp(a, b, 1); // r is equal to b
    • Each element is assigned a value from rhs parameter if it is larger.

      Parameters

      • rhs: Vec3

        The 3-dimensional vector used as the source of elements to compare to.

      Returns Vec3

      Self for chaining.

    • Each element is assigned a value from rhs parameter if it is smaller.

      Parameters

      • rhs: Vec3

        The 3-dimensional vector used as the source of elements to compare to.

      Returns Vec3

      Self for chaining.

    • Multiplies a 3-dimensional vector to another in place.

      Parameters

      • rhs: Vec3

        The 3-dimensional vector used as the second multiplicand of the operation.

      Returns Vec3

      Self for chaining.

      const a = new pc.Vec3(2, 3, 4);
      const b = new pc.Vec3(4, 5, 6);

      a.mul(b);

      // Outputs [8, 15, 24]
      console.log("The result of the multiplication is: " + a.toString());
    • Returns the result of multiplying the specified 3-dimensional vectors together.

      Parameters

      • lhs: Vec3

        The 3-dimensional vector used as the first multiplicand of the operation.

      • rhs: Vec3

        The 3-dimensional vector used as the second multiplicand of the operation.

      Returns Vec3

      Self for chaining.

      const a = new pc.Vec3(2, 3, 4);
      const b = new pc.Vec3(4, 5, 6);
      const r = new pc.Vec3();

      r.mul2(a, b);

      // Outputs [8, 15, 24]
      console.log("The result of the multiplication is: " + r.toString());
    • Multiplies each element of a vector by a number.

      Parameters

      • scalar: number

        The number to multiply by.

      Returns Vec3

      Self for chaining.

      const vec = new pc.Vec3(3, 6, 9);

      vec.mulScalar(3);

      // Outputs [9, 18, 27]
      console.log("The result of the multiplication is: " + vec.toString());
    • Returns this 3-dimensional vector converted to a unit vector in place. If the vector has a length of zero, the vector's elements will be set to zero.

      Parameters

      • Optionalsrc: Vec3 = ...

        The vector to normalize. If not set, the operation is done in place.

      Returns Vec3

      Self for chaining.

      const v = new pc.Vec3(25, 0, 0);

      v.normalize();

      // Outputs [1, 0, 0]
      console.log("The result of the vector normalization is: " + v.toString());
    • Projects this 3-dimensional vector onto the specified vector.

      Parameters

      • rhs: Vec3

        The vector onto which the original vector will be projected on.

      Returns Vec3

      Self for chaining.

      const v = new pc.Vec3(5, 5, 5);
      const normal = new pc.Vec3(1, 0, 0);

      v.project(normal);

      // Outputs [5, 0, 0]
      console.log("The result of the vector projection is: " + v.toString());
    • Each element is rounded up or down to the nearest integer.

      Parameters

      • Optionalsrc: Vec3 = ...

        The vector to round. If not set, the operation is done in place.

      Returns Vec3

      Self for chaining.

    • Sets the specified 3-dimensional vector to the supplied numerical values.

      Parameters

      • x: number

        The value to set on the first component of the vector.

      • y: number

        The value to set on the second component of the vector.

      • z: number

        The value to set on the third component of the vector.

      Returns Vec3

      Self for chaining.

      const v = new pc.Vec3();
      v.set(5, 10, 20);

      // Outputs [5, 10, 20]
      console.log("The result of the vector set is: " + v.toString());
    • Subtracts a 3-dimensional vector from another in place.

      Parameters

      • rhs: Vec3

        The vector to subtract from the specified vector.

      Returns Vec3

      Self for chaining.

      const a = new pc.Vec3(10, 10, 10);
      const b = new pc.Vec3(20, 20, 20);

      a.sub(b);

      // Outputs [-10, -10, -10]
      console.log("The result of the subtraction is: " + a.toString());
    • Subtracts two 3-dimensional vectors from one another and returns the result.

      Parameters

      • lhs: Vec3

        The first vector operand for the subtraction.

      • rhs: Vec3

        The second vector operand for the subtraction.

      Returns Vec3

      Self for chaining.

      const a = new pc.Vec3(10, 10, 10);
      const b = new pc.Vec3(20, 20, 20);
      const r = new pc.Vec3();

      r.sub2(a, b);

      // Outputs [-10, -10, -10]
      console.log("The result of the subtraction is: " + r.toString());
    • Subtracts a number from each element of a vector.

      Parameters

      • scalar: number

        The number to subtract.

      Returns Vec3

      Self for chaining.

      const vec = new pc.Vec3(3, 4, 5);

      vec.subScalar(2);

      // Outputs [1, 2, 3]
      console.log("The result of the subtraction is: " + vec.toString());
    • Converts the vector to an array.

      Parameters

      • Optionalarr: number[] | ArrayBufferView<ArrayBufferLike> = []

        The array to populate with the color components. If not specified, a new array is created.

      • Optionaloffset: number = 0

        The zero-based index at which to start copying elements to the array. Default is 0.

      Returns number[] | ArrayBufferView<ArrayBufferLike>

      The vector as an array.

      const v = new pc.Vec3(20, 10, 5);
      // Outputs [20, 10, 5]
      console.log(v.toArray());
    • Converts the vector to string form.

      Returns string

      The vector in string form.

      const v = new pc.Vec3(20, 10, 5);
      // Outputs [20, 10, 5]
      console.log(v.toString());