Conversation
On an IC ptychography tomogram, features are only recognized as "bright lines" from side views, so a 2-of-3 vote discarded nearly half of the real detections. Default to a vote threshold of 1 and offset the looser voting with a larger minimum component size. The default prompt is dataset-dependent either way and usually needs a quick per-dataset experiment; the docs now say so. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Both operators produce categorical label maps, so declare the output port type accordingly: downstream nodes see a LabelMap port and the volume sink applies its label-map rendering defaults. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Typing voxel indices was a poor proxy for SAM's click-first prompting, and the quality of the seed is the main determinant of the result. SAM2SeedWidget shows a slice of the input volume in the operator dialog: left-click sets Seed X/Y, a slider drives Seed Z, the Z Axis choice controls the slicing direction, the wheel zooms about the cursor, and a right-drag pans. The widget embeds the standard JSON-driven form rather than duplicating it, and the seed round-trips through the existing seed_x/y/z parameters, so serialization and external execution are unchanged. Point mode becomes the default prompt mode, matching the new interaction (and the Python default). Offscreen gtests cover the form embedding, click-to-voxel mapping, slider/seed sync, axis switching, value restore, and zoom anchoring. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Applying an external executor now stores its environment path in QSettings keyed by the operator's JSON name, and a node with no configured executor starts with the remembered path prefilled. The SAM 2 / SAM 3 conda environments (and any other external operator's) only need to be picked once; a node's own configured path always wins over the remembered one. Also derive the env-path row's initial enabled state from the executor combo rather than the node's executor type: a fresh externalOnly node shows External selected but previously left the path row disabled. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Avoid a shared QApplication helper /proc/self/exe, which only works on Linux. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
After the seeded object ends, the video tracker can reattach to other bright objects, leaving phantom regions. Trim the mask below an intensity floor and keep only the seed-connected component, both on by default. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Render the seed slice through the volume's color transfer function and observe its ModifiedEvent, so the dialog matches the main window's colormap and follows edits live. Falls back to a grayscale stretch when no ParaView session exists. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Replace seed_x/y/z with a single vector seed parameter so the three spinboxes share one row, like Shift3D. Values saved under the old parameter names fall back to the default seed. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
vtkVolume::RenderVolumetricGeometry() updates the mapper before its own no-input check, so a visible but empty volume logs a spurious pipeline error on every render. State load restored visibility ahead of the threaded pipeline execution, which is where it showed up. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
The buttons only refreshed on view changes, and port selection nulls the active node, so they could latch disabled with no way back. Enable them whenever a valid LUT is present, refresh on every setLUTProxy call, and clear the proxy when the selection has no colormap. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This allows components which have a very thin connection to be labeled separately. It's an optional parameter. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
They were not being added or applied correctly, and label maps were not resetting the range. This should all work fine now. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Matching the main window's colormap called colorMap(), which creates one when absent, leaving the input volume with an unrescaled default it never had. Use it only if it already exists; otherwise fall back to grayscale. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Setting port data drives the sinks, so an externally-executed label map was rendered through the upstream volume's colormap before its own segmentation colormap existed: miscolored, with a GPU lookup table VTK had to clamp. TransformNode::execute already does this for internal nodes. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
reimplement "Save Data" to be in line with the new pipeline
This appears to work now and is needed for security. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
add an interactive/raw json editor for node definition
Links the 17 operators with hand-written documentation to their section, and converts the existing 2.x-style "page/#anchor" URLs to the "page.html#anchor" form the Sphinx docs serve. The two that pointed at anchors no longer present now target the generated operator reference. Every URL was checked against a local docs build. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Restore the parameter form's description label, hide the Definition tab
for nodes with a custom parameters widget, reject clearing a description
down to "{}", and keep properties panels transparent inside the new
scroll area.
Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
The hard-coded version now wins over "git describe", which keeps reporting 2.3.1 until the 3.0.0 tag exists. git still supplies the commit suffix, and a newer tag still takes over the number. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Writes the script to a chosen .py file and the JSON description beside it as <name>.json. Both come from the editor widgets, so unapplied edits are included, and the description is validated first. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Windows refuses to delete or rewrite a file that is still open, so the save-script test failed there on QFile::remove().
urlretrieve has no timeout, so a stalled download of the 649 MB chipset fixture hung until CTest killed the test 25 minutes later. Read in blocks with a 60 second socket timeout and let the existing retry loop handle it. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Add remaining changes for the 3.0 release
This just includes a couple of bug fixes which might be relevant for us. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Update pybind11 to latest - 3.0.4
State loads reset the ParaView session but never re-registered the restored views with the animation scene or time keeper, so animations ticked without rendering. Also flush animation property writes and relink the dialog's frame count spin box to the new scene. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Contour and slice ranges were only read on selection changes, so they went stale whenever the pipeline produced new data. Track executionFinished and rebuild a tab only when its range actually changed, so user-entered values survive unrelated runs. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.