rhodonite
    Preparing search index...

    Class MutableVector4d

    Mutable 4D vector class with 64-bit float components. Provides higher precision arithmetic compared to MutableVector4.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    _v: TypedArray = ...

    Internal typed array storage for vector components

    Accessors

    • get _updateCount(): number

      Gets the update counter value. This counter is incremented whenever the vector is modified.

      Returns number

      The current update count

    • get bytesPerComponent(): number

      Gets the number of bytes per component in the underlying typed array.

      Returns number

      The byte size per component (4 for Float32Array, 8 for Float64Array)

    • get className(): string

      Gets the class name of this vector type.

      Returns string

      The string "Vector4"

    • get glslStrAsFloat(): string

      Converts the vector to a GLSL vec4 string representation with float precision.

      Returns string

      A GLSL-compatible vec4 string (e.g., "vec4(1.0, 2.0, 3.0, 4.0)")

    • get glslStrAsInt(): string

      Converts the vector to a GLSL ivec4 string representation with integer values.

      Returns string

      A GLSL-compatible ivec4 string (e.g., "ivec4(1, 2, 3, 4)")

    • get glslStrAsUint(): string

      Converts the vector to a GLSL uvec4 string representation with unsigned integer values.

      Returns string

      A GLSL-compatible uvec4 string (e.g., "uvec4(1u, 2u, 3u, 4u)")

    • get w(): number

      Gets the w component of the vector.

      Returns number

      The w component value

    • set w(w: number): void

      Sets the w component of the vector. Automatically increments the update counter for change tracking.

      Parameters

      • w: number

      Returns void

    • get wgslStrAsFloat(): string

      Converts the vector to a WGSL vec4f string representation with float precision.

      Returns string

      A WGSL-compatible vec4f string (e.g., "vec4f(1.0, 2.0, 3.0, 4.0)")

    • get wgslStrAsInt(): string

      Converts the vector to a WGSL vec4i string representation with integer values.

      Returns string

      A WGSL-compatible vec4i string (e.g., "vec4i(1, 2, 3, 4)")

    • get wgslStrAsUint(): string

      Converts the vector to a WGSL vec4u string representation with unsigned integer values.

      Returns string

      A WGSL-compatible vec4u string (e.g., "vec4u(1u, 2u, 3u, 4u)")

    • get x(): number

      Gets the x component of the vector.

      Returns number

      The x component value

    • set x(x: number): void

      Sets the x component of the vector. Automatically increments the update counter for change tracking.

      Parameters

      • x: number

      Returns void

    • get y(): number

      Gets the y component of the vector.

      Returns number

      The y component value

    • set y(y: number): void

      Sets the y component of the vector. Automatically increments the update counter for change tracking.

      Parameters

      • y: number

      Returns void

    • get z(): number

      Gets the z component of the vector.

      Returns number

      The z component value

    • set z(z: number): void

      Sets the z component of the vector. Automatically increments the update counter for change tracking.

      Parameters

      • z: number

      Returns void

    • get compositionType(): CompositionTypeClass<"VEC4">

      Gets the composition type identifier for this vector type.

      Returns CompositionTypeClass<"VEC4">

      The CompositionType.Vec4 identifier

    Methods

    • Gets the component value at the specified index.

      Parameters

      • i: number

        The index (0=x, 1=y, 2=z, 3=w)

      Returns number

      The component value at the specified index

    • Calculates the dot product between this vector and another vector. The dot product is the sum of the products of corresponding components.

      Parameters

      • vec: IVector4

        The vector to calculate dot product with

      Returns number

      The dot product of the two vectors

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

      Parameters

      • vec: IVector4

        The vector to compare with

      • delta: number = Number.EPSILON

        The tolerance value for comparison (default: Number.EPSILON)

      Returns boolean

      True if the 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

    • Converts the vector to an approximately formatted string representation with financial precision. Each component is formatted to a fixed number of decimal places.

      Returns string

      A string with space-separated components followed by a newline

    • 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 a vector by a scalar value and stores the result in the output vector. If the divisor is zero, the result components will be set to Infinity and an error will be logged. This method modifies the output vector in-place for better performance.

      Parameters

      • vec: IVector4

        The vector to divide

      • value: number

        The scalar value to divide by

      • out: IMutableVector4

        The output vector to store the result (will be modified)

      Returns IMutableVector4

      The modified output vector with each component divided by the scalar

    • Divides the left vector by the right vector component-wise and stores the result in the output vector. If any component of the right vector is zero, the corresponding result component will be set to Infinity. This method modifies the output vector in-place for better performance.

      Parameters

      • l_vec: IVector4

        The left operand vector (dividend)

      • r_vec: IVector4

        The right operand vector (divisor)

      • out: IMutableVector4

        The output vector to store the result (will be modified)

      Returns IMutableVector4

      The modified output vector with component-wise division result

    • Creates a new MutableVector4d from individual component values with 64-bit precision.

      Parameters

      • x: number

        The x component

      • y: number

        The y component

      • z: number

        The z component

      • w: number

        The w component

      Returns MutableVector4d

      A new MutableVector4d instance