Commit graph

2805 commits

Author SHA1 Message Date
Candice Bentéjac
835e396d8d [core] Remove reference to pyCompatibility
pyCompatibility has been removed at the same time as Python 2 support.
2023-02-15 08:36:15 +00:00
Candice Bentéjac
7688b94ce5 [core] Raise compatibility issue if nodes miss invalidating internal attributes 2023-02-15 08:36:14 +00:00
Candice Bentéjac
b470078667 [tests] Add checks on internal attributes in the templatesVersion test
If some internal attributes are saved in the templates, their description
should be checked just like the input attributes to ensure there are no
conflicts.
2023-02-15 08:36:14 +00:00
Candice Bentéjac
91db7657ac [core] Don't write "internalInputs" entry in templates if there are only default values
Non-default internal attributes need to be written in the templates,
but the "internalInputs" entry in the dictionary should not be written
at all if all the internal attributes are set to their default values.
2023-02-15 08:36:13 +00:00
Candice Bentéjac
3689c12e9c [core] Check existence of group or list attributes correctly
"hasAttribute" was previously never called before attempting to
access an attribute. With the addition of internal attributes, we
want to check the attribute's/internal attribute's before accessing
it to avoid KeyError exceptions. "hasAttribute" (and the newly added
"hasInternalAttribute") would not parse the attribute's name before
checking for its existence, meaning that errors could be generated for
list or group attributes as their checked name could contain other
elements (e.g. "featuresFolder[0]" for a ListAttribute named
"featuresFolder").
2023-02-15 08:36:13 +00:00
Candice Bentéjac
1015ea448a [ui] Add an icon and tooltip on a node's header if it has a comment
If the "Comments" internal attribute is filled, add a corresponding
icon in the node's header, as well as a tooltip that contains the
comment.
2023-02-15 08:36:13 +00:00
Candice Bentéjac
b645db99f7 [core] Include internal attributes in the UIDs computation 2023-02-15 08:36:12 +00:00
Fabien Castan
cc3c19ba15 [core] internal attributes: update descriptions and declare "invalidation" as an advanced attribute 2023-02-15 08:36:12 +00:00
Candice Bentéjac
fe3a0764b0 [core] Do not save default internal attributes in template mode 2023-02-15 08:36:11 +00:00
Candice Bentéjac
930af07966 [core] Correctly load internalAttributes in compatibility mode 2023-02-15 08:36:11 +00:00
Candice Bentéjac
21d01acc9a Add "color" as an internal attribute
Setting this attribute allows the user to change the color
of a node, either by directly providing an SVG color name or an
hexadecimal color code, or by picking a color with the selector.
2023-02-15 08:36:11 +00:00
Candice Bentéjac
330382ab0c Add "label" as an internal attribute
Setting the "label" internal attribute allows to give a custom
label to replace the node's default label.
2023-02-15 08:36:10 +00:00
Candice Bentéjac
9bc9e2c129 Add "Notes" tab with "comment"/"invalid comment" attributes
Add two internal attributes, "Comment" and "Invalid comment", in
a specific "Notes" tab, which will contain any further internal
attribute. Internal attributes exist for all nodes.
2023-02-15 08:36:10 +00:00
Fabien Castan
1fc2b228af
Merge pull request #1896 from alicevision/fix/dragDropImages
[ui] Drag&Drop: Use a pool of threads for asynchronous intrinsics computations
2023-02-14 21:23:27 +01:00
Fabien Castan
ac27d14d79
Merge pull request #1888 from alicevision/mug/fixSyncCamView
[ui] fix "Sync Camera with Image Selection"
2023-02-14 21:05:38 +01:00
Fabien Castan
ed72687116
Merge pull request #1838 from alicevision/mug/trackEndpoints
[ui] FeaturesViewer: track endpoints
2023-02-14 19:39:05 +01:00
Candice Bentéjac
246843a769 [ui] Reconstruction: Use a ThreadPool for asynchronous computations
When importing images, the intrinsics were (re)built asynchronously in
a thread that was not attached to anything. The update of the intrinsics,
performed in the main thread following a signal emitted in the detached
thread, would block when there were already some existing intrinsics
because the garbage collector would destroy the thread in which the
new intrinsics had been computed while the update was ongoing.

This commit adds a ThreadPool to the Reconstruction object, and uses it
to perform the intrinsics computations asynchronously. The update of the
intrinsics thus does not remain blocked and images can be imported safely,
either though the "Import Images" menu or through drag & drop.

The "Update Intrinsics" button, which appears when the dialog to edit the
sensor database is on display, also uses the ThreadPool to recompute the
intrinsics when requested.

The "runAsync" method, which spawned a thread without attaching it to
anything, is removed. The "importImagesAsync" method, whose only goal
was to call "runAsync" on "importImagesSync", is also removed. Instead,
the pool of threads is directly used to call "importImagesSync"
asynchronously.
2023-02-14 17:26:36 +01:00
Candice Bentéjac
b5fab79e09 [ui] Import images asynchronously with the "Import Images" menu action
Loading images with the "Import Images" menu action is a blocking
operation that might freeze the app if there are many images to import.

This commit performs the import asynchronously (similarly to what is done
when images are dropped in the Image Gallery): Meshroom remains unusable
while the images are imported and the intrinsics built (which is a wanted
behaviour), but it does not freeze at all.
2023-02-14 17:23:29 +01:00
Fabien Castan
6c5fea5f36
Merge pull request #1849 from alicevision/LdrToHdrMerging_checkbox
Ldr to hdr merging checkbox
2023-02-14 16:36:56 +01:00
Loïc Vital
e9a75c812c [ui] FeaturesViewer: make time window spinbox editable 2023-02-13 18:28:58 +01:00
Loïc Vital
ece2371166 [ui] display track endpoints option in features viewer 2023-02-13 18:01:45 +01:00
mugulmd
aea6eb19ab [ui] 3D image overlay: use autoTransform to avoid shrinking when resizing viewer 2023-02-09 03:45:13 -08:00
Fabien Castan
334bfc8b00
Merge pull request #1861 from alicevision/mug/thumbnailCache
[ui] Thumbnail cache
2023-02-09 11:08:09 +00:00
mugulmd
c758bf043b [ui] thumbnail cache: use thread pool to manage thread lifetime automatically 2023-02-09 01:50:38 -08:00
demoulinv
4a8232f23e [HDR sampling and calib nodes]
Add calibrationMethod as parameter at sampling.
Link calibrationMethod parameter of calib node to sampling node's calibrationMethod parameter in both HDR pipelines.
2023-02-09 10:13:45 +01:00
demoulinv
281991901d [HDR Calibration node]
Bypass management
2023-02-09 10:13:44 +01:00
demoulinv
d582286c5b [HDR calibration & merging] Update parameter set 2023-02-09 10:13:44 +01:00
Fabien Castan
5026d911d8 [nodes] LdrToHdrCalibration: fix alignment 2023-02-09 10:13:43 +01:00
demoulinv
251e9b614c [Node] hdrCalibration: Add parameter about targeted luminance of HDR images 2023-02-09 10:13:42 +01:00
Fabien Castan
c610671313 [nodes] LdrToHdrMerge: update description and remove from command line 2023-02-09 10:13:41 +01:00
demoulinv
982e79cc0f [LdrToHdMerge] Add checkbox enabling the manual setting of reference bracket for HDR merging. 2023-02-09 10:13:41 +01:00
Fabien Castan
db8d00e901 [ui] ImageGallery thumbnails: no need for caching and expensive smooth resizing 2023-02-08 21:50:04 +01:00
Fabien Castan
db8b3873e3 [ui] ImageGallery: do not reduce thumbnail resolution
As we rely on the thumbnails cache, the images are already downscaled at
a small resolution. So there is no more need to force a max resolution
on the Qml Image.
2023-02-08 18:20:54 +01:00
Fabien Castan
e2df8f842c
Merge pull request #1889 from alicevision/fix/attributeErrors
Fix exceptions raised when accessing attributes that either do not exist or are not associated to a graph
2023-02-08 14:09:09 +00:00
mugulmd
a52aeabedb [ui] 3D viewer: correct field of view using orientation tag 2023-02-06 08:37:30 -08:00
mugulmd
7e4b1a77ac [ui] factorize exif orientation transform in utility functions 2023-02-06 08:16:42 -08:00
mugulmd
205ff22b74 [ui] apply orientation tag to 3d scene to match 2d viewer 2023-02-06 06:09:37 -08:00
Candice Bentéjac
909f38ccb8 [core] Check a graph exists before accessing its name
If the graph does not exist, return "UNDEFINED" as its name.
2023-02-03 17:43:31 +01:00
Candice Bentéjac
6579ed3797 [Viewer] Check if active node's "input" attribute exists before accessing it 2023-02-03 10:58:16 +01:00
mugulmd
21f43075f0 [ui] fix transform used for camera in 3D viewer 2023-02-01 09:22:18 -08:00
Fabien Castan
d21b70f45d
Merge pull request #1887 from alicevision/docker/renameVar
[docker] rename var
2023-02-01 13:39:19 +00:00
Fabien Castan
581cdf6f84 [docker] rename var 2023-02-01 13:01:49 +00:00
mugulmd
9b0be36278 [ui] improve thumbnails quality 2023-01-26 05:10:35 -08:00
mugulmd
c48233141a [ui] ThumbnailCache: asynchronous cache cleaning 2023-01-23 06:29:15 -08:00
mugulmd
2f72f9e7d1 [ui] ImageDelegate: increase thumbnail timer to 5s 2023-01-23 06:28:30 -08:00
Fabien Castan
d4e9274001
Merge pull request #1818 from alicevision/dev/depthMapImprovments
[nodes] DepthMap: depth map improvements
2023-01-22 21:40:54 +00:00
Fabien Castan
2d5c69e4ad
Merge pull request #1874 from alicevision/fix/cameraInitVersion
[nodes] CameraInit: upgrade version following the parameters changes
2023-01-22 18:41:20 +00:00
Fabien Castan
d3ab9b59ca [nodes] CameraInit: upgrade version in pipelines 2023-01-22 19:35:08 +01:00
Fabien Castan
5b331fc139
[nodes] CameraInit: upgrade version following the parameters changes
The PR https://github.com/alicevision/Meshroom/pull/1863 changes the order of parameters and modify the node UID, so it requires a version upgrade.
2023-01-22 19:30:23 +01:00
Fabien Castan
d18e8397c6
Merge pull request #1862 from alicevision/dev/externComputeIcon
[ui] Display nodes computed in another Meshroom instance as "Computed Externally"
2023-01-22 18:10:16 +00:00