Files
fn_registry/cpp/functions/core/slider.md
T
egutierrez 715e2431fc feat(cpp/core): parallel_for thread pool + slider widget
parallel_for_cpp_core: ThreadPool reutilizable con parallel_for(begin, end, fn)
y parallel_for_chunks(begin, end, fn(tid, lo, hi)). Captura excepciones del
worker y las relanza en el caller. Pareja CPU del despacho GPU para Monte
Carlo multi-core cuando dispatch GPU no compensa.

slider_cpp_core: wrapper de ImGui::SliderFloat/Int/Double con label muted
arriba, tokens (primary grab), full-width. Variantes float, float_log
(logaritmico), int, double. Para los calculadores que tienen 15-30 sliders
cada uno y se beneficia del estilo consistente.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 11:52:50 +02:00

2.7 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, framework, params, output
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports tested tests test_file_path file_path framework params output
slider function cpp core 1.0.0 impure bool slider_float(const char* label, float* v, float min, float max, const char* fmt); bool slider_float_log(...); bool slider_int(const char* label, int* v, int min, int max, const char* fmt); bool slider_double(const char* label, double* v, double min, double max, const char* fmt) Slider ImGui con label muted arriba, estilo acorde con fn_tokens (radius, border, primary grab). Variantes float, float_log (logaritmico), int, double. Equivalente al <Slider> de Mantine / fn_library.
imgui
slider
ui
tokens
mantine
core
tokens_cpp_core
false error_go_core
imgui.h
cstdio
false
cpp/functions/core/slider.cpp imgui
name desc
label Texto del label (mostrado en text_muted arriba). Tambien se usa como id ImGui (concatenado con ##).
name desc
value Pointer al valor; mutado in-place si el usuario lo cambia.
name desc
min_v Limite inferior.
name desc
max_v Limite superior.
name desc
fmt printf-format para el value display. Float default '%.3f'; int default '%d'.
Renderiza label + slider full-width. Devuelve true si el valor cambio este frame.

slider

Slider canonico para los calculadores. Cada calculadora del set tiene 15-30 sliders; tener uno consistente con tokens y full-width acelera el desarrollo y mantiene la identidad visual.

Patron tipico

static float prob = 0.2f;
if (fn_ui::slider_float("Probabilidad de hit", &prob, 0.0f, 1.0f, "%.3f")) {
    recalculate();
}

static float sigma = 0.1f;
fn_ui::slider_float_log("Proposal sigma (log)", &sigma, 0.001f, 10.0f, "%.4f");

static int n_chains = 4;
fn_ui::slider_int("Numero de cadenas", &n_chains, 1, 16);

static double mu = 0.0;
fn_ui::slider_double("Mu", &mu, -10.0, 10.0, "%.6f");

Estilo

Usa fn_tokens::colors::primary para el grab (mismo color que button primary). Background bg, border border, radius sm. Coincide con la identidad de text_input y demas widgets core.

Notas

  • slider_double down-castea a float internamente (ImGui no expone SliderDouble). Si tu rango requiere fp64 usa text_input con parsing manual.
  • El label es tambien el id ImGui — duplicar labels en el mismo frame causa colision (ImGui asigna ids unicos basados en label). Si necesitas dos sliders con el mismo nombre visible, agregar un sufijo distinto (ej. "Mu##chain1" / "Mu##chain2").
  • Para multi-value (vec2/vec3) — no incluido aqui; usar 2/3 sliders separados o ImGui::SliderFloat2/3 directamente.