Luxar Viewer API Documentation - v2026.9.22
    Preparing search index...

    Interface TSLLineJoinArgs

    Everything tslLineJoin needs from its calling vertex stage.

    interface TSLLineJoinArgs {
        isOrtho: boolean;
        uLineTex: any;
        lineTexW: any;
        uResolution: any;
        uPixelRatio: any;
        nearCull: any;
        selfSlot: any;
        atEnd: boolean;
        reachesVertex: any;
        jointCode: any;
        sharedNdc: any;
        lineDir: any;
        pixelLen: any;
        joinPixelWidth: any;
        selfFarDepth: any;
        cornerOffset: any;
        capValue: any;
    }
    Index
    isOrtho: boolean

    Build-time camera mode — the line graphs' config.isOrtho.

    uLineTex: any

    The RGBA32F line texture node (6 texels/segment).

    lineTexW: any

    Its width in texels — already .toVar()ed by the caller's prologue.

    uResolution: any

    Viewport resolution uniform node.

    uPixelRatio: any

    Physical render-target pixels per CSS pixel.

    nearCull: any

    Scene-relative near-cull distance (already floored).

    selfSlot: any

    This segment's own STORAGE slot, as an int node (self-reference guard).

    atEnd: boolean

    Which end of the segment this call is for — a plain JS boolean, not a node: the caller evaluates BOTH ends unconditionally (see below), so the direction ternaries fold at graph-build time instead of emitting a select() that would materialise both arms per vertex.

    reachesVertex: any

    False when near-clipping moved this endpoint off its source vertex.

    jointCode: any

    texel4.y at the start vertex, texel4.z at the end one.

    sharedNdc: any

    NDC of the shared vertex (ndcStart / ndcEnd).

    lineDir: any

    This segment's unit direction in pixel space.

    pixelLen: any
    joinPixelWidth: any

    THIS END's clamped pixel half-width — segment-constant, NOT the calling vertex's. Both width-dependent decisions below (the 2 px gate and the axial-overshoot guard) feed a flat cap varying, so a per-vertex width would let the t=0 and t=1 corners of a tapered or foreshortened segment answer differently and hand the cap to the provoking vertex alone (WGSL provokes first, WebGL last — so the backends would disagree too).

    selfFarDepth: any

    View-space depth (-mvZ) of THIS segment's far endpoint, i.e. the one that is NOT the shared vertex, taken from the UNCLIPPED endpoint depths.

    cornerOffset: any

    OUT — a vec2 .toVar() the caller pre-set to perpendicular * joinPixelWidth. Overwritten with the miter point only where the join actually applies, so every skipped path keeps the shipped expansion.

    capValue: any

    OUT — a float .toVar() the caller pre-set to -1.0 ("no partner reached, keep the code-implied cap"). Set to the screen-space suppression wherever a partner IS reached.