types/learning.types.ts

types/learning.types.ts is a file in Bane's Lab Site. 93 lines of code and 16 definitions.

export interface LearningStop {
    readonly id: string;
    readonly label: string;
    readonly path: string;
    readonly requires: readonly string[];
}

export interface LearningBlock {
    readonly code: string;
    readonly label: string;
    readonly owner: string;
    readonly stops: readonly LearningStop[];
}

export interface LaidStop {
    readonly cx: number;
    readonly cy: number;
    readonly height: number;
    readonly id: string;
    readonly path: string;
    readonly requires: readonly string[];
    readonly rows: readonly string[];
    readonly width: number;
    readonly x: number;
    readonly y: number;
}

export interface LaidBlock {
    readonly accent: string;
    readonly code: string;
    readonly cx: number;
    readonly cy: number;
    readonly height: number;
    readonly icon: string;
    readonly label: string;
    readonly owner: string;
    readonly stops: readonly LaidStop[];
    readonly width: number;
    readonly x: number;
    readonly y: number;
}

export interface IconPath {
    readonly d: string;
    readonly evenOdd: boolean;
}

export interface LearningModel {
    readonly blocks: readonly LaidBlock[];
    readonly height: number;
    readonly width: number;
}

export interface LearningPoint {
    readonly x: number;
    readonly y: number;
}

export interface PlacedStop extends LaidStop {
    readonly block: LaidBlock;
    readonly node: Element;
}

export interface LearningView {
    readonly stops: readonly PlacedStop[];
    readonly trace: Element;
    readonly vector: Element;
}

export interface CameraFit {
    readonly zoom: number;
    readonly lift: number;
}

export interface Geometry {
    readonly getPointAtLength: (at: number) => LearningPoint;
    readonly getTotalLength: () => number;
}

export interface LearningSample {
    readonly at: number;
    readonly point: LearningPoint;
}

export interface Framed {
    readonly box: Record<string, unknown>;
    readonly geometry: Geometry;
    readonly style: Record<string, unknown>;
}

export interface LearningMark {
    readonly at: number;
    lit: boolean;
    readonly stop: PlacedStop;
}

export interface LearningSpan {
    readonly fast: boolean;
    readonly from: number;
    readonly to: number;
}

export interface LearningGrid {
    readonly blocked: Uint8Array;
    readonly tall: number;
    readonly taken: Uint8Array;
    readonly wide: number;
}