Skip to content

feat: Transform Editor toolbox plugin (custom & N→M derived series)#158

Merged
pabloinigoblasco merged 4 commits into
mainfrom
feat/transform-editor
Jun 29, 2026
Merged

feat: Transform Editor toolbox plugin (custom & N→M derived series)#158
pabloinigoblasco merged 4 commits into
mainfrom
feat/transform-editor

Conversation

@pabloinigoblasco

@pabloinigoblasco pabloinigoblasco commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Summary

Ports PlotJuggler 3's Custom Series / Function Editor as a data-only toolbox plugin. The UI mirrors PJ3 — a Single Function tab (drag-drop source, a radio to pick which input is the primary value, additional sources bound as v1..vN, function body), a Batch Functions tab, and a function library: an interactive browser sub-panel plus Import / Export of the library to a JSON file.

The plugin is data-only: it never runs a script itself. On Save it hands the host a self-describing Luau class (N inputs -> M outputs) via pj.data_processors.v1, run live as a DerivedEngine node; the live preview is produced host-side too (ephemeral transform + validate). There is no local Lua engine in the plugin.

Requirements

Requires plotjuggler_sdk 0.14.0 — the data-processor script API, the interactive sub-panel + table radio-column dialog additions (PlotJuggler/plotjuggler_sdk#136), and the save-file picker used by the library Export (PlotJuggler/plotjuggler_sdk#138). The extern/plotjuggler_core submodule is pinned to an SDK build that carries both; it re-pins to main once those land.

Contents

  • transform_editor_plugin.cpp — dialog + toolbox: drag-drop, primary-source radio, additional sources, function library browser, Import/Export, host-side preview, name-prompt + overwrite on Save, createTransform on Save.
  • transform_editor_dialog.ui — PJ3-style UI.
  • manifest.json / CMakeLists.txt / conanfile.py — registration; SDK 0.14.0.

Pairs with

The PJ4 host side: PlotJuggler/PJ4#252.

@pabloinigoblasco

Copy link
Copy Markdown
Contributor Author

@copilot resolve the merge conflicts in this pull request

Copilot AI commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

@copilot resolve the merge conflicts in this pull request

Done — merged origin/main (SDK 0.10.0) into this branch via 769dda8. Resolved conflicts in SDK_VERSION (0.9.0 → 0.10.0) and the extern/plotjuggler_core submodule pointer. The transform editor plugin's conanfile.py reads SDK_VERSION dynamically, so it picks up 0.10.0 automatically. No API changes were needed — 0.10.0 is a minor bump that only adds sdk::VoxelGrid.

@pabloinigoblasco pabloinigoblasco marked this pull request as ready for review June 20, 2026 19:27
@pabloinigoblasco pabloinigoblasco marked this pull request as draft June 22, 2026 14:31
@pabloinigoblasco

Copy link
Copy Markdown
Contributor Author

I converted this into a draft because I found something I think it is wrong, double checking

@pabloinigoblasco pabloinigoblasco force-pushed the feat/transform-editor branch 4 times, most recently from 85a64e7 to 753941d Compare June 24, 2026 14:59
@pabloinigoblasco pabloinigoblasco marked this pull request as ready for review June 24, 2026 15:09
@pabloinigoblasco pabloinigoblasco force-pushed the feat/transform-editor branch 4 times, most recently from f743145 to a47ce7e Compare June 27, 2026 22:33
Ports PlotJuggler 3's Custom Series / Function Editor as a data-only toolbox
plugin. The UI mirrors PJ3: a Single Function tab (drag-drop source, additional
sources with a primary-source radio in the first column, function body), a Batch
Functions tab, and a function library — an interactive browser sub-panel and
Import / Export of the library to a JSON file.

Data-only: the plugin never runs a script itself. On Save it hands the host a
self-describing Luau class (N inputs -> M outputs) via `pj.data_processors.v1`,
run live as a DerivedEngine node; the live preview is produced host-side too
(ephemeral transform + validate). There is no local Lua engine in the plugin.

Requires plotjuggler_sdk 0.14.0 — the data-processor script API, the interactive
sub-panel + table radio-column dialog additions (#136), and the save-file picker
used by the library Export (#138). The extern/plotjuggler_core submodule is
pinned to an SDK build carrying both.

Contents:
- transform_editor_plugin.cpp — dialog + toolbox: drag-drop, primary-source radio,
  function library browser, Import/Export, host-side preview, name-prompt +
  overwrite on Save, createTransform on Save.
- transform_editor_dialog.ui — PJ3-style UI.
- manifest.json / CMakeLists.txt / conanfile.py — registration; SDK 0.14.0.

Pairs with the host side: PlotJuggler/PJ4#252.
@pabloinigoblasco pabloinigoblasco changed the title feat: Transform Editor toolbox plugin — PJ3 Custom Series port feat: Transform Editor toolbox plugin (custom & N→M derived series) Jun 28, 2026
Bring the Transform Editor plugin up to date: per-snippet language tagging in
the library, Python module emission for the Python backend, and the
validateScript(kind, language, script) update for the unified data_processors SDK.
Apply clang-format so pre-commit passes.
@pabloinigoblasco pabloinigoblasco merged commit 71bbed1 into main Jun 29, 2026
37 checks passed
@pabloinigoblasco pabloinigoblasco deleted the feat/transform-editor branch June 29, 2026 13:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants