length
Function
Returns the length (magnitude) of a vector, computed as the square root of the sum of squared components.
The signature and the sentence under each name are the compiler's own text at commit 26de7be8.
Syntax
declare function length<V extends vec2 | vec3 | vec4>(a0: V): (f32)declare function length<P0 extends number>(a0: P0): ([P0] extends [boolean] ? bool : typeof f32Tag extends keyof P0 ? f32 : typeof i32Tag extends keyof P0 ? i32 : typeof u32Tag extends keyof P0 ? u32 : typeof f64Tag extends keyof P0 ? f64 : number)declare function length<T extends Numeric | Vec64Any>(a0: T): T extends Vec64Any ? f64 : numberA number in a parameter or a return position is the scalar slot. The ambient file declares a GPU scalar as a branded number whose brand is optional, so a literal and any branded scalar both fill it.
type f32 = number & { readonly [f32Tag]?: true }
A declaration you write still needs a width, and a bare number on a field or a parameter is refused; the TypeScript constructs page carries that row with the compiler's own message.
A signature may name a type the ambient file declares for its own use. These are those declarations.
Vec64Anytype Vec64Any = vec2f64 | vec3f64 | vec4f64Numerictype Numeric = number | vec2 | vec3 | vec4 | vec2i | vec3i | vec4i | vec2u | vec3u | vec4u
Parameters
A parameter named by position (a0, a1) carries a name the ambient file generates. A call passes its arguments in order and names none of them.
-
a0VP0T
Return value
(f32)([P0] extends [boolean] ? bool : typeof f32Tag extends keyof P0 ? f32 : typeof i32Tag extends keyof P0 ? i32 : typeof u32Tag extends keyof P0 ? u32 : typeof f64Tag extends keyof P0 ? f64 : number)T extends Vec64Any ? f64 : number
Description
Targets
- WGSL
-
length(a) - GLSL ES 3.00
-
length(a)
Examples
hillshade.tsfp64-loran.tsfp64-rtc.tsdiscard-cutout.tsdomain-warp.tsraymarch-sphere.tsraymarch-boxes.tstunnel.tstruchet.tskaleidoscope.tsfp64-clock.tstwin-structs.shade.tsstorage-texture.shade.tscube-env.shade.tscube-array-gather.shade.tsmsaa-resolve.shade.tsblock-scope.shade.tscutout.shade.tsclosures.shade.tshigher-order.shade.tsinferred-returns.shade.tsloops-over-data.shade.tscapsule-corp-namek-class.shade.tsorbit-inout.shade.tsparticle-step.shade.tsshape-inheritance.shade.tsmixin-surface.shade.tsclass-syntax.shade.tsclass-builder.shade.tsclass-parts.shade.tsrt-renderer-class.shade.tshillshade-twin.shade.tsdomain-warp-twin.shade.tstunnel-twin.shade.tskaleidoscope-twin.shade.tsfp64-loran-twin.shade.tsfp64-rtc-twin.shade.tsfp64-clock-twin.shade.ts