958189227d
Auditoria del issue 0044: anota en notes: el contexto de consumo de
huerfanos que no pueden registrarse en uses_functions porque sus
consumidores no son funciones del registry:
- consumido por cpp/framework/app_base.cpp (framework no indexado)
- consumido por cpp/apps/{shaders_lab,chart_demo,text_editor_smoke}/main.cpp
- scaffolding/demo en primitives_gallery
31 huerfanas anotadas. Las que quedan en uses_functions=[] tras esto
son hojas legitimas (no llaman a nada) o realmente sin uso (lista
DEAD reportada en el issue 0044).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.0 KiB
2.0 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, notes
| 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 | notes | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| voronoi | component | cpp | viz | 1.0.0 | pure | void voronoi(const char* id, const ImVec2* seeds, int n, const ImU32* colors, ImVec2 size) | Diagrama de Voronoi via raster brute-force (MVP). Para cada tile 4x4 px encontrar seed mas cercano y rellenar con su color. |
|
false |
|
false | cpp/functions/viz/voronoi.cpp | imgui |
|
Renderiza la teselacion de Voronoi como mosaico de tiles 4x4 px coloreados + seeds visibles como circulos blancos sobre negros | scaffolding/demo en primitives_gallery |
voronoi
Voronoi diagram MVP via raster brute-force. Para cada tile de 4x4 pixeles del rect de render, calcula el seed mas cercano por distancia Euclidea y rellena el tile con el color de ese seed.
Limitaciones MVP
- No genera poligonos analiticos —
voronoi_layoutdejapolygonvacio. Para extraer poligonos seria necesario half-plane intersections (Fortune's algorithm) — ver issue futuro. - Tile 4x4 px: las fronteras son escalonadas. Si se requiere precision sub-pixel, reducir el tile (cuesta O(1/tile^2) en tiempo).
- Performance: O(W * H * N / tile^2). Para N <= 200 y region 500x500 es < 1ms.
Ejemplo
ImVec2 seeds[30];
ImU32 colors[30];
for (int i = 0; i < 30; i++) {
seeds[i] = ImVec2(rand_float() * W, rand_float() * H);
colors[i] = IM_COL32(rand() & 255, rand() & 255, rand() & 255, 230);
}
voronoi("##v", seeds, 30, colors, ImVec2(-1, 300));