Repository navigation
Conversation
This 3.0 branch is for the new release we have planned. Ensure the CI runs for it, while we are using it. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Q3 Features and Fixes
This was originally removed in d031416, since I originally thought it did not make sense for a B&C editor to also modify opacity. Users are actually expecting and relying on this, however, and adjusting the opacity to hide the voxels below the minimum is necessary for thresholding them out. Thus, we are restoring this behavior. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
For macos, it would appear *behind* the main window. We need to flag it as a Qt Tool for it to appear on top. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This warning is harmless and we should just ignore it. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This is very valuable for actually seeing the plots. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Rather than at compile time. This allows us to bundle them later. For the conda-forge packages, we don't want to bundle them, but for the DMG/MSI files, we do. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This rewires the deferred "insertion" operators (operators that are being inserted somewhere in an existing pipeline) so that they visually appear where they are going to actually be placed when they execute. Before, they would appear as if a new branch was being formed, but then move to their insertion location when applied. When "Cancel" is clicked, or escape/x button so that the dialog is closed, the connected operators are rewired according to their initial wiring (before the operator was added), and the pipeline is not re-executed. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This fixes a segfault. Also fixes a re-entrant `processEvents()` call. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Previously, the visualization would just be gone. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
As seen from the CI There are only a few warnings left on Windows, which look harmless but may be difficult to fix. Linux and Mac have no warnings. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
These are runtime warnings from deprecated functions. Just update them to the recommended versions. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
These reflect the expected import paths in newer versions of scipy. The older ones were deprecated. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This allows volumes to be rendered that are greater than the OpenGL limit (typically 2048 for many GPUs) by bricking them together. A single voxel of overlap is present between the bricks so that no seams are displayed. The bricking is only performed if the volume exceeds the limit size, so all volume rendering is the same performance if it is smaller than the limit. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
We have historically used `vtkDataArray::GetRange()/GetFiniteRange()`, but this function is not thread-safe (due to its cache), and we have been calling it in a background thread. I recently ran into a segmentation fault that is probably unlikely, but we want to avoid all crashes. So we must compute the histogram range ourselves to avoid all crashes. The result is actually cached one level up so this shouldn't affect performance. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Restore rescaling opacity to B&C editor
Previously, if we failed to read an HDF5 file (perhaps because it was open for writing in another process), it would kill the whole table setup. This makes several steps in the PyXRF source more robust to errors like this. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Otherwise, the warning gets swallowed and it just shows up as "fail". Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This will help prevent flakiness in the CI Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
The first issue was another case of calling OpenGL code from a background thread instead of the GUI thread. To fix it, we added a `ThreadUtils.h` file that provides helper functions, which allows us to consolidate repeated code sections. Then we used this helper function in the new volume block sections. We also made `m_node` a QPointer and guard against it being nullptr. That prevents another crash. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
They were just not appearing before. This was not an issue in the packaging. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Recent updates to 3.0
Previous scaling wouldn't work since arrays with different shapes were not allowed. This fixes the issue by cleaning the arrays out at the end and then putting the new arrays (with the new shapes) in. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Previously, the dialog pop-ups, including the operator dialogs, could show up behind the main window, or if you click the main window they would move behind the main window. This is kind of annoying - the pop-up dialogs should remain in front. This adds a utility function that is utilized, as well as setting parents correctly in all of the dialogs, that fixes the issue. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
A Camera Orbit viewpoint added at load sat at the top of every path a user built afterwards, framed by the load-time camera. Play with nothing set up to animate now makes it from the current view, before the player starts, so the list stays empty until then and a lone plain viewpoint, an authored animation or a time series is left alone. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Legs and orbits now carry a frame count instead of a relative weight, and the scene's total is their sum, shown in place of the frame box. Older state files convert their weights, and a leg of zero frames plays as a cut. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
The custom transform manager dropped ~/.tomviz from the search paths, so operators placed there by earlier releases vanished; it is scanned again, read-only. Its tests also pass on Windows now. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
A tilt series of a synthetic object arrives on a wall clock, and should_auto_execute asks for a re-run only while new projections exist, so it shows every hook a live source needs. It heads the Sample Data menu and turns on periodic execution through a new autoExecute block. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
examples/batch builds four volumes and a blur-threshold-label pipeline and runs them all with one tomviz-pipeline call. A test runs the example, skipping when tomviz-pipeline has no label map writer. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Rename sets the editable flag before opening the editor, and Qt reports that as an item change, so the deferred rename handler saw an unchanged name and rebuilt the list, closing the editor before the user could type. An unchanged name is now left alone. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
flush_dataset flattened a replaced array in Fortran order and handed VTK a one-component array, so a script that replaced an RGB stack's array left the image with three times too many scalars and the channels scrambled. Interleave the components the way VTK stores them. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Recalling a viewpoint or playing a recorded change of exploded axis went through the setters that refit the camera, which yanked it away from the viewpoint just placed or off the path mid-flight. The axis setter takes the same refitCamera switch the enable setter has, and both are passed false from the recorded animations and Go To. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
The directory fingerprint only covered the recon_*.npy files, so a scan whose arrays arrived before its angle config was never absorbed until some later change. The config files count now. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
ParaView clamps the clipping range to cached scene bounds that it only refreshes for its own representations, so data tomviz adds to the renderer directly was cut once it grew or moved. The bounds are now refreshed at the start of every render of every render view. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Operator search matches names, and "FFT (abs log)" did not contain "Fourier". It is now "Fast Fourier Transform (FFT)", with a description saying it shows the log magnitude, and the Fourier operators refer to it by the new name. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Outputs copied the color map of the first input in port-name order, so Fourier Mask took its mask's label colors. They now follow the primary input and skip label maps, and an output with nothing to inherit, like the FFT's, which opts out, starts from the default preset. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
New labels took the next color in sequence, so a label map with labels removed from the middle, like the output of Remove Labels, shifted the color of every label after them. A label now keeps its color in any label map that holds it. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Save Data only offered persistent ports, so a transient output still in memory, like the last step of a pipeline, could not be saved. Any port holding data now can, and the dialog names transient ports whose data was released and says how to get it back. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
ParaView's linkToOtherView() connects QWidget::close, a slot, as a signal, which warned "signal not found" on every camera link and leaked the link widget. tomviz now shows that widget itself and frees it once it hides. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Opacity edits reach the proxy one event-loop turn late, so range changes rescaled a copy that still held the placeholder nodes. Each auto-contrast Apply squeezed the curve further, and Reset Range left it narrowed. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Entering 2D always viewed a slice from one fixed side with a fixed up. The camera now stays on the side it was on, with the in-plane axis nearest its current up pointing up. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
The cut-out and exploded view grow, shrink and change setup smoothly instead of snapping, slices and clips swing round to a new direction, and volume solidity is recorded and can be swept. Clip normals are recorded in the data coordinates they are restored in. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Orbits turn at constant speed unless their own Ease In/Out is checked, new legs take 100 frames, and captions are centered on their position, the bottom middle by default, with clearer field text. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Builds without git history, such as one from a release tarball, now report 3.1.0 rather than 3.0.0. The SAM environments drop the beta channel from the 3.0 prerelease and accept tomviz-pipeline up to 4. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Showing a clip again, as playback and Go To do, drew its arrow whenever Show Arrow was checked, even with Show Plane off; so did a state file that set Show Arrow after Show Plane. The arrow now needs both. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Viewpoints record a volume's solidity too, so the tooltip listing what they record now says so. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
File and Animation > Export Movie... still ran ParaView's exporter, which has no MP4 writer in our packages; only the Animation Helper's button opened the tomviz dialog. Both now do, and the dialog hides the "x" between the custom width and height along with the fields. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
tomviz supports 3.14, and ParaView 6.1 and the rest of the test environment, including the PyXRF stack, resolve for it on Linux, macOS and Windows. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
visible_if hid a string parameter's field but left its label behind, since the label is the field's buddy rather than the row's; Fourier Peak Mask showed a bare "Peak Centers" with auto-detect on. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Clone Data now walks up to the source feeding the selected branch and keeps a label map's type and label table. A PyXRF scan range that names no scans lists nothing instead of every file, and a config comment gives the right tomviz-pipeline bound. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Changing Contour by fed the mapper the bare contour surface, which lacks the color-by array, so a colored contour turned white. Every mapper hookup now goes through one helper that probes the color array when Color by is on. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
A peak at index 0 of an even-sized axis (the Nyquist frequency) is its own mate, but mirroring gave index n, off the grid, so the mate's window landed on the far edge and auto-detection kept both of the pair. This was carried over from the reference MATLAB. Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Removing a node deleted it while the worker thread could still be running, or about to run, its should_auto_execute() query. The removal now waits for the worker to finish with the node first. 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.