[instancer.solver] Massage a bit

This commit is contained in:
Behdad Esfahbod 2022-08-06 16:01:03 -06:00
parent 92c67c2e22
commit 32be0d46ec
2 changed files with 14 additions and 10 deletions

View File

@ -227,6 +227,18 @@ def _negate(*values):
def changeTupleVariationAxisLimit(var, axisTag, axisLimit):
assert isinstance(axisLimit, NormalizedAxisTent)
# Skip when current axis is missing (i.e. doesn't participate),
lower, peak, upper = var.axes.get(axisTag, (-1, 0, 1))
if peak == 0:
return [var]
# Drop if the var 'tent' isn't well-formed
if not (lower <= peak <= upper) or (lower < 0 and upper > 0):
return []
if axisTag not in var.axes:
return [var]
return solver.changeTupleVariationAxisLimit(var, axisTag, axisLimit)
def _instantiateGvarGlyph(

View File

@ -4,7 +4,7 @@ def _solvePinned(var, axisTag, axisLimit):
axisMin, axisDef, axisMax = axisLimit
support = {axisTag: var.axes.pop(axisTag, (-1, 0, 1))}
support = {axisTag: var.axes.pop(axisTag)}
scalar = supportScalar({axisTag: axisLimit.default}, support)
if scalar == 0.0:
return []
@ -16,7 +16,7 @@ def _solvePinned(var, axisTag, axisLimit):
def _solveDefaultUnmoved(var, axisTag, axisLimit):
axisMin, axisDef, axisMax = axisLimit
lower, peak, upper = var.axes.get(axisTag, (-1, 0, 1))
lower, peak, upper = var.axes.get(axisTag)
negative = lower < 0
if negative:
@ -111,14 +111,6 @@ def changeTupleVariationAxisLimit(var, axisTag, axisLimit):
axisMin, axisDef, axisMax = axisLimit
assert -1 <= axisMin <= axisDef <= axisMax <= +1
# Skip when current axis is missing (i.e. doesn't participate),
lower, peak, upper = var.axes.get(axisTag, (-1, 0, 1))
if peak == 0:
return [var]
# Drop if the var 'tent' isn't well-formed
if not (lower <= peak <= upper) or (lower < 0 and upper > 0):
return []
# Get the pinned case out of the way
if axisMin == axisMax:
return _solvePinned(var, axisTag, axisLimit)