Commit graph

317 commits

Author SHA1 Message Date
Fabien Castan
dbcfce7c90
[ui] WorkspaceView: open images in the 2D Viewer from the Graph/NodeEditor
Double click on a node or an attribute with an image file to display it
in the 2D viewer.
2019-12-12 18:50:18 +01:00
Yann Lanthony
633b8c0e00
Merge remote-tracking branch 'origin/develop' into dev/syncCamera 2019-09-16 12:24:22 +02:00
Yann Lanthony
b9999c01eb
[ui] Update MaterialToolButton style
* flatten the button 
* color its icon when checked
2019-09-11 10:49:09 +02:00
Yann Lanthony
1c873508ef
[ui] Inspector3D: double click on media now sets node as "active"
To be consistent with the Graph Editor behavior, double clicking on a node sets it as the active node of its type. This, for example, enables to switch from one SfM to another from the media list.
2019-09-11 10:49:09 +02:00
Yann Lanthony
f870e252b4
[ui] Reconstruction: add 'setActiveNodeOfType' method
Helper method to set a node as the active one of its type.
2019-09-11 10:49:09 +02:00
Yann Lanthony
03e91bea49
[ui] Inspector3D: simplify handling of scene media items hovering
* add MouseArea at root of media
* use flow to display media info and avoid text clipping
2019-09-11 10:49:09 +02:00
Yann Lanthony
312b9f5e0b
[ui] Inspector3D: provide camera from Viewer3D 2019-09-11 10:09:27 +02:00
Yann Lanthony
2a3093b292
[ui] AlembicLoader: only select cameras on still left-clicks
don't trigger Camera selection if mouse has moved to rotate camera
2019-09-10 19:43:14 +02:00
Yann Lanthony
796517ccb1
[ui] AlembicLoader: use CuboidMesh extent to disable picking
Using an additional scale Transform changes Cuboid's size relatively to the Camera locator, which was unwanted.
2019-09-10 19:41:38 +02:00
Yann Lanthony
6e47235c9c
[ui] Viewer3D: don't display contextual menu on alt+right-click zoom
Only prompt right-click contextual menu when it was not used to zoom in the 3D view.
2019-09-10 19:37:54 +02:00
Yann Lanthony
8dce4fc72f
[ui] Viewer3D: add "Sync with Image Selection" camera mode
* Inspector
   * changed "SETTINGS" to "DISPLAY"
   * new "CAMERA" section: activate camera synchronization + control image overlay
* ImageOverlay: new component to display (undistorted) image on top of the 3D view
* ViewpointCamera: new component that sets up a Camera based on a Viewpoint internal parameter
* Viewer3D: additional ViewpointCamera to perform synchronization with image selection
* Viewer3DSettings: new properties related to camera synchronization mode
2019-09-10 19:33:55 +02:00
Yann Lanthony
774675bd65
[ui] Viewer3D: move Inspector3D outside Viewer3D
Inspector3D is not an overlay anymore to simplify 3D manipulations, by having view center at the center of the 3D view.
2019-09-10 19:28:14 +02:00
Fabien Castan
40c3430707 [ui] StatViewer: do not display uninitialied values 2019-09-10 18:56:23 +02:00
Fabien Castan
4cc78ad5ec [ui] StatViewer: more compatibility with previous "statistics" files
* compute max peak ram if no total ram info
* hide GPU chart if the file is from a previous version
2019-09-10 18:56:22 +02:00
Yann Lanthony
d46ed62b05
[reconstruction] add prepareDenseScene property
keep reference to active prepareDenseScene to be able to compose paths to undistorted images
2019-09-10 18:34:39 +02:00
Fabien Castan
8f630d5c09 [ui] StatViewer: compatibility with previous "statistics" files 2019-09-10 17:52:37 +02:00
Fabien Castan
dbeab285cf Merge branch 'develop' of github.com:alicevision/meshroom into dev/stats 2019-09-10 09:20:00 +02:00
Yann Lanthony
606cfc39c2
[ui] Viewer3D: fix Alembic visibility issues
Binding the "enabled" property of AlembicLoader's ObjectPicker to the parent MediaLoader's own "enabled" property caused invalid state where the loaded AlembicEntity was partially visible when toggling object visibility (since Qt 5.13).
In order to disable camera picking when AlembicEntity is disable, scale the camSelector component to 0.
2019-08-12 17:58:43 +02:00
Yann Lanthony
07ced073f3
[ui] StatViewer: introduce custom ChartViewLegend system
* add a generic ChartViewLegend component that provides an interactive legend for ChartViews
* rely more on data bindings to control Series visibility and display
2019-08-06 10:39:39 +02:00
Yann Lanthony
aedf10c838
[ui] StatViewer: fix "Toggle CPU" button
use MaterialLabel instead of Text
2019-08-06 10:31:39 +02:00
Yann Lanthony
001d9a3de8
[ui] StatViewer: fix average computation 2019-08-06 10:28:12 +02:00
Yann Lanthony
bedda0c5b6
[ui] simplify loading of statistics file
* NodeLog: remove intermediate property for Loader
* StatViewer
   * keep only one function to load source file
   * only send request only after the previous one fully completed
  * update deltaTime before initializing charts
  * reset "sourceModified" property when source changes
2019-08-06 10:23:59 +02:00
Lee Geertsen
1822bbe13d Dynamically load TextFileViewer or StatViewer depending on selected tab 2019-07-26 11:35:44 +02:00
Lee Geertsen
e48039bb2f Add StatViewer component to view statistics charts 2019-07-26 11:34:43 +02:00
Fabien Castan
059ca3685f
Merge pull request #539 from alicevision/dev/featuresViewer
Features Viewer
2019-07-25 20:58:18 +02:00
Yann Lanthony
f5607cb127
[ui] downgrade QtQuick import version for retro-compatibility 2019-07-24 18:13:23 +02:00
Yann Lanthony
aff5a98a4b
[ui] Viewer3D: use RenderSettings.Always renderPolicy
Since Qt-5.13, RenderSettings.OnDemand can lead to rendering issues due to non-triggered updates (e.g: when resizing the viewport or changing visibilities of objects displayed).
2019-07-24 18:04:39 +02:00
Yann Lanthony
36fc7ea069
[ui] GraphEditor: add "Refresh Nodes Status" MenuItem
Enables the user to force the re-evaluation of nodes status.
2019-07-24 18:04:39 +02:00
Fabien Castan
d5dc83f14e
Merge pull request #550 from alicevision/dev/coloredMeshViewer
Viewer3D: add support for vertex-colored meshes
2019-07-16 19:25:38 +02:00
Yann Lanthony
cee8d1b612
[ui] Viewer3D: add support for vertex-colored meshes
Use PerVertexColorMaterial if any vertex color data is available on a mesh without textures.
2019-07-10 16:35:44 +02:00
Yann Lanthony
52361d0b86
[ui] TextFileViewer: wait for request completion before sending a new one
On auto-realod mode, only trigger a new request when the last one has been completed. Avoids requests loops on slow filesystems that can lead to UI freezes.
2019-07-08 20:04:22 +02:00
Yann Lanthony
4563d32e3e
[ui] Viewer2D: add FeaturesViewer + dedicated overlay
Make FeaturesViewer available in Viewer2D to display the feature points of the current view, based on the current FeatureExtraction node.

* FeaturesInfoOverlay: overlay that displays info and provides controls over a FeaturesViewer component.
* ColorChart: color picker based on a set of predefined colors.
2019-07-04 18:25:02 +02:00
Yann Lanthony
8dd0a4be22
[ui] New FeaturesViewer component
FeaturesViewer wraps QtAliceVision plugin's FeaturesViewer component to display the extracted feature points of a View.
2019-07-04 17:51:44 +02:00
Yann Lanthony
4435ba9e1b
[ui] Reconstruction: add 'featureExtraction' member
* add featureExtraction property to keep track of current FeatureExtraction node 
* update it when current CameraInit node is changed
* allow to set current CameraInit by double clicking on a CameraInit node from the Graph Editor
2019-06-27 18:36:10 +02:00
Yann Lanthony
00857a7a88
[ui] Reconstruction: rename 'endNode' to 'texturing'
+ use makeProperty helper
2019-06-27 18:29:33 +02:00
Yann Lanthony
292b0fb5fe
[ui] About: update copyright year 2019-06-26 16:36:17 +02:00
Yann Lanthony
eb8023e02c
[ui] NodeEditor: display AttributeEditor by default 2019-06-26 12:57:30 +02:00
Yann Lanthony
2b07699f65
[ui] Viewer3D: improved trackball parameters
Make trackball larger and adjust rotation speed to make 3D navigation easier.
2019-06-26 12:57:30 +02:00
Yann Lanthony
2b1f2a8334
[ui] update MaterialIcons to 3.0 2019-06-26 12:57:30 +02:00
Yann Lanthony
55c9e3063d
[ui] TextFileViewer: simplify position restoring when source changes
Remove 'keepPosition' parameter: always try to reset position as close as possible to the previous state.
2019-05-15 20:17:09 +02:00
Yann Lanthony
d7f8311dcf
[ui] NodeLog: set TextFileViewer source when chunks ListView is ready
Avoid going through an empty source when switching from one node to another (currentChunk being invalid the time the ListView is being constructed).
2019-05-15 20:17:09 +02:00
Yann Lanthony
17556427fd
[ui] NodeLog: PySide2 5.11 compatibility fixes
* downgrade imports to work with versions prior to 5.12
* remove ES7 syntax
2019-05-09 18:18:48 +02:00
Yann Lanthony
55dba55d19
[ui] New TextFileViewer for displaying log files
Introduce a new TextFileViewer component with auto-reload feature based on a ListView instead of a TextArea for performance reasons. Uses the text content split on line breaks as ListView's model.
Features: 
 * auto-scroll to bottom
 * display line numbers
 * customizable line delegates (e.g.: display a real progress bar)
 * color lines according to log level
2019-05-07 11:47:09 +02:00
Yann Lanthony
438622a14b
[ui] Introduce ClipboardHelper for copying to clipboard from QML
* add ClipboardHelper class that contains a QClipboard and exposes its method as Slots
* use Clipboard instead of hidden TextEdit where meaningful
2019-05-07 11:47:09 +02:00
Yann Lanthony
9ce077778b
[ui] add more explicit doc for QML helpers singleton 2019-05-07 11:03:54 +02:00
Yann Lanthony
aae6098b5a [ui] Viewpoints: use 'childAttribute' method to access child attributes
IntrinsicsIndicator: fix exceptions when trying to access a viewpoint's 'initializationMode' attribute that did not exist in previous versions
2019-03-01 17:29:50 +01:00
Fabien Castan
4ef1ff457d
Merge pull request #392 from alicevision/fix_locator3d
Viewer3D: use DepthMapEntity 2.0 + various fixes
2019-02-08 18:45:07 +01:00
Yann Lanthony
45faa860c9 [ui] AttributeEditor: remove SortFilterDelegateModel
Usage of DelegateModel for model filtering has not proven to be the most stable solution, and might be responsible for random crashes happening during engine's garbage collection.  Implement Loader-based alternative:
* first delegate is a Loader which creates the AttributeItemDelegate if necessary
* compensate spacing using negative height when element is hidden
2019-02-08 15:37:06 +01:00
Yann Lanthony
da1b842493 [ui] MediaLibrary: enable dynamicRoles on mediaModel
If an outside 3D media file is the first thing ever loaded, 'model.attribute' will be initialized to 'null' and will prevent an actual Attribute to be associated to this role. This breaks media loading from within Meshroom.
2019-02-07 19:55:05 +01:00
Yann Lanthony
6199de0b45 [ui] Inspector3D: improve pointSize/cameraScale sliders
* reduce pointSize maximum value for better precision
* replace texts by icon
* add tooltips with values
2019-02-07 19:11:06 +01:00