IFClite TypeScript API
    Preparing search index...

    Interface MagneticSnapResult

    interface MagneticSnapResult {
        edgeLock: {
            cornerValence: number;
            edge: { v0: Vec3; v1: Vec3 } | null;
            edgeT: number;
            isCorner: boolean;
            meshExpressId: number | null;
            shouldLock: boolean;
            shouldRelease: boolean;
        };
        snapTarget: SnapTarget
        | null;
    }
    Index
    edgeLock: {
        cornerValence: number;
        edge: { v0: Vec3; v1: Vec3 } | null;
        edgeT: number;
        isCorner: boolean;
        meshExpressId: number | null;
        shouldLock: boolean;
        shouldRelease: boolean;
    }

    Type Declaration

    • cornerValence: number
    • edge: { v0: Vec3; v1: Vec3 } | null
    • edgeT: number
    • isCorner: boolean

      At a corner (vertex where edges meet) - and that corner is one of the locked run's two ENDPOINTS. An interior junction of a merged run never sets this, even though it does produce a VERTEX snap target: the viewer's ring rendering encodes the corner position as edgeT < 0.5, which can only name a run end. Junction rings are deferred until that consumer (owned by PR #2641) can carry a corner position.

    • meshExpressId: number | null
    • shouldLock: boolean
    • shouldRelease: boolean
    snapTarget: SnapTarget | null