[varLib.models] Refactor common logic
This commit is contained in:
parent
455fc87081
commit
381b55b936
@ -500,20 +500,25 @@ class VariationModel(object):
|
|||||||
return out
|
return out
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def interpolateFromDeltasAndScalars(deltas, scalars):
|
def interpolateFromValuesAndScalars(values, scalars):
|
||||||
"""Interpolate from deltas and scalars fetched from getScalars()."""
|
"""Interpolate from values and scalars coefficients."""
|
||||||
v = None
|
v = None
|
||||||
assert len(deltas) == len(scalars)
|
assert len(values) == len(scalars)
|
||||||
for delta, scalar in zip(deltas, scalars):
|
for value, scalar in zip(values, scalars):
|
||||||
if not scalar:
|
if not scalar:
|
||||||
continue
|
continue
|
||||||
contribution = delta * scalar
|
contribution = value * scalar
|
||||||
if v is None:
|
if v is None:
|
||||||
v = contribution
|
v = contribution
|
||||||
else:
|
else:
|
||||||
v += contribution
|
v += contribution
|
||||||
return v
|
return v
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def interpolateFromDeltasAndScalars(deltas, scalars):
|
||||||
|
"""Interpolate from deltas and scalars fetched from getScalars()."""
|
||||||
|
return VariationModel.interpolateFromValuesAndScalars(deltas, scalars)
|
||||||
|
|
||||||
def interpolateFromDeltas(self, loc, deltas):
|
def interpolateFromDeltas(self, loc, deltas):
|
||||||
"""Interpolate from deltas, at location loc."""
|
"""Interpolate from deltas, at location loc."""
|
||||||
scalars = self.getScalars(loc)
|
scalars = self.getScalars(loc)
|
||||||
@ -535,17 +540,9 @@ class VariationModel(object):
|
|||||||
def interpolateFromMastersAndMasterScalars(masterValues, masterScalars):
|
def interpolateFromMastersAndMasterScalars(masterValues, masterScalars):
|
||||||
"""Interpolate from master-values and master-scalars fetched
|
"""Interpolate from master-values and master-scalars fetched
|
||||||
from getMasterScalars()."""
|
from getMasterScalars()."""
|
||||||
v = None
|
return VariationModel.interpolateFromValuesAndScalars(
|
||||||
assert len(masterValues) == len(masterScalars)
|
masterValues, masterScalars
|
||||||
for master, scalar in zip(masterValues, masterScalars):
|
)
|
||||||
if not scalar:
|
|
||||||
continue
|
|
||||||
contribution = master * scalar
|
|
||||||
if v is None:
|
|
||||||
v = contribution
|
|
||||||
else:
|
|
||||||
v += contribution
|
|
||||||
return v
|
|
||||||
|
|
||||||
|
|
||||||
def piecewiseLinearMap(v, mapping):
|
def piecewiseLinearMap(v, mapping):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user