Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use project files to define pipelines #1727

Merged
merged 6 commits into from
Jul 26, 2022
Merged

Conversation

cbentejac
Copy link
Contributor

@cbentejac cbentejac commented Jul 12, 2022

Description

Initialize pipelines in Meshroom using .mg project files that are found dynamically based on an environment variable. This replaces the hard-coded generation of pipelines that used to take place when the user was using the "New Pipeline" option. Standard templates are added and always found by default, independently from the content of the environment variable set by the user.

Features list

  • Evaluate variables in string parameters: string parameters in the nodes can be written with variables (written as ${VAR}) and these variables will be evaluated whenever the parameter's value is requested. This avoids having absolute paths in the project files, and thus prevents from path errors and/or editing the .mg should any of the concerned files ever move.
  • Support external pipelines defined in project files: a list of project files (including templates) is found dynamically and can be used to define pipelines. New pipelines are not hard-coded anymore. Features contained in the .mg file such as the layout are taken into account when defining pipelines.
  • Dynamic "New Pipeline" menu: the "New Pipeline" menu is automatically filled with the project files that have been found. Pipelines can be initialized with any available template directly through the interface, without needing to restart Meshroom.

Set the value of the string parameters in the nodes' description as
the unevaluated variable instead of the evaluated variable. The
evaluation will be made later, when the nodes with such parameters
will be computed.
- Support loading external pipelines as templates with project files
- Add template files for some standard pipelines
- Remove the hard-coded generation of new pipelines
- Update multiviewPipeline test: the multiviewPipeline test relied on the hard-coded generation of
pipelines.
@cbentejac cbentejac marked this pull request as draft July 13, 2022 08:06
The "New Pipeline" menu is automatically filled with the list
of the project files that were found dynamically. Pipelines can thus
be initialized with templates without restarting Meshroom app.
@cbentejac cbentejac marked this pull request as ready for review July 15, 2022 07:52
cbentejac and others added 2 commits July 21, 2022 15:28
When a project file is opened as such, its filepath is stored
and all its features are retrieved as a consequence. Templates
were hard-coded instead of opened as files, so there never was
any need to load their features.

Now that .mg files can be opened both as projects and pipelines,
we need to retrieve the features in both cases, whether the filepath
is stored (file opened as project) or not (file opened as template).
This can be useful to retrieve the layout contained in the .mg file
for the pipeline, for example.
@fabiencastan fabiencastan added this to the Meshroom 2022.1.0 milestone Jul 25, 2022
@fabiencastan fabiencastan merged commit b291a9e into develop Jul 26, 2022
@fabiencastan fabiencastan deleted the dev/externalPipelines branch July 26, 2022 13:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants