Conversation
This fixes a bunch of these warnings that were popping up: ```bash ( 8.446s) [paraview ]vtkDemandDrivenPipeline:675 ERR| vtkCompositeDataPipeline (0x63f818c46700): Input port 0 of algorithm vtkSmartVolumeMapper (0x63f817f9f7a0) has 0 connections but is not optional. ``` When data is attached, the visibility gets set correctly, so we don't need to make any other changes, other than preventing the sinks from attempting to render when no data is available. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This prevents some really annoying automatic resizing and moving of my entire main window to another monitor (which is then unable to be maximized). It was just happening because the tilt angles list was too large and not in a scroll area. This fixes the issue. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
We should show a slice instead of a volume by default if the data is a tilt series. A volume doesn't make sense to do. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This was causing a deadlock. Instead, keep a list of nodes/pipelines that need to be executed and do them in order. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This prevents it from taking up way too much main window space too, which caused the same issue as selecting the tilt series earlier. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
The input data wasn't available yet. We needed to get the transform properties panel to wait for it to be available. We also needed to go back to using the Tomviz `Python python;` for getting the GIL. And we needed to get the output of the test rotation centers correctly. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
The master branch saves/restores the size of the edit dialogs. We can do that here too so the user will see the dialog as the same size as before. This is a nice feature to have. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
We now call the wrapper like we used to. But I don't think this will fully work until state files work again... Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
New pipeline fixes
QVTKOpenGLNativeWidget grabs Qt::PanGesture, whose macOS recognizer enables single-touch trackpad events. VTK maps those to left button presses, so merely hovering drew rubber band rectangles in the 2D views and dragged histogram markers. Drop the touch events on macOS. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
HDF5 is built without thread safety, but pipeline executors call it from worker threads (shim files, port-data disk cache) while the GUI thread loads, saves and decodes intermediates. Lock every H5ReadWrite entry point with one recursive mutex. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Add ChimeraX-style Flat/Simple/Soft/Full buttons to the volume panel, driving VTK's volumetric scattering, global illumination reach, scattering anisotropy and opacity-derived normals. The individual parameters move into a collapsed Advanced section, and new volumes now start shaded on Simple rather than unlit. Scattering still frames are bounded by measuring a cheap probe frame and solving for the sampling that fits a time budget: an unbounded one can run long enough for the OS to reset the GPU, which is fatal on macOS and takes other applications with it. Camera moves render unlit, which is both the fastest option and the closest match to the scattering look. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
progress() left out the range start, so it was only correct for a range beginning at zero. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
The timeChanged handler that swapped time steps was lost in the legacy pipeline removal, so playing an animation never changed the volume. The color map now spans every step rather than rescaling to each one. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Our packages have no MP4 writer and .ogv does not play on macOS. Render PNG frames offscreen and encode H.264 with the ffmpeg executable, with resolution, frame rate and quality controls. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Gentle is matte, low contrast and casts no shadows, for noisy data where Simple turns noise into glitter. The Shadows box switches volumetric shadows off without leaving the selected preset. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
A playing time series swaps in a new image every frame, so keying on identity sent it back to a probe frame every time and pinned it at maximum coarseness. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
It also uploads the texture and compiles the shader, and extrapolating that one-time cost made the volume look unaffordable. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
A probe frame is dominated by fixed overhead, so scaling it up turned "the probe was slow" into "this needs 24 minutes a frame" and fired the valve on volumes that render fine. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Sharpness settles at the fourth root of the budget, so this is a real gain and still leaves 2x headroom under the tightest watchdog we ship against. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
The extra reach cost render time without changing the picture, so Full was trading its own resolution for nothing. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
It is a backstop against a measurement wrong in the optimistic direction, not against the overhead bias, which can only read pessimistic. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Nothing told the user why the shadows had gone away, so the panel now does. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
The clip sweeps by slice index while axis aligned and by distance along its normal when not, and all three visualizations can fade. Camera paths are built from saved viewpoints, each leg with its own length and easing, which a ParaView keyframe cue cannot express. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Visualization animations were owned by the dialog and lost on reload. They now live in a registry beside the viewpoints, and the frame count is saved too, since loading rebuilt the scene at a fixed 200. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
"Viewpoint 3" says nothing about which view it is. The picture is stored with the viewpoint, since it cannot be regenerated without flying the camera there and back. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Everything ran across the whole timeline, so nothing could be timed against the camera. A leg is looked up through the same stops the camera is paced by, so retiming it moves the visualization too. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Label maps carry a table of the labels present, each with a color and a visibility flag projected onto the transfer functions, reconciled rather than rebuilt so user edits survive a re-run. It is offered for any volume whose values read as labels, since a segmentation loaded from a file arrives as a plain volume. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
The guard keyed on the volume property, so every curve edit threw the estimate away. An animated curve never escaped its probe frame and rendered every frame at maximum coarseness. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Capture the curve in the histogram editor at each end and the volume dissolves between them. Matching point counts blend point by point, others through a table sampled over one reference window. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Tracking the curve is sharper on average but changes sharpness between frames, which reads as the picture breathing. Exporting sizes every frame for the most expensive point of the animation. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
scipy grows the output box and zero-pads the corners it gains, so a small alignment rotation adds slices that read as blank. Add an Expand to Fit option to turn that off. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Authored animations were invisible and each module could hold only one. A list now shows every animation with its own remove button, the camera modes become one radio choice, and the per-type tabs collapse into a property dropdown. Volume opacity morphs are keyframed per viewpoint. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
A label map renders through VolumeSink, so the helper offered it a curve morph that would fight the label table every tick. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
A scene nothing has configured holds one frame, so Play rendered a single still and the camera looked stuck. Apply the animation once on creation too, since playback starting at zero announces no time change. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Capturing was one way only, with no way to see what a keyframe held. Double clicking one puts its curve back, the counterpart of double clicking a viewpoint. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
An adopted label table lives in the sink, so its colors and names were lost on reload, and nothing recorded which animation drove the camera. Loading also dereferenced the main window, which is null headlessly. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Replace the personal conda env path with the supported shared deployment at tomviz_utils/bin/run-pyxrf-utils, built and verified on the HXN VDI cluster. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Several read as design notes rather than API docs, repeating rationale the implementation already carries at the point it applies. 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.