Commit graph

4510 commits

Author SHA1 Message Date
Yann Lanthony
f6ae3ae057 [ui] support for appending multiple elements to a ListAttribute at once 2017-11-07 20:34:33 +01:00
Yann Lanthony
9bc8eaeb1b [commands] improve AddNodeCommand
use node name instead of a direct reference to the Node
2017-11-07 20:27:52 +01:00
Yann Lanthony
87a81ec3fb [graph] call applyExpr when adding elements to ListAttribute
* automatically (re)create edges if any when dynamically adding elements to the list
* don't do anything if the node does not belong to a graph yet
2017-11-07 20:27:03 +01:00
Yann Lanthony
eccef6bed8 [graph] delete all Node edges in removeNode
Delete all edges arriving to and starting from this node. This includes edges connected to sub-attributes (children of List/GroupAttributes).
2017-11-07 20:22:34 +01:00
Yann Lanthony
e38f112c55 [core] fix memory management
* parent Nodes, Edges and Attributes to their respective models
* use weakrefs for those objects to avoid cyclic references
* add 'root' property on Attribute for parenting to List/GroupAttribute (parent still exists for Qt-style parenting)
* UI: update commands to match those changes
2017-11-07 20:18:17 +01:00
Yann Lanthony
f029a573b2 [qt] QObjectListModel: take ownership of objects if not already parented
Allows to explicitly call deleteLater() on such objects that are removed from the model
2017-11-07 19:51:05 +01:00
Fabien Castan
8efa14ecda [node] Publish: fix node with new chunk notion 2017-11-07 18:46:14 +01:00
Fabien Castan
1e4f8f8a61 Add chunk notion for parallelization and implement specific updateInternals in CameraInit node
* Add chunk notion for parallelization
* Allows Node desc to implement custom updateInternals
* CameraInit node implement a specific updateInternals to update the
input image list
* FeatureExtraction, FeatureMatching, DepthMap, DepthMapFilter:
implement parallelization
2017-11-07 15:47:14 +01:00
Fabien Castan
39f6ef3d64 [multiview] add Graph Modification and convert inputFolder into a list of input files
* Always set a list of input files
* Use GraphModification to do only one update
2017-11-06 20:51:22 +01:00
Fabien Castan
1472baa477 [core] Graph.update fix: return when the update is disabled 2017-11-06 20:49:07 +01:00
Fabien Castan
0847a80bdc [core] Attribute: add isDefault and getPrimitiveValue 2017-11-06 20:46:59 +01:00
Fabien Castan
3a6473b78f [core] Attribute: getExportValue give the expression on output attributes
On output attributes, we export the desc value which contains the
expression and not the locally evaluated value.
2017-11-06 20:46:26 +01:00
Fabien Castan
ee7c0d0fd5 [core] Attribute: change isLink check for _applyExpr() 2017-11-06 20:41:29 +01:00
Yann Lanthony
a2e1369c9a [common] improve core models
* CoreListModel:
    * allow removal of multiple contiguious elements
    * add insert method 
* CoreDictModel:
    * use del to remove elemvent from list
2017-11-06 18:34:14 +01:00
Yann Lanthony
3c3a270886 [multiview] default value for output folder 2017-11-02 11:51:21 +01:00
Yann Lanthony
95471e3e1b [graph] parent root Attributes to the Node
Guarantee Python ownership on objects when using Qt backend. Otherwise, the ownership could be transferred to QML when getting objects via a Slot, leading to their destruction at gargabe collection.
2017-11-02 11:12:14 +01:00
Fabien Castan
d4376ca440 [bin] photogrammetry: add inputImages argument 2017-10-31 21:28:45 +01:00
Fabien Castan
fb92af531d [multiview] add output option using the Publish node 2017-10-31 21:28:45 +01:00
Fabien Castan
0f2f6c4796 [nodes] new Publish node 2017-10-31 21:28:45 +01:00
Fabien Castan
9d3f7252c1 [core] move process code into the node description
Now CommandLineNode contains the code to launch the command line as a
subprocess.
2017-10-31 21:28:44 +01:00
Fabien Castan
a576fb8ce4 [multiview] set inputs only if not empty
Avoid errors with None
2017-10-31 21:21:10 +01:00
Fabien Castan
40b320f1b8 [multiview] connect on previous node only 2017-10-31 21:20:09 +01:00
Fabien Castan
96ac1216c3 [nodes] meshing: fix command line 2017-10-31 21:19:07 +01:00
Fabien Castan
88a935f925 [nodes] texturing: add output files 2017-10-31 21:11:34 +01:00
Fabien Castan
eec52e45e3 [core] implement _applyExpr for List/GroupAttributes 2017-10-31 20:55:56 +01:00
Yann Lanthony
fbebecd463 [graph] default uidIndex value for Attribute.uid method
This index only makes sense on ListAttributes and GroupAttributes
2017-10-31 19:50:29 +01:00
Yann Lanthony
16e8037fd7 [core] change Attributes declaration on Node description
Inputs and outputs Attributes are now declared in two separate lists
* no more isOutput field on Attribute description
* guarantee attributes order (was not the case in Python2 with class attributes)
* Attribute's name is now part of its description

Note: for now, input and output Attributes are still stored in a single model inside a Graph.
2017-10-31 19:47:32 +01:00
Yann Lanthony
00366cda00 [ui] introduce first functional UI with a graph editor
First functional UI that allows to visualize, modify and execute a graph locally.
* use QtQuick Controls 2 + Shapes (Qt >=5.10)
* main menu to save/load a graph
2017-10-31 16:54:16 +01:00
Yann Lanthony
e683238a8d [ui] update main
* use Fusion style by default (Qt >= 5.10)
* enable high DPI scaling
* parent main Reconstruction to the application
2017-10-31 16:53:35 +01:00
Yann Lanthony
788fe7d4dc [ui] simplify EdgeMouseArea component
Removed independant start/end points; cubic spline starts from (0,0) to (width, height)
2017-10-31 16:53:35 +01:00
Fabien Castan
1dbf002557 [nodes] use Choice param for scale 2017-10-31 16:50:31 +01:00
Fabien Castan
329dcba3a5 [core] add validator per attribute type 2017-10-31 16:50:31 +01:00
Fabien Castan
11cfece411 [bin] photogrammetry: expose mvs scale parameter 2017-10-31 16:50:30 +01:00
Fabien Castan
eaa22528f1 [nodes] expose texturing parameters 2017-10-31 16:50:30 +01:00
Fabien Castan
eb85aee728 [nodes] update MVS to aliceVision binaries 2017-10-31 16:50:29 +01:00
Fabien Castan
06a8cbaf45 [nodes] CamPairs renamed to CameraConnection 2017-10-31 16:50:29 +01:00
Fabien Castan
041f98ae8a [tests] tests UIDs on the multiview pipeline
* ensure that identical graphs have the same UIDs
* ensure that multiview pipeline graphs with different input images have
different UIDs on all output attributes
2017-10-31 12:12:51 +01:00
Fabien Castan
ffddc14acd [nodes] fix: output attributes cannot be part of UIDs 2017-10-31 12:11:08 +01:00
Fabien Castan
e79a5cceb5 [core] retrieve all children uids on List/GroupAttributes descriptors 2017-10-31 12:10:16 +01:00
Fabien Castan
17e77f2e82 [core] add 'items' on CoreModel 2017-10-31 12:09:26 +01:00
Fabien Castan
b7175e219f [tests] test multiview pipeline and List/GroupAttributes set/get 2017-10-31 12:08:58 +01:00
Fabien Castan
e0c52898cc [tests] test uid on input params with/without link 2017-10-31 10:49:30 +01:00
Fabien Castan
1af40dac9e [tests] remove useless main 2017-10-31 10:48:27 +01:00
Fabien Castan
2e035d5a7a [multiview] add arguments to directly provide input images to the pipeline 2017-10-31 10:48:06 +01:00
Fabien Castan
46f6865a25 [core] implement uid computation for ListAttributes and GroupAttributes 2017-10-31 10:46:32 +01:00
Yann Lanthony
f1fdd34b6c [graph] Attribute: robust UIDs for list of elements as value
Fix variable UIDs for non-exclusive choices, which could be affected by different string encodings
2017-10-30 19:23:50 +01:00
Yann Lanthony
7e2d37c819 [graph] fix Node status update from cache
updateStatusFromCache reset Node's status to NONE is status file does not exist, but does not save it on disk anymore.
2017-10-30 19:18:41 +01:00
Yann Lanthony
3b45ac1669 [tests] add tests on graph invalidation 2017-10-30 17:48:54 +01:00
Yann Lanthony
f051148d7a [graph] update cacheDir property on load
use property setter instead of changing the value internally
2017-10-30 17:08:25 +01:00
Yann Lanthony
f8d9251c61 [aliceVision] Add Viewpoint parameter on CameraInit 2017-10-30 17:04:37 +01:00