mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-06-03 19:31:58 +02:00
[core] support for non-exclusive choice params
This commit is contained in:
parent
977a6b1507
commit
76fad411a4
2 changed files with 9 additions and 3 deletions
|
@ -56,9 +56,10 @@ class FloatParam(Param):
|
||||||
class ChoiceParam(Param):
|
class ChoiceParam(Param):
|
||||||
"""
|
"""
|
||||||
"""
|
"""
|
||||||
def __init__(self, label, description, value, values, exclusive, uid, group='allParams'):
|
def __init__(self, label, description, value, values, exclusive, uid, group='allParams', joinChar=' '):
|
||||||
self.values = values
|
self.values = values
|
||||||
self.exclusive = exclusive
|
self.exclusive = exclusive
|
||||||
|
self.joinChar = joinChar
|
||||||
super(ChoiceParam, self).__init__(label=label, description=description, value=value, uid=uid, group=group)
|
super(ChoiceParam, self).__init__(label=label, description=description, value=value, uid=uid, group=group)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
|
|
||||||
|
import collections
|
||||||
import hashlib
|
import hashlib
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
@ -13,6 +14,7 @@ from enum import Enum # available by default in python3. For python2: "pip inst
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
|
|
||||||
from . import stats
|
from . import stats
|
||||||
|
from . import desc
|
||||||
from meshroom import core as pg
|
from meshroom import core as pg
|
||||||
from meshroom.common import BaseObject, Model, Slot, Signal, Property
|
from meshroom.common import BaseObject, Model, Slot, Signal, Property
|
||||||
|
|
||||||
|
@ -305,11 +307,14 @@ class Node(BaseObject):
|
||||||
# Evaluate input params
|
# Evaluate input params
|
||||||
for name, attr in self._attributes.objects.items():
|
for name, attr in self._attributes.objects.items():
|
||||||
if attr.attributeDesc.isOutput:
|
if attr.attributeDesc.isOutput:
|
||||||
continue # skip outputs
|
continue # skip outputs
|
||||||
linkAttr = attr.getLinkParam()
|
linkAttr = attr.getLinkParam()
|
||||||
if linkAttr:
|
if linkAttr:
|
||||||
attr._value = linkAttr._value
|
attr._value = linkAttr._value
|
||||||
v = attr._value
|
v = attr._value
|
||||||
|
if isinstance(attr.attributeDesc, desc.ChoiceParam) and not attr.attributeDesc.exclusive:
|
||||||
|
assert(isinstance(v, collections.Sequence) and not isinstance(v, basestring))
|
||||||
|
v = attr.attributeDesc.joinChar.join(v)
|
||||||
|
|
||||||
self._cmdVars[name] = '--{name} {value}'.format(name=name, value=v)
|
self._cmdVars[name] = '--{name} {value}'.format(name=name, value=v)
|
||||||
self._cmdVars[name + 'Value'] = str(v)
|
self._cmdVars[name + 'Value'] = str(v)
|
||||||
|
@ -321,7 +326,7 @@ class Node(BaseObject):
|
||||||
# Evaluate output params
|
# Evaluate output params
|
||||||
for name, attr in self._attributes.objects.items():
|
for name, attr in self._attributes.objects.items():
|
||||||
if not attr.attributeDesc.isOutput:
|
if not attr.attributeDesc.isOutput:
|
||||||
continue # skip inputs
|
continue # skip inputs
|
||||||
attr.value = attr.attributeDesc.value.format(
|
attr.value = attr.attributeDesc.value.format(
|
||||||
nodeType=self.nodeType(),
|
nodeType=self.nodeType(),
|
||||||
**self._cmdVars)
|
**self._cmdVars)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue