indicatrix-cut 0.7.2

Desktop faceting-design editor: library browsing, spectral 3D rendering, material retargeting, and a solid inspection view.
export global BatchModel {
    in-out property <bool> preview_visible: false;
    in property <bool> preview_confirming: false;
    in property <int> preview_offer_count: 0;
    in property <[int]> preview_offer_ids: [];
    in property <bool> preview_batch_running: false;
    in property <int> preview_design_index: 0;
    in property <int> preview_design_total: 0;
    // Remaining-time text ("about 6 min left" / "estimating..." / ""), from
    // `gui::progress_eta::batch_eta_label`.
    in property <string> preview_eta: "";
    in property <int> preview_local_active: 0;
    in property <int> preview_local_lane_total: 0;
    // The title of the picture a remote dispatcher started most recently (or a pause
    // notice while the remote is being waited out). `preview_remote_active` is whether
    // any remote dispatcher is running, and `preview_remote_in_flight` how many pictures
    // are on the remote right now -- up to `AppSettings::remote_batch_lanes`.
    in property <string> preview_remote_title: "";
    in property <bool> preview_remote_active: false;
    in property <int> preview_remote_in_flight: 0;
    in property <bool> preview_done: false;
    in property <string> preview_summary: "";
    // The confirm step offers to REGENERATE designs that may already have previews
    // (Library menu, filter panel) rather than to fill in missing ones.
    in property <bool> preview_offer_regenerate: false;
    // The regenerate confirm step's scope choice (`gui::batch::regenerate_all`): the
    // ids behind "Missing or outdated only", their count (-1 while the scan runs), the
    // two pill labels, and whether that pill is the chosen one (the default).
    in property <[int]> preview_offer_missing_ids: [];
    in property <int> preview_offer_missing_count: -1;
    in property <string> preview_offer_missing_label: "";
    in property <string> preview_offer_all_label: "";
    in-out property <bool> preview_offer_missing_only: true;
    // The confirm step was opened by an import: it then also offers fast solid previews
    // and a "remember my choice" box. `preview_import_choice` mirrors
    // `AppSettings::import_preview_choice` (0 ask, 1 full, 2 solid, 3 skip).
    in property <bool> preview_offer_from_import: false;
    in-out property <bool> preview_remember_choice: false;
    in-out property <int> preview_import_choice: 0;

    callback preview_cancel();
    callback preview_close();
    callback preview_dismiss_offer();
    callback preview_generate_confirmed();
    callback preview_generate_solid_confirmed();

    in-out property <bool> tilt_visible: false;
    in property <bool> tilt_confirming: false;
    in property <int> tilt_offer_count: 0;
    in property <[int]> tilt_offer_ids: [];
    in property <bool> tilt_batch_running: false;
    in property <int> tilt_design_index: 0;
    in property <int> tilt_design_total: 0;
    // Same remaining-time text as `preview_eta`.
    in property <string> tilt_eta: "";
    in property <int> tilt_local_active: 0;
    in property <int> tilt_local_lane_total: 0;
    // Same three remote fields as the preview batch's, counting designs.
    in property <string> tilt_remote_title: "";
    in property <bool> tilt_remote_active: false;
    in property <int> tilt_remote_in_flight: 0;
    in property <bool> tilt_done: false;
    in property <string> tilt_summary: "";
    // Same as `preview_offer_regenerate`, for the tilt confirm step.
    in property <bool> tilt_offer_regenerate: false;
    // Same scope choice as `preview_offer_missing_*`, for the tilt confirm step.
    in property <[int]> tilt_offer_missing_ids: [];
    in property <int> tilt_offer_missing_count: -1;
    in property <string> tilt_offer_missing_label: "";
    in property <string> tilt_offer_all_label: "";
    in-out property <bool> tilt_offer_missing_only: true;
    // The dialog is showing the Edit tab's single-design sweep ("Tilt Curves" on the
    // command bar) rather than a catalogue batch: one bar driven by
    // `tilt_single_fraction`, `tilt_single_stage` above it, and Cancel goes to
    // `tilt_single_cancel`.
    in property <bool> tilt_single: false;
    in property <float> tilt_single_fraction: 0.0;
    in property <string> tilt_single_stage: "";

    callback tilt_single_cancel();
    callback tilt_cancel();
    callback tilt_close();
    callback tilt_dismiss_offer();
    callback tilt_generate_confirmed();
}