Commit graph

4420 commits

Author SHA1 Message Date
Yann Lanthony
61d35904ba [core] Discard attribute callbacks during graph loading 2024-11-14 19:11:08 +01:00
Yann Lanthony
98f1a9d516 [tests] Update tests to load graphs with strictCompatibility
Update tests that should fail if nodes are loaded as
CompatibilityNodes (resulting in false positives).
2024-11-14 19:11:08 +01:00
Yann Lanthony
3218c41bdc [tests] Add strictCompatibility graph loading test 2024-11-14 19:11:08 +01:00
Yann Lanthony
c09a0d2327 [core] Add 'strictCompatibility' mode for loadGraph function
Provide a way to control how to handle node compatibility issues
when loading a Graph with the `strictCompatibility` parameter.
Introduce a new error type, GraphCompatibilityError, to be raised
when loading a Graph with compatibility issues with strictCompatibility enabled.
2024-11-14 19:11:08 +01:00
Candice Bentéjac
c3bb55a414
Merge pull request #2597 from alicevision/dev/injectLineup
[nodes] Add new `SfMPoseInjecting` node
2024-11-14 14:39:03 +00:00
Candice Bentéjac
c0c988c4f2 [nodes] SfMPoseInjecting: Update doc, labels and descriptions 2024-11-14 12:51:15 +01:00
Grégoire De Lillo
5fca8a74e2 [ui] Viewer3D: Fix wrong camera up vector initialization
Default camera up should be accurate and consistent with camera view center.
Default camera up vector is not refresh or checked when default camera view center is set.
2024-11-14 10:49:56 +00:00
Grégoire De Lillo
bfda6f66ac [ui] Viewer3D: Use directional light & add light controller
Use a single light entity instead of one per camera.
Use directional light instead of point light.
Add camera relative directional light controller.
2024-11-14 10:49:56 +00:00
Grégoire De Lillo
9df260ac6c [ui] scene3D: Add getRotatedCameraViewVector function 2024-11-14 10:49:56 +00:00
Grégoire De Lillo
39b7dfd512 [ui] Viewer: Add PhongImageViewer and toolbars to Viewer2D 2024-11-14 10:49:56 +00:00
Grégoire De Lillo
b6b9d1b34f [ui] Viewer: Add PhongImageViewer component 2024-11-14 10:49:56 +00:00
Grégoire De Lillo
765a1f96d5 [ui] Viewer: Add PhongImageViewerToolbar component 2024-11-14 10:49:56 +00:00
Grégoire De Lillo
9b48531cb7 [ui] Controls: Add DirectionalLightPane component 2024-11-14 10:49:56 +00:00
fabien servant
69ea5b88d2 [qt6][Viewer3D] Fix mouse camera controller 2024-11-14 10:03:44 +01:00
Candice Bentéjac
65a014d9b1 [qt6][Viewer] Viewer2D: Fix fit() with the Sequence Player
With the Sequence Player always enabled by default, the `fit()` function
must be triggered at the right moment, and only once the layout has
been correctly initialized; otherwise, zoom factors may become negative
and the images will not be placed correctly in the viewer.

Changes in the orientation tag must be handled independently from the
state of the zoom factor.
2024-11-13 18:48:07 +01:00
Fabien Servant
670d949c59 Pose Injecting node 2024-11-13 13:57:40 +01:00
Candice Bentéjac
2699bffcda [qt6][ImageGallery] IntrinsicDisplayDelegate: Support File attributes 2024-11-07 18:19:14 +01:00
Candice Bentéjac
a61231916f [qt6][GraphEditor] Node: Ensure readOnly is set with a boolean 2024-11-07 18:19:13 +01:00
Candice Bentéjac
36f7f4e420 [qt6][Viewer] Viewer2D: Fix automatic fitting for missing orientation tags 2024-11-07 18:19:08 +01:00
Fabien Servant
d4eb365ada [qt6][Viewer] Fix zoom in 8bits viewer 2024-11-07 18:15:45 +01:00
Candice Bentéjac
62f0a3e5df [qt6][Viewer3D] Change picking behavior 2024-11-07 18:15:44 +01:00
Candice Bentéjac
b884fc4e6b [qt6] Viewer3D: Reset the default render mode to "Textured" 2024-11-07 18:15:43 +01:00
Candice Bentéjac
5953ed5767 [qt6] Add QT6 support for wireframe on nvidia 2024-11-07 18:15:42 +01:00
Candice Bentéjac
5a0b1c0c95 [qt6][qml] Clean-up code and harmonize comments 2024-11-07 18:15:37 +01:00
Candice Bentéjac
b12d1fed06 [qt6][qml] Remove unnecessary module imports 2024-11-07 18:13:36 +01:00
Candice Bentéjac
c5be7e7cd4 [qt6][Charts] InteractiveChartView: Remove dead code and useless imports 2024-11-07 18:13:35 +01:00
Candice Bentéjac
039504782f [qt6][GraphEditor] Fix connections to ListAttribute pins
The callbacks of `childrenRepeater` (which was used to "fill"
`ListAttributes` with children) were not correctly set. Their prototypes
were missing the `index` argument, meaning that instead of being
provided with the child attribute that was added or deleted,
they were provided with its index in the model.

The added children attributes were also instatiated as empty attribute
pins that were still visible, thus increasing indirectly the spacing of
the initial pin.
2024-11-07 18:13:34 +01:00
Candice Bentéjac
52444ef0ad [GraphEditor] Edge: Set curve scale after initializing EdgeMouseArea
The curve scale of the mouse area for an edge used to be defined when
initializing the `EdgeMouseArea` for that edge. Setting it triggers a
chain of event that allow the mouse area to be active, thus correctly
detecting when it is being hovered or clicked on.

With Qt6, these events unfolded before the `EdgeMouseArea` had finished
initializing, which then caused it to not be active until the edge's
shape was modified (and the chain of events triggered again). It is now
set once the component has been created, so all the events can happen
in an environment where they are taken into account.
2024-11-07 18:13:33 +01:00
Candice Bentéjac
4933911f0b [components] Edge: Remove use of deprecated functions
QMouseEvent::x() and QMouseEvent::y() have been marked as deprecated and
should be replaced with QMouseEvent::position().x() and
QMouseEvent::position().y().
2024-11-07 18:13:32 +01:00
Candice Bentéjac
49a3fcb72f [qt6][Viewer] Viewer2D: Remove outdated sfmRequired property 2024-11-07 18:13:31 +01:00
Candice Bentéjac
8eebe5ecb9 [qt6][qml] Homepage: Improve minimum width 2024-11-07 18:13:30 +01:00
Candice Bentéjac
54b59d0c5e [qt6][qml] Push Application on the stack before loading the project
This prevents crashes when the project is done loading but
`Application` is not yet ready.
2024-11-07 18:13:29 +01:00
Candice Bentéjac
de966e38e5 [qt6][ui] AboutDialog: Display PySide's version 2024-11-07 18:13:28 +01:00
Candice Bentéjac
ec139defb7 [qt6][ImageGallery] IntrinsicDisplay: Harmonize naming of components 2024-11-07 18:13:28 +01:00
Candice Bentéjac
e97575a901 [qt6][qml] Remove QtQuick.Window imports
`QtQuick.Window` does not exist anymore with Qt6. QQuickWindow is now
directly part of the QtQuick module.
2024-11-07 18:13:27 +01:00
Candice Bentéjac
645b822e56 [qt6][GraphEditor] Fix the width for the TaskManager's list 2024-11-07 18:13:26 +01:00
Candice Bentéjac
f06c5a2663 [qt6][MaterialIcons] Fix disabled buttons' behaviour when interacted with 2024-11-07 18:13:25 +01:00
Candice Bentéjac
9fb8ea83fb [qt6][Viewer] Fix display of metadata 2024-11-07 18:13:24 +01:00
Candice Bentéjac
8007bc51e8 [qt6][GraphEditor] Set preferred size for the list of chunks 2024-11-07 18:13:23 +01:00
Candice Bentéjac
fbe72a0ad6 [qt6][GraphEditor] Correctly detect clicks on edges 2024-11-07 18:13:22 +01:00
Candice Bentéjac
66c39633b4 [qt6][Viewer3D] Use DiffuseMapMaterial for texture display
Replace `DiffuseSpecularMaterial`, which does not seem to support
correctly textures anymore, with `DiffuseMapMaterial`.
2024-11-07 18:13:21 +01:00
Candice Bentéjac
9867773953 [qt6][GraphEditor] Check for object's existence before accessing it 2024-11-07 18:13:20 +01:00
Candice Bentéjac
fb5a882074 [qt6][core] Don't store SignalInstance in dict for node computations
When converting the `StatusData` to a dictionary, only data attributes
should be stored in said dictionary. With Qt6, the `objectNameChanged`
signal, of type `SignalInstance`, is added to the dictionary. It needs
to be removed manually as it is not JSON-serializable. Otherwise,
the nodes cannot be computed anymore.
2024-11-07 18:13:19 +01:00
Candice Bentéjac
92e56673ed [qt6] Use JS functions format to declare explicit parameters in slots 2024-11-07 18:13:19 +01:00
Candice Bentéjac
240188c0b4 [qt6][Viewer3D] Disable wireframe mode
Disable and hide the wireframe mode as the shaders need to be updated
for RHI.
2024-11-07 18:13:18 +01:00
Candice Bentéjac
77bd2a7145 [qt6][Viewer] Viewer2D: Trigger auto-fit() on correct events
The fit must be automatically triggered when the size of the image
changes. In case the image size remains the same but the orientation tag
is updated, this means that the displayed size of the image has changed
(with the orientation taken into account, the width and height might end
up being inverted), so the fit should also be triggered.
2024-11-07 18:12:59 +01:00
Candice Bentéjac
05e7d9eaee [qt6] Use JS functions format to declare explicit parameters in slots 2024-11-07 18:09:14 +01:00
Candice Bentéjac
2b569c1fd8 [qt6][Viewer3D] Inspector3D: Set color for labels in Inspector 2024-11-07 18:09:13 +01:00
Candice Bentéjac
f6a9e5d59c [qt6][Viewer3D] Remove PointSize render state
`PointSize` is not supported by RHI.
2024-11-07 18:09:12 +01:00
Candice Bentéjac
570d88e040 [qt6] Stop enabling HighDpiScaling which is now deprecated 2024-11-07 18:09:12 +01:00