chore(vendor): vendorear ImPlot3D v0.4 como submodulo + target CMake

- submodule cpp/vendor/implot3d -> github.com/brenocq/implot3d, pinned
  commit 41ae3e447c0de20ecab95d38a4b4dc0835a3efc2 (v0.4).
- target CMake `implot3d` parejo a `implot` (3 sources: implot3d.cpp,
  implot3d_items.cpp, implot3d_meshes.cpp).
- fn_framework linkea implot3d para que cualquier app pueda usar las
  funciones viz/*_3d sin configurar nada extra.
- VENDORING.md externo (no tocamos el README upstream).

Issue 0028.
This commit is contained in:
2026-04-25 21:48:29 +02:00
parent 6d7b802199
commit 4bf6f37e97
4 changed files with 58 additions and 1 deletions
Vendored Submodule
+1
Submodule cpp/vendor/implot3d added at 41ae3e447c
+41
View File
@@ -0,0 +1,41 @@
# ImPlot3D — vendoring notes
3D plotting library for Dear ImGui by Breno Cunha Queiroz, sister project to
[ImPlot](https://github.com/epezent/implot).
- **Upstream:** https://github.com/brenocq/implot3d
- **License:** MIT (see `cpp/vendor/implot3d/LICENSE`)
- **Version:** v0.4
- **Pinned commit:** `41ae3e447c0de20ecab95d38a4b4dc0835a3efc2`
(2026-04-05, _"chore: bump version to v0.4"_)
The vendor lives as a git submodule in `cpp/vendor/implot3d` and is checked
out at the pinned commit above.
## Files compiled into the `implot3d` CMake target
- `implot3d.cpp`
- `implot3d_items.cpp`
- `implot3d_meshes.cpp`
`implot3d_demo.cpp` and the contents of `example/` are intentionally left
out of the build — kept for reference only.
## Update procedure
```bash
cd cpp/vendor/implot3d
git fetch origin
git checkout <new-commit>
cd ../../..
git add cpp/vendor/implot3d
# Update the pinned commit in this file.
git commit -m "chore(vendor): bump implot3d to <new-commit>"
```
## Used by
- `cpp/functions/viz/surface_plot_3d.cpp``ImPlot3D::PlotSurface`
- `cpp/functions/viz/scatter_3d.cpp``ImPlot3D::PlotScatter`
- `cpp/framework/app_base.cpp` — creates/destroys the ImPlot3D context
alongside the ImPlot one.