If the HDR viewer is unavailable, load the classic 8bit image viewer,
but do not allow the user to switch to it anymore if the HDR viewer
is available unless a specific environment variable has been provided.
When using the Edit > Paste menu, or when pressing Ctrl+V while the Graph
Editor has the focus but the mouse is not contained in it, there is no
current mouse position in the GraphEditor so the position that is provided
to the "pasteNodes" function is the last known mouse position, which is
oftentimes on the border of the GraphEditor.
This commit automatically sets the mouse's position to the center of
the GraphEditor, and "builds" the zone containing the pasted nodes around
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).
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).
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
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).
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).
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.