Commit graph

2507 commits

Author SHA1 Message Date
Loïc Vital
f8406aa6da [docs] python2 compatibility 2022-10-11 11:14:45 +02:00
Loïc Vital
b2db98f128 [doc] sphinx documentation setup 2022-10-11 09:59:33 +02:00
Fabien Castan
243c278bcc
Merge pull request #1778 from alicevision/dev/lv/useLastPathForOpenSave
Use most recent project as base folder for file dialogs
2022-09-28 23:06:54 +02:00
Fabien Castan
5079bba633
Merge pull request #1782 from alicevision/fix/copyPasteGraphEditor
[ui] Restrain the "copy/paste nodes" shortcuts to the GraphEditor
2022-09-28 23:01:22 +02:00
Fabien Castan
79e8202d88
Merge pull request #1784 from alicevision/fix/uidNodes
Fix and prevent mismatches between an attribute's type and its default value's type
2022-09-28 22:58:20 +02:00
Candice Bentéjac
1275975c6a [core] Check that ranges of a node's attributes are valid before loading it
For IntParam and FloatParam, which may have ranges, check before loading
the node that the non-null ranges are of the same type as the attribute.
If at least a range is not correct (e.g. "(0, 10, 0.1)" for a FloatParam,
for which "(0.0, 10.0, 0.1)" is expected), then the node is rejected (in
the same manner as when a default value is deemed invalid).
2022-09-28 10:47:00 +02:00
Candice Bentéjac
e7290313bf [nodes] Align FloatParams' and IntParams' ranges with their params' type 2022-09-28 10:41:39 +02:00
Candice Bentéjac
545f3a7218 [core] Check that the description of a node is correct before loading it
At Meshroom's launch, check that every node we attempt to load has a
valid description, i.e. that every parameter has a default value that
matches its parameter's type.

If there is at least one parameter with an incorrect default value,
the node is not loaded and a corresponding message will be displayed.

This prevents the user from loading erroneous nodes that may lead to
unexpected behaviours (such as a change of a node's UID between the
moment when it is written and the moment it is loaded).
2022-09-28 10:39:18 +02:00
Fabien Castan
77a9796ca3
Merge pull request #1783 from alicevision/dev/ionbuild
add a script to launch meshroom under ion environment
2022-09-27 17:00:46 +02:00
Candice Bentéjac
5b45182bcb [tests] Check that UIDs are identical when writing and loading a graph 2022-09-26 18:18:14 +02:00
Candice Bentéjac
1a63a5f819 [nodes] Align all nodes' default values with their params' type
Fix default values for:
- DepthMap: refineSigma (FloatParam); use float instead of int
- ImageMasking: hsvMaxSaturation (FloatParam); use float instead
of int
- ImageMasking: hsvMaxValue (FloatParam); use float instead of
int
- Meshing: estimateSpaceMinObservationAngle (FloatParam); use
float instead of int
- PanoramaInit: yawCW (BoolParam); use bool instead of int
2022-09-26 18:11:02 +02:00
Candice Bentéjac
83f1876e2c [nodes] CameraInit: set float default values for FloatParams
Fix the parameters with default values that do not correspond to
the parameters' types. For CameraInit, all the default values of
FloatParams that are set with integers are replaced with actual
float values.

These default values with an erroneous type would cause changes
in the CameraInit's UID when the intrinsics' default values were
written (with values of the correct type) and when they were
loaded (with values of the wrong type).
2022-09-26 17:48:57 +02:00
Candice Bentéjac
58784fb6ff [ui] Restrain the "copy/paste nodes" shortcuts to the GraphEditor
If a Ctrl+C or Ctrl+V shortcut is performed outside the GraphEditor,
the performed action should not be a copy or a paste of the nodes, but
the own copy/paste of the current element (e.g. if a Ctrl+C is made on
on the NodeEditor, then the copied element should be the one selected
in the NodeEditor, not the currently selected node).
2022-09-26 09:56:28 +02:00
Fabien Servant
06aa16243d [ION] wrong variable in script 2022-09-26 08:42:19 +01:00
Fabien Servant
595bf4aa1b [ION] adding qt plugin path 2022-09-26 08:39:59 +01:00
Fabien Castan
0f5ffd7d7c
Merge pull request #1777 from alicevision/fix/templateSaving
[core] Set the "template" flag to "false" when saving a project as a regular file
2022-09-24 00:21:10 +02:00
Loïc Vital
d0fcb67d1c [ui] rename Import Scene to Import Project for coherent naming 2022-09-23 11:22:36 +02:00
Loïc Vital
f4352e5254 [ui] file dialogs: use most recent project dir instead of system default 2022-09-23 09:39:22 +02:00
Candice Bentéjac
aa728919c8 [core] Explicitly set "template" key to false when saving as a regular file 2022-09-23 09:20:44 +02:00
Loïc Vital
a5c18606bc use most recent project as base folder when using Open action 2022-09-22 16:42:46 +02:00
Fabien Servant
263c806bfe [bin] add ion script for launch 2022-09-16 12:30:35 +01:00
Fabien Castan
f9e5a5809c
Merge pull request #1747 from alicevision/fix/uidCameraInit
[nodes] CameraInit: all intrinsics parameters should invalidate
2022-09-15 18:32:58 +02:00
Fabien Castan
95bb93b4bf [nodes] CameraInit: upgrade node version
Change in uid should modify the node version and thus require a manual upgrade of the node when loading previous scenes.
2022-09-15 17:29:15 +02:00
Fabien Castan
032ac712fd [nodes] CameraInit: all intrinsics parameters should invalidate 2022-09-15 17:29:15 +02:00
Fabien Castan
ee20136f82
Merge pull request #1764 from alicevision/dev/displayComputeTime
[ui] Display computation time for "running" or "finished" nodes
2022-09-10 00:27:34 +02:00
Candice Bentéjac
5542516ba4 [ui] Display computation time for "running" or "finished" nodes 2022-09-09 16:36:43 +02:00
Fabien Castan
277384f5ef
Merge pull request #1390 from alicevision/dev/nodeSfmTransformCamerasXAxis
[nodes] SfMTransform: add auto_from_cameras_x_axis
2022-09-08 18:29:54 +02:00
Fabien Castan
27faf9f77c
Merge pull request #1758 from alicevision/dev/copyPasteNode
Support copying/pasting a node in the Graph Editor
2022-09-08 17:42:12 +02:00
Candice Bentéjac
61e0482a21 Add an offset to the position of pasted nodes if a node is hovered
If a node is being hovered when the user performs the paste, an
offset is added to the mouse's position, both in the horizontal and
vertical directions. This aims at avoiding a complete overlap with
the nodes on top of which the clipboard content is pasted.
2022-09-08 15:21:57 +02:00
Fabien Castan
267aff5a09
Merge pull request #1767 from alicevision/bugfix-tonode-submit
removed duplicated call to findnodes
2022-09-07 20:21:30 +02:00
Fabien Castan
5ad4c82f39
Merge pull request #1768 from luzpaz/typos
Fix various typos
2022-09-07 20:19:06 +02:00
luz paz
25b091b304 Fix various typos
Found via `codespell`
2022-09-07 10:51:41 -04:00
Fabien Castan
cc7d45eb74
Merge pull request #1740 from alicevision/dev/noIdentityMatches
[Feature Matching] Add an option to remove matches without enough motion
2022-09-07 16:04:23 +02:00
Fabien Castan
64e497e2b5
[nodes] FeatureMatching: expose minRequired2DMotion 2022-09-07 13:15:32 +02:00
Fabien Servant @ TCS
dd5045564f
[FeatureMatching] Change label and description of option
Co-authored-by: Fabien Castan <fabcastan@gmail.com>
2022-09-07 11:49:39 +02:00
Fabien Servant
89899fc7c4 [featurematching] add min required 2d motion parameter 2022-09-07 11:00:01 +02:00
Fabien Castan
668e83f8bb [nodes] SfMTransform: add auto_from_cameras_x_axis 2022-09-07 10:43:40 +02:00
Candice Bentéjac
9f1b866e78 Paste the selected nodes relatively to the mouse's position
The mouse's position is the top-left corner of a zone in which all
the selected nodes will be pasted. The bottom-right corner of that
zone is (x, y), with x the maximum of the selected nodes' position
along the x-axis and y the maximum of the selected nodes' position
along the y-axis.

The nodes relative position to one another - if positions are provided -
is preserved.

If no node in the selection has a specified position, the nodes will
be pasted from left to right alphabetically, with the top-left corner
of the first node at the mouse's position.
2022-09-06 15:40:59 +02:00
Candice Bentéjac
6bb0ad4508 Add a "Paste Node(s)" option in the nodes' right click menu
The "Paste Node(s)" option copies the selected nodes to the
clipboard (as does the "Copy Node(s)" option) and immediately
pastes them into the graph.
2022-09-06 11:20:25 +02:00
Candice Bentéjac
d06acf6722 Reconnect copied/pasted nodes together but not to the graph
If several nodes are described in the clipboard and are supposed to
be connected with each other, reconnect them together, but do not
attempt to reconnect them to the graph they were copied from, even if
it is the current graph.
2022-09-06 11:13:29 +02:00
Matthieu Hog
f491b5a77b removed duplicated call to findnodes 2022-09-06 10:57:29 +02:00
Fabien Castan
22b662007b
Merge pull request #1754 from alicevision/dev/minModeTemplates
Add dedicated "minimal" mode for templates
2022-09-06 10:41:01 +02:00
Candice Bentéjac
ac4cb11c3d [ui] Reload the list of templates after "Save As Template" 2022-09-06 09:43:29 +02:00
Candice Bentéjac
abacd2cafb [pipelines] Update all templates with "minimal" mode 2022-09-06 09:43:29 +02:00
Candice Bentéjac
c44b2a8c00 Add "minimal" mode for template files
Add a specific option to save a graph as a template ("Save As
Template") in "minimal" mode.

This mode only saves, for each node in the graph, the input and
output attributes whose values differ from the default ones. Any
attribute that is not serialized in the saved template file is
assumed to have its default value.
If a conflict is detected on a node when opening the template
file, it is logged but solved automatically.

The goal of this minimal mode is to prevent template files from
needing an update every single time a modification (may it be
minor or major) is done on a node description. Templates can
thus follow node changes and still be usable.
2022-09-06 09:43:19 +02:00
Fabien Castan
aa1edf8d7b
Merge pull request #1766 from alicevision/fix/uiImageGallery
[ui] ImageGallery: fix some minor issues
2022-09-05 17:22:28 +02:00
Candice Bentéjac
0fb487b098 [ui] ImageGallery: prevent intrinsics table from overlapping with the "Group" label 2022-09-05 09:33:30 +02:00
Candice Bentéjac
9c41ce2401 [ui] ImageGallery: update group index when CameraInit node is double-clicked
If a node of type "CameraInit" is double-clicked in the Graph Editor,
the Image Gallery group index will immediately be updated to display
the corresponding node's information.
2022-09-02 19:19:28 +02:00
Candice Bentéjac
e395bc08e5 [ui] ImageGallery: start group index at 1 instead of 0
The first group will not be displayed as "Group 0 / X" anymore,
but rather as "Group 1 / X".
2022-09-02 19:14:15 +02:00
Candice Bentéjac
1f800aefd5 Compare attribute's resolved link with default value
If an attribute is a link, when checking whether its value is
the default value, only the resolved value should be compared
with the default one. Otherwise, the attribute's "isDefault"
property will always evaluate to True, even when a non-default
link has been provided.

This issue was especially evident with input File attributes,
for which the default value is generally '' (empty string); if a
link was set as a value (thus non-empty), its unresolved value
would still be '', thus setting the "isDefault" property to True.
2022-09-01 14:13:49 +02:00