rhodonite
    Preparing search index...

    Class Vector3

    Immutable 3D vector class with 32-bit float components. This is the standard precision implementation for most 3D graphics operations. Provides efficient vector operations for position, direction, and other 3D calculations.

    const v1 = Vector3.fromCopy3(1, 2, 3);
    const v2 = Vector3.fromCopy3(4, 5, 6);
    const sum = Vector3.add(v1, v2);

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    _v: TypedArray = ...

    Internal typed array storage for vector components

    Accessors

    • get bytesPerComponent(): number

      Gets the number of bytes per component.

      Returns number

      The number of bytes per component (4 for Float32Array, 8 for Float64Array)

    • get className(): string

      Gets the class name.

      Returns string

      The class name "Vector3"

    • get glslStrAsFloat(): string

      Gets the GLSL representation of this vector as a float vec3.

      Returns string

      A string representation suitable for GLSL shaders

    • get glslStrAsInt(): string

      Gets the GLSL representation of this vector as an integer ivec3.

      Returns string

      A string representation suitable for GLSL shaders with integer components

    • get glslStrAsUint(): string

      Gets the GLSL string representation of the vector as unsigned integer values.

      Returns string

      GLSL-formatted string for unsigned integer values with 'u' suffix

      Error - Must be implemented by subclasses

    • get w(): number

      Gets the W component of the vector (always returns 1 for homogeneous coordinates).

      Returns number

      Always returns 1

    • get wgslStrAsFloat(): string

      Gets the WGSL representation of this vector as a float vec3f.

      Returns string

      A string representation suitable for WGSL shaders

    • get wgslStrAsInt(): string

      Gets the WGSL representation of this vector as an integer vec3i.

      Returns string

      A string representation suitable for WGSL shaders with integer components

    • get wgslStrAsUint(): string

      Gets the WGSL string representation of the vector as unsigned integer values.

      Returns string

      WGSL-formatted string for unsigned integer values with 'u' suffix

      Error - Must be implemented by subclasses

    • get x(): number

      Gets the X component of the vector.

      Returns number

      The X component value

    • get y(): number

      Gets the Y component of the vector.

      Returns number

      The Y component value

    • get z(): number

      Gets the Z component of the vector.

      Returns number

      The Z component value

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

      Gets the composition type for this vector class.

      Returns CompositionTypeClass<"VEC3">

      The composition type (Vec3)

    Methods

    • Gets the component at the specified index.

      Parameters

      • i: number

        The index (0 for x, 1 for y, 2 for z)

      Returns number

      The component value at the specified index

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

      Parameters

      • vec: IVector3

        The vector to compare with

      • delta: number = Number.EPSILON

        The tolerance for comparison (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

    • Calculates the squared length of the vector. This is more efficient than calculating the actual length when only comparison is needed.

      Returns number

      The squared length of the vector

    • 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

    • Creates a vector from an ArrayBuffer.

      Parameters

      • arrayBuffer: ArrayBuffer

        The ArrayBuffer containing the vector data

      Returns Vector3

      A new Vector3 instance

    • Creates a vector with all components set to the same value.

      Parameters

      • val: number

        The value to set for all components

      Returns Vector3

      A new Vector3 instance

    • Creates a vector from individual x, y, z components.

      Parameters

      • x: number

        The x component

      • y: number

        The y component

      • z: number

        The z component

      Returns Vector3

      A new Vector3 instance

    • Creates a vector from an array (takes first 3 elements).

      Parameters

      • array: number[]

        The array containing the components

      Returns Vector3

      A new Vector3 instance

    • Creates a vector by copying data from a Float32Array.

      Parameters

      • float32Array: Float32Array

        The Float32Array to copy from

      Returns Vector3

      A new Vector3 instance

    • Creates a vector from a Float32Array.

      Parameters

      • float32Array: Float32Array

        The Float32Array containing the vector data

      Returns Vector3

      A new Vector3 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: IVector3

        The vector to calculate squared length for

      Returns number

      The squared length of the vector