merge: issue/0044-cpp-orphans-audit — implementación paralela
This commit is contained in:
@@ -21,3 +21,4 @@ Reglas operativas del proyecto. Cada archivo es una regla independiente.
|
||||
| 15 | [projects.md](projects.md) | Projects: agrupar apps, analysis y vaults bajo un tema |
|
||||
| 16 | [kiss.md](kiss.md) | KISS en proyectos y apps: cuestionar herramientas externas, sin abstracciones especulativas |
|
||||
| 17 | [apps_tbd.md](apps_tbd.md) | Trunk-based development obligatorio en apps generadas con `fn` (registry exento) |
|
||||
| 18 | [uses_functions.md](uses_functions.md) | Convencion de uses_functions para C++: el .md del consumidor declara las dependencias |
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
## uses_functions
|
||||
|
||||
Cuando un .cpp llama a otra funcion del registry, el `.md` del CONSUMIDOR
|
||||
debe anadir la dependencia a `uses_functions`. El indexer NO lo deduce
|
||||
automaticamente para C++ (parser no trivial).
|
||||
|
||||
Como auditar:
|
||||
sqlite3 registry.db "SELECT id FROM functions WHERE lang='cpp' AND uses_functions='[]';"
|
||||
|
||||
Convencion:
|
||||
- Funciones de framework (cpp/framework/) no estan indexadas — sus consumos
|
||||
se anotan en `notes:` del huerfano (no en uses_functions).
|
||||
- Apps (`cpp/apps/`, `projects/*/apps/`) no estan en el grafo de uses_functions
|
||||
del registry — los huerfanos solo consumidos por apps llevan nota en `notes:`.
|
||||
- DEMO_ONLY en primitives_gallery se etiqueta `notes: scaffolding/demo`.
|
||||
@@ -29,6 +29,7 @@ params:
|
||||
- name: label
|
||||
desc: "Texto del MenuItem en la menubar (default 'About...')"
|
||||
output: "about_window_set_info muta el estado global del modulo. about_window_render es no-op si la ventana esta cerrada. about_window_menu_item retorna true si el usuario clico"
|
||||
notes: "consumido por cpp/framework/app_base.cpp"
|
||||
---
|
||||
|
||||
# app_about
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: pure
|
||||
signature: "bool fn_ui::app_menubar(const fn_ui::PanelToggle* panels, size_t count, fn_ui::LayoutCallbacks* layouts_cb)"
|
||||
description: "MainMenuBar ImGui completa con menu View (toggles de paneles) y menu Layouts (guardar/aplicar layouts persistentes). Punto de entrada unificado para la menubar de cualquier app fn_ui."
|
||||
tags: [imgui, ui, menu, panels, layouts, dockspace, menubar]
|
||||
uses_functions: [panel_menu_cpp_core, layouts_menu_cpp_core]
|
||||
uses_functions: ["app_about_cpp_core", "app_settings_cpp_core", "layouts_menu_cpp_core", "panel_menu_cpp_core"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
|
||||
@@ -29,6 +29,7 @@ params:
|
||||
- name: label
|
||||
desc: "Texto del MenuItem en la menubar (default 'Settings...')"
|
||||
output: "settings() devuelve referencia mutable al estado vivo. settings_window_render() es no-op si la ventana esta cerrada. add_section es idempotente por id"
|
||||
notes: "consumido por cpp/framework/app_base.cpp"
|
||||
---
|
||||
|
||||
# app_settings
|
||||
|
||||
@@ -27,6 +27,7 @@ params:
|
||||
- name: min_height
|
||||
desc: "Alto minimo del panel en pixels (0 = sin restriccion)"
|
||||
output: "true si el panel es visible y se debe renderizar contenido; llamar siempre dashboard_panel_end() independientemente del valor de retorno"
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# dashboard_panel
|
||||
|
||||
@@ -20,6 +20,7 @@ test_file_path: ""
|
||||
file_path: "cpp/functions/core/file_watcher.cpp"
|
||||
params: []
|
||||
output: "FileWatcher opaco con cola interna de eventos. poll() devuelve std::vector<FileEvent> con {path, kind in {Modified, Created, Deleted}}. Errores acumulados en last_error()."
|
||||
notes: "consumido por cpp/apps/text_editor_smoke/main.cpp; scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# file_watcher
|
||||
|
||||
@@ -21,6 +21,7 @@ file_path: "cpp/functions/core/fps_overlay.cpp"
|
||||
framework: imgui
|
||||
params: []
|
||||
output: "Renderiza el overlay de FPS en el frame ImGui actual"
|
||||
notes: "consumido por cpp/framework/app_base.cpp"
|
||||
---
|
||||
|
||||
# fps_overlay
|
||||
|
||||
@@ -23,6 +23,7 @@ params:
|
||||
- name: id
|
||||
desc: "Identificador ImGui de la ventana, default ##fullscreen (el prefijo ## oculta el texto del titulo)"
|
||||
output: "true si la ventana es visible (siempre true en fullscreen); llamar siempre fullscreen_window_end() independientemente del valor de retorno"
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# fullscreen_window
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: impure
|
||||
signature: "void fn_ui::load_default_fonts(float size_px = 13.0f)"
|
||||
description: "Carga Karla-Regular (texto vectorial) + mergea Tabler Icons al mismo tamaño en el atlas de ImGui. Tras esta llamada los TI_* (icons_tabler.h) renderizan inline con el texto."
|
||||
tags: [imgui, fonts, icons, tabler, atlas, init]
|
||||
uses_functions: []
|
||||
uses_functions: ["app_settings_cpp_core"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
@@ -23,6 +23,7 @@ params:
|
||||
- name: size_px
|
||||
desc: "Tamaño en px compartido por texto e iconos. Default 13 = ImGui default historico, render vectorial nitido en Karla y Tabler. El icon merge cuadra el line-height con el texto al usar el mismo tamaño"
|
||||
output: "void — texto + iconos quedan activos en io.Fonts. Si Karla no se encuentra, fallback a ProggyClean default; si Tabler no se encuentra, los TI_* salen como cuadritos. Estado consultable via text_font_loaded() y tabler_font_loaded()"
|
||||
notes: "consumido por cpp/framework/app_base.cpp"
|
||||
---
|
||||
|
||||
# icon_font
|
||||
|
||||
@@ -26,6 +26,7 @@ params:
|
||||
- name: blob
|
||||
desc: "Contenido INI serializado con ImGui::SaveIniSettingsToMemory."
|
||||
output: "Las funciones bool retornan true en exito, false en error SQLite. load_blob retorna string vacia si el layout no existe o hay error. list retorna vector vacio en error. Ningun error se propaga como excepcion."
|
||||
notes: "consumido por cpp/apps/shaders_lab/main.cpp"
|
||||
---
|
||||
|
||||
# layout_storage_sqlite
|
||||
|
||||
@@ -25,6 +25,7 @@ params:
|
||||
- name: cb
|
||||
desc: "LayoutCallbacks con los cinco hooks (list, on_apply, on_save, on_delete, on_reset) y el campo active_name para marcar el layout activo. Callbacks nulos se saltan silenciosamente."
|
||||
output: "true si el usuario disparo alguna accion (aplicar layout, guardar, borrar o reset) en este frame."
|
||||
notes: "consumido por cpp/apps/shaders_lab/main.cpp"
|
||||
---
|
||||
|
||||
# layouts_menu
|
||||
|
||||
@@ -27,6 +27,7 @@ params:
|
||||
- name: wheel
|
||||
desc: "Float scroll wheel (Imgui::GetIO().MouseWheel). distance *= (1 - wheel*0.1), clamp >0.1"
|
||||
output: "orbit_camera_matrices: CameraMatrices con view (lookAt eye→origin, up=Y) y proj (perspective). Ambas row-major; al pasar a glUniformMatrix4fv usar transpose=GL_TRUE. orbit_camera_handle_drag: muta cam in-place, sin allocacion."
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# orbit_camera
|
||||
|
||||
@@ -27,6 +27,7 @@ params:
|
||||
- name: count
|
||||
desc: "Numero de elementos en items."
|
||||
output: "true si el usuario togglo algun panel este frame; false si no hubo cambios o si la MainMenuBar no se abrio (solo para panel_menu)."
|
||||
notes: "consumido por cpp/apps/shaders_lab/main.cpp"
|
||||
---
|
||||
|
||||
# panel_menu
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: impure
|
||||
signature: "void fn::sql_workbench(const char* id, sqlite3* db, fn::SqlWorkbenchState& state, ImVec2 size); bool fn::sql_workbench_run_query(sqlite3*, const char*, fn::SqlWorkbenchState&); void fn::sql_workbench_load_schema(sqlite3*, fn::SqlWorkbenchState&); void fn::sql_workbench_destroy(fn::SqlWorkbenchState&)"
|
||||
description: "Workbench SQL embebido en ImGui: editor con highlighting (text_editor + CodeLang::SQL), tabla de resultados (table_view), sidebar de schema (sqlite_master) e historial. Ejecuta queries contra una sqlite3* del caller (no abre/cierra la DB)."
|
||||
tags: [imgui, sql, sqlite, editor, table, dashboard, registry, debug]
|
||||
uses_functions: [text_editor_cpp_core, table_view_cpp_viz, button_cpp_core, tokens_cpp_core]
|
||||
uses_functions: ["button_cpp_core", "table_view_cpp_viz", "text_editor_cpp_core", "tokens_cpp_core"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
|
||||
@@ -24,6 +24,7 @@ source_license: "MIT"
|
||||
source_file: "TextEditor.h, TextEditor.cpp"
|
||||
params: []
|
||||
output: "TextEditorState opaco — encapsula el editor del vendor + buffer de texto cacheado + flag dirty. Render devuelve true cuando el contenido cambio en el frame actual."
|
||||
notes: "consumido por cpp/apps/text_editor_smoke/main.cpp; scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# text_editor
|
||||
|
||||
@@ -21,6 +21,7 @@ file_path: "cpp/functions/core/tokens.cpp"
|
||||
framework: imgui
|
||||
params: []
|
||||
output: "Tokens constexpr accesibles como fn_tokens::colors::*, spacing::*, radius::*, font_size::*. apply_dark_theme() aplica los tokens al ImGuiStyle global."
|
||||
notes: "consumido por cpp/framework/app_base.cpp; scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# tokens
|
||||
|
||||
@@ -25,6 +25,7 @@ params:
|
||||
- name: t
|
||||
desc: "Progreso normalizado en [0,1]. Para t<0 o t>1 algunas curvas extrapolan razonablemente, otras saturan."
|
||||
output: "f(t) — valor de la curva en t. Para curvas no oscilantes f(0)=0 y f(1)=1. Para elastic/bounce f(0)=0 y f(1)=1 pero f puede salir del rango [0,1] en valores intermedios."
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# tween_curves
|
||||
|
||||
@@ -21,6 +21,7 @@ test_file_path: ""
|
||||
file_path: "cpp/functions/gfx/dag_catalog.cpp"
|
||||
params: []
|
||||
output: "dag_catalog(): referencia const estable al vector de DagNodeDef (instancia estatica, no se invalida). dag_find(name): puntero al nodo con ese nombre o nullptr si no existe."
|
||||
notes: "consumido por cpp/apps/shaders_lab/main.cpp"
|
||||
---
|
||||
|
||||
## Nodos incluidos
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: impure
|
||||
signature: "bool dag_node_editor(std::vector<DagStep>& pipeline)"
|
||||
description: "Renderiza el node editor visual (imgui-node-editor) para el DAG de shaders. Modifica el pipeline in-place: añade/borra nodos, gestiona aristas (source_ids). Devuelve true si la topologia cambio."
|
||||
tags: [dag, imgui, node-editor, shader, visual, pipeline, gfx]
|
||||
uses_functions: []
|
||||
uses_functions: ["dag_catalog_cpp_gfx", "dag_node_previews_cpp_gfx"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
@@ -22,6 +22,7 @@ params:
|
||||
- name: pipeline
|
||||
desc: "vector de DagStep que representa el pipeline actual; modificado in-place"
|
||||
output: "true si la topologia cambio (nodos o aristas añadidos/quitados); false en caso contrario"
|
||||
notes: "consumido por cpp/apps/shaders_lab/main.cpp"
|
||||
---
|
||||
|
||||
## Notas
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: impure
|
||||
signature: "void dag_previews_render(const std::vector<DagStep>&, unsigned program, int w, int h); unsigned dag_preview_texture(unsigned editor_uid); void dag_previews_destroy()"
|
||||
description: "Renderiza un thumbnail por cada DagStep con preview_open=true a un FBO propio (lazy, keyed por editor_uid). Bind del FBO + glUniform1i(u_preview_target, i) + draw del quad. Devuelve la textura via dag_preview_texture para mostrarla con ImGui::Image."
|
||||
tags: [opengl, fbo, preview, dag, gfx]
|
||||
uses_functions: [gl_loader_cpp_gfx, gl_framebuffer_cpp_gfx, fullscreen_quad_cpp_gfx, dag_catalog_cpp_gfx]
|
||||
uses_functions: ["dag_catalog_cpp_gfx", "fullscreen_quad_cpp_gfx", "gl_framebuffer_cpp_gfx", "gl_loader_cpp_gfx"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: impure
|
||||
signature: "void dag_palette()"
|
||||
description: "Paleta de nodos del catalogo, agrupada por kind (Gen/Op/Blend). Cada entrada es un drag source con payload DAG_NODE_TYPE que contiene el name del nodo. El node editor recibe el drop y anade un nuevo DagStep en la posicion del mouse."
|
||||
tags: [imgui, dag, palette, drag-and-drop, gfx, component]
|
||||
uses_functions: [dag_catalog_cpp_gfx]
|
||||
uses_functions: ["dag_catalog_cpp_gfx"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
|
||||
@@ -9,6 +9,7 @@ signature: "void dag_uniforms_apply(const std::vector<DagStep>& pipeline, unsign
|
||||
description: "Sube los params del pipeline al shader activo via glUniform4fv. Construye un float[64] con los params de cada DagStep (hasta 16 pasos) y llama glUniform4fv(u_params, 16, data)."
|
||||
tags: [dag, shader, uniforms, opengl, gfx, pipeline]
|
||||
uses_functions:
|
||||
- dag_catalog_cpp_gfx
|
||||
- gl_loader_cpp_gfx
|
||||
uses_types:
|
||||
- dag_types_cpp_gfx
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: impure
|
||||
signature: "void quad_init(Quad& q); void quad_draw(const Quad& q); void quad_destroy(Quad& q)"
|
||||
description: "VAO/VBO para un fullscreen quad de 6 vértices. El vertex shader genera las posiciones via gl_VertexID, por lo que el VBO queda vacío. quad_draw emite glDrawArrays(GL_TRIANGLES, 0, 6)."
|
||||
tags: [opengl, quad, fullscreen, vao, vbo, gfx]
|
||||
uses_functions: []
|
||||
uses_functions: ["gl_loader_cpp_gfx"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: impure
|
||||
signature: "void fb_init(Framebuffer& f); void fb_resize(Framebuffer& f, int w, int h); void fb_destroy(Framebuffer& f)"
|
||||
description: "CRUD de un framebuffer OpenGL (FBO + textura RGBA8). fb_resize es no-op si las dimensiones no cambian. Listo para uso con ImGui::Image."
|
||||
tags: [opengl, framebuffer, fbo, texture, gfx, offscreen]
|
||||
uses_functions: []
|
||||
uses_functions: ["gl_loader_cpp_gfx"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
|
||||
@@ -21,6 +21,7 @@ file_path: "cpp/functions/gfx/gl_loader.cpp"
|
||||
framework: opengl
|
||||
params: []
|
||||
output: "true si todos los simbolos se resolvieron (Linux siempre true; Windows depende de que el contexto GL este activo antes de llamar). false si algun simbolo no esta disponible en el driver."
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# gl_loader
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: impure
|
||||
signature: "CompileResult compile_fragment(const std::string& user_fragment_src)"
|
||||
description: "Compila un cuerpo de fragment shader GLSL 330 y retorna un GL program listo para usar. Prepende automáticamente version, out vec4 fragColor y uniforms u_resolution/u_time/u_mouse. Usa GL_GLEXT_PROTOTYPES + GL/glext.h."
|
||||
tags: [opengl, shader, glsl, compile, fragment, gfx]
|
||||
uses_functions: []
|
||||
uses_functions: ["gl_loader_cpp_gfx"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
@@ -23,6 +23,7 @@ params:
|
||||
- name: user_fragment_src
|
||||
desc: "Cuerpo del fragment shader GLSL sin #version, sin 'out vec4 fragColor' ni declaraciones de uniforms. Solo el void main() y funciones auxiliares."
|
||||
output: "CompileResult con program=GL id si ok=true, o err_msg/err_line si falla. program=0 indica error."
|
||||
notes: "consumido por cpp/apps/shaders_lab/main.cpp; scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# gl_shader
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: impure
|
||||
signature: "GlTexture gl_texture_load(const char* path, bool flip_y, bool srgb)"
|
||||
description: "Carga PNG/JPG/BMP/TGA/HDR desde disco (o memoria) a una textura OpenGL lista para usar como sampler2D. Vendorea stb_image. Soporta sRGB (GL_SRGB8_ALPHA8) y HDR (GL_RGBA16F via stbi_loadf). Genera mipmaps automaticamente. flip_y=true por defecto coincide con la convencion UV de OpenGL."
|
||||
tags: [opengl, texture, image, png, jpg, hdr, stb_image, gfx]
|
||||
uses_functions: [gl_loader_cpp_gfx]
|
||||
uses_functions: ["gl_loader_cpp_gfx"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: impure
|
||||
signature: "MeshGpu mesh_gpu_upload(const Mesh&); void mesh_gpu_destroy(MeshGpu&)"
|
||||
description: "Sube un Mesh CPU a OpenGL como VAO + VBO interleaved (pos.xyz, normal.xyz) + EBO uint32. Layout: location 0 = a_pos vec3, location 1 = a_normal vec3, stride 6 floats."
|
||||
tags: [opengl, mesh, vao, vbo, ebo, gpu, gfx]
|
||||
uses_functions: [mesh_obj_load_cpp_gfx]
|
||||
uses_functions: ["gl_loader_cpp_gfx", "mesh_obj_load_cpp_gfx"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
|
||||
@@ -27,6 +27,7 @@ params:
|
||||
- name: path
|
||||
desc: "Ruta absoluta o relativa del .obj a leer (mesh_obj_load impuro)"
|
||||
output: "Mesh con positions/normals (stride 3, mismo length) y indices (tri-list, multiplo de 3). Si no hay vn, normales por face (flat shading) y vertices duplicados por face. Mesh vacio si parse falla."
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# mesh_obj_load
|
||||
|
||||
@@ -9,9 +9,10 @@ signature: "void canvas_render(ShaderCanvas& c, float time_seconds, const std::f
|
||||
description: "Componente ImGui que renderiza un fragment shader GLSL a un FBO y lo muestra en el panel actual. Compone gl_framebuffer, fullscreen_quad y gl_shader. Gestiona resize automático y coordenadas de mouse. Acepta callback opcional uniforms_fn invocado tras glUseProgram para uniforms custom."
|
||||
tags: [opengl, shader, canvas, imgui, fbo, gfx, component]
|
||||
uses_functions:
|
||||
- gl_shader_cpp_gfx
|
||||
- gl_framebuffer_cpp_gfx
|
||||
- fullscreen_quad_cpp_gfx
|
||||
- gl_framebuffer_cpp_gfx
|
||||
- gl_loader_cpp_gfx
|
||||
- gl_shader_cpp_gfx
|
||||
- uniform_panel_cpp_gfx
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -34,6 +34,7 @@ params:
|
||||
- name: err
|
||||
desc: "Mensaje de error opcional si save falla (constraint, schema, IO)."
|
||||
output: "Persistencia en la tabla generators de shaders_lab.db. Las listas vienen ordenadas por label."
|
||||
notes: "consumido por cpp/apps/shaders_lab/main.cpp"
|
||||
---
|
||||
|
||||
## Schema
|
||||
|
||||
@@ -9,8 +9,8 @@ signature: "void uniforms_panel(UniformStore&, const std::vector<UniformDescript
|
||||
description: "Panel ImGui auto-generado a partir de UniformDescriptor. Sincroniza un UniformStore con los descriptores, renderiza widgets (slider/color/toggle/xy) y aplica los valores al programa GL activo vía glUniform*."
|
||||
tags: [opengl, shader, uniforms, imgui, controls, gfx, component]
|
||||
uses_functions:
|
||||
- uniform_parser_cpp_gfx
|
||||
- gl_loader_cpp_gfx
|
||||
- uniform_parser_cpp_gfx
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
|
||||
@@ -28,6 +28,7 @@ params:
|
||||
- name: glsl_source
|
||||
desc: "Código fuente GLSL completo del fragment shader. Se escanea línea a línea buscando declaraciones uniform con anotaciones opcionales."
|
||||
output: "Vector de UniformDescriptor ordenado según aparición en el shader. Cada descriptor tiene nombre, tipo GLSL, widget ImGui, rangos min/max, valor por defecto y flags (log_scale, step, default_bool)."
|
||||
notes: "consumido por cpp/apps/shaders_lab/main.cpp"
|
||||
---
|
||||
|
||||
# uniform_parser
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: pure
|
||||
signature: "void bar_chart(const char* title, const char* const* labels, const float* values, int count, float bar_width = 0.67f, float height = 200.0f)"
|
||||
description: "Barras verticales ImPlot con ejes pineados, altura explicita, tooltip al hover y auto-rotacion 45 de labels cuando no caben horizontales"
|
||||
tags: [implot, chart, visualization, gpu, bar, tooltip, rotated-labels, locked-axes]
|
||||
uses_functions: []
|
||||
uses_functions: ["plot_static_cpp_viz"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
@@ -33,6 +33,7 @@ params:
|
||||
- name: height
|
||||
desc: "Altura del plot en pixeles (default 200). Explicita para evitar feedback loops con AutoResizeY"
|
||||
output: "Renderiza barras, tooltip al hover con label+valor, y si los labels horizontales no caben los dibuja rotados 45 grados"
|
||||
notes: "consumido por cpp/apps/chart_demo/main.cpp; scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# bar_chart
|
||||
|
||||
@@ -39,6 +39,7 @@ params:
|
||||
- name: tooltip
|
||||
desc: "Si true, muestra tooltip con valores O/H/L/C al hacer hover sobre una vela"
|
||||
output: "Renderiza el grafico de velas OHLC en el frame ImGui actual, sin retornar valor"
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# candlestick
|
||||
|
||||
@@ -31,6 +31,7 @@ params:
|
||||
- name: size
|
||||
desc: "Tamano del area cuadrada del chord. Default 400x400"
|
||||
output: "Renderiza arcos en el borde y cuerdas curvas internas usando AddConvexPolyFilled + AddText"
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# chord
|
||||
|
||||
@@ -35,6 +35,7 @@ params:
|
||||
- name: size
|
||||
desc: "Tamano del rect de render. x <= 0 usa el ancho disponible"
|
||||
output: "Renderiza los contornos como segmentos de linea (AddLine) con color por nivel (gradiente azul->amarillo)"
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# contour
|
||||
|
||||
@@ -31,6 +31,7 @@ params:
|
||||
- name: radius
|
||||
desc: "Radio del gauge en pixels (default 60.0)"
|
||||
output: "Renderiza el gauge en el frame ImGui actual, reservando espacio con ImGui::Dummy"
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# gauge
|
||||
|
||||
@@ -25,6 +25,7 @@ params:
|
||||
- name: config
|
||||
desc: "Parametros de la simulacion: repulsion (fuerza coulombiana), attraction (spring constant), damping (decay de velocidad), theta (precision Barnes-Hut 0=exacto/1=rapido), gravity (atraccion al centro), max_velocity, iterations."
|
||||
output: "Energia cinetica total (suma de |v|^2). Cuando cae por debajo de un umbral elegido por el caller, el layout ha convergido y se puede dejar de llamar."
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# graph_force_layout
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: impure
|
||||
signature: "GraphRenderer* graph_renderer_create(int width, int height, const GraphRendererConfig& config)"
|
||||
description: "Renderer GPU de grafos con instanced rendering a FBO, compatible con ImGui::Image para visualizacion de grafos grandes"
|
||||
tags: [graph, renderer, opengl, gpu, instanced, fbo, visualization]
|
||||
uses_functions: []
|
||||
uses_functions: ["gl_loader_cpp_gfx"]
|
||||
uses_types: ["GraphData_cpp_viz"]
|
||||
returns: []
|
||||
returns_optional: false
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: impure
|
||||
signature: "bool graph_viewport(const char* id, GraphData& graph, GraphViewportState& state, ImVec2 size)"
|
||||
description: "Widget ImGui completo para visualizacion interactiva de grafos con pan, zoom, hover, seleccion y layout en vivo"
|
||||
tags: [graph, viewport, imgui, interactive, pan, zoom, dashboard]
|
||||
uses_functions: ["graph_renderer_cpp_viz", "graph_force_layout_cpp_viz", "graph_spatial_hash_cpp_core"]
|
||||
uses_functions: ["graph_force_layout_cpp_viz", "graph_renderer_cpp_viz", "graph_spatial_hash_cpp_core"]
|
||||
uses_types: ["GraphData_cpp_viz"]
|
||||
returns: []
|
||||
returns_optional: false
|
||||
|
||||
@@ -33,6 +33,7 @@ params:
|
||||
- name: scale_max
|
||||
desc: "Valor maximo de la escala de color (0 para autodetectar)"
|
||||
output: "Renderiza el heatmap en el frame ImGui actual"
|
||||
notes: "consumido por cpp/apps/chart_demo/main.cpp; scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# heatmap
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: pure
|
||||
signature: "void histogram(const char* title, const float* values, int count, int bins = -1, float height = 200.0f)"
|
||||
description: "Histograma con bins automaticos, ejes lock (con AutoFit para bins dinamicos) y altura explicita"
|
||||
tags: [implot, chart, visualization, gpu, histogram, distribution, locked-axes]
|
||||
uses_functions: []
|
||||
uses_functions: ["plot_static_cpp_viz"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
@@ -31,6 +31,7 @@ params:
|
||||
- name: height
|
||||
desc: "Altura del plot en pixeles (default 200). Explicita para evitar feedback loops con AutoResizeY"
|
||||
output: "Renderiza el histograma en el frame ImGui actual"
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# histogram
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: pure
|
||||
signature: "void line_plot(const char* title, const float* xs, const float* ys, int count, float height = 200.0f)"
|
||||
description: "Line plot 2D con ImPlot, ejes pineados y altura explicita para no vibrar al redimensionar"
|
||||
tags: [implot, chart, visualization, gpu, line, locked-axes]
|
||||
uses_functions: []
|
||||
uses_functions: ["plot_static_cpp_viz"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
@@ -31,6 +31,7 @@ params:
|
||||
- name: height
|
||||
desc: "Altura del plot en pixeles (default 200). Explicita para evitar feedback loops con contenedores AutoResizeY"
|
||||
output: "Renderiza la linea en el frame ImGui actual con ejes pineados"
|
||||
notes: "consumido por cpp/apps/chart_demo/main.cpp; scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# line_plot
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: impure
|
||||
signature: "void mesh_viewer(const char* id, const MeshViewerConfig& cfg)"
|
||||
description: "Renderiza un MeshGpu (3D) en un FBO interno cacheado por id, con orbit camera, iluminacion Lambert headlight, opcion wireframe. Drag/wheel del mouse mueven la camara."
|
||||
tags: [imgui, opengl, mesh, 3d, viewer, viz, fbo]
|
||||
uses_functions: [mesh_gpu_cpp_gfx, orbit_camera_cpp_core, gl_framebuffer_cpp_gfx]
|
||||
uses_functions: ["gl_framebuffer_cpp_gfx", "gl_loader_cpp_gfx", "gl_shader_cpp_gfx", "mesh_gpu_cpp_gfx", "orbit_camera_cpp_core"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: pure
|
||||
signature: "void pie_chart(const char* title, const char* const* labels, const float* values, int count, float radius = 0.0f, float height = 200.0f)"
|
||||
description: "Pie/donut chart con ImPlot, ejes pineados, altura explicita y tooltip por slice al pasar el mouse"
|
||||
tags: [implot, chart, visualization, gpu, pie, donut, tooltip, locked-axes]
|
||||
uses_functions: []
|
||||
uses_functions: ["plot_static_cpp_viz"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
@@ -33,6 +33,7 @@ params:
|
||||
- name: height
|
||||
desc: "Altura del plot en pixeles (default 200). Explicita para evitar feedback loops con contenedores AutoResizeY"
|
||||
output: "Renderiza el pie en el frame ImGui actual; muestra tooltip con label + valor + % al pasar por encima de un slice"
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# pie_chart
|
||||
|
||||
@@ -29,6 +29,7 @@ params:
|
||||
- name: size
|
||||
desc: "Tamano del diagrama. x <= 0 usa el ancho disponible"
|
||||
output: "Renderiza nodos como rectangulos verticales por columna y links como bandas con bezier cubico, con alpha bajo y color del nodo origen"
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# sankey
|
||||
|
||||
@@ -25,6 +25,7 @@ params:
|
||||
- name: cfg
|
||||
desc: "fn::Scatter3DConfig — xs, ys, zs (length n), sizes opcional, colors opcional (ImU32 RGBA), size del plot"
|
||||
output: "Renderiza una nube de puntos 3D dentro del frame ImGui actual; soporta orbit (drag), zoom (wheel) y pan"
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# scatter_3d
|
||||
|
||||
@@ -8,7 +8,7 @@ purity: pure
|
||||
signature: "void scatter_plot(const char* title, const float* xs, const float* ys, int count, float height = 200.0f)"
|
||||
description: "Scatter plot 2D con ImPlot, ejes pineados y altura explicita para no vibrar al redimensionar"
|
||||
tags: [implot, chart, visualization, gpu, scatter, locked-axes]
|
||||
uses_functions: []
|
||||
uses_functions: ["plot_static_cpp_viz"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
@@ -31,6 +31,7 @@ params:
|
||||
- name: height
|
||||
desc: "Altura del plot en pixeles (default 200). Explicita para evitar feedback loops"
|
||||
output: "Renderiza el scatter en el frame ImGui actual con ejes pineados"
|
||||
notes: "consumido por cpp/apps/chart_demo/main.cpp; scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# scatter_plot
|
||||
|
||||
@@ -31,6 +31,7 @@ params:
|
||||
- name: height
|
||||
desc: "Alto en pixels del sparkline (default 20.0)"
|
||||
output: "Renderiza el sparkline inline en el frame ImGui actual, reservando espacio con ImGui::Dummy"
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# sparkline
|
||||
|
||||
@@ -25,6 +25,7 @@ params:
|
||||
- name: cfg
|
||||
desc: "fn::SurfacePlot3DConfig — z (nx*ny row-major), nx, ny, x/y_min, x/y_max, labels, size, show_colormap"
|
||||
output: "Renderiza una superficie 3D dentro del frame ImGui actual; soporta orbit (drag), zoom (wheel) y pan via ImPlot3D"
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# surface_plot_3d
|
||||
|
||||
@@ -31,6 +31,7 @@ params:
|
||||
- name: row_count
|
||||
desc: "Numero de filas de datos, sin contar el header"
|
||||
output: "true si la tabla se renderizo visible, false si fue clipped o skipped por ImGui"
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# table_view
|
||||
|
||||
@@ -27,6 +27,7 @@ params:
|
||||
- name: size
|
||||
desc: "Tamano del rect del treemap. x <= 0 usa el ancho disponible"
|
||||
output: "Renderiza el treemap en el frame ImGui actual usando AddRectFilled + AddText sobre el WindowDrawList"
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# treemap
|
||||
|
||||
@@ -31,6 +31,7 @@ params:
|
||||
- name: size
|
||||
desc: "Tamano del area Voronoi. x <= 0 usa el ancho disponible"
|
||||
output: "Renderiza la teselacion de Voronoi como mosaico de tiles 4x4 px coloreados + seeds visibles como circulos blancos sobre negros"
|
||||
notes: "scaffolding/demo en primitives_gallery"
|
||||
---
|
||||
|
||||
# voronoi
|
||||
|
||||
Reference in New Issue
Block a user