Class Scalar_<T>Internal

Abstract base class for scalar values using typed arrays. Provides common functionality for both 32-bit and 64-bit floating-point scalar implementations.

Type Parameters

Hierarchy (view full)

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 element

  • get className(): string
  • Gets the class name of this vector instance.

    Returns string

    The constructor name of the class

  • get glslStrAsFloat(): string
  • Gets the scalar value as a GLSL-compatible float string.

    Returns string

    The scalar value formatted as a GLSL float literal

  • get glslStrAsInt(): string
  • Gets the scalar value as a GLSL-compatible integer string.

    Returns string

    The scalar value formatted as a GLSL integer literal

  • get wgslStrAsFloat(): string
  • Gets the scalar value as a WGSL-compatible float string.

    Returns string

    The scalar value formatted as a WGSL float literal

  • get wgslStrAsInt(): string
  • Gets the scalar value as a WGSL-compatible integer string.

    Returns string

    The scalar value formatted as a WGSL integer literal

  • get x(): number
  • Gets the scalar value (alias for x component).

    Returns number

    The scalar value

  • get compositionType(): CompositionTypeClass<"SCALAR">
  • Gets the composition type for scalar values.

    Returns CompositionTypeClass<"SCALAR">

    The scalar composition type

Methods

  • Calculates the dot product between this vector and another vector.

    Parameters

    • vec: IVector

      The vector to calculate dot product with

    Returns number

    The dot product result

    Error - Must be implemented by subclasses

  • Gets the scalar value wrapped in an array.

    Returns number[]

    An array containing the scalar value

  • Performs approximate equality comparison with another scalar within a tolerance.

    Parameters

    • scalar: Scalar_<T>

      The scalar to compare with

    • delta: number = Number.EPSILON

      The tolerance for comparison (default: Number.EPSILON)

    Returns boolean

    True if the scalars are equal within the specified tolerance

  • Performs strict equality comparison with another scalar. Uses exact floating-point comparison without tolerance.

    Parameters

    • scalar: Scalar_<T>

      The scalar to compare with

    Returns boolean

    True if the scalars are exactly 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 length() when only relative comparisons are needed.

    Returns number

    The squared length of the vector

    Error - Must be implemented by subclasses

  • Converts the vector to an approximate string representation. Useful for debugging when exact precision is not required.

    Returns string

    Approximate string representation of the vector

    Error - Must be implemented by subclasses

  • 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