instancer: document case when peak is < 1.0 but outer limit exceeds 2.0
This commit is contained in:
parent
7d136da836
commit
6142825d7b
@ -289,10 +289,14 @@ def limitTupleVariationAxisRange(var, axisTag, axisRange):
|
|||||||
var.axes[axisTag] = (newLower, newPeak, newUpper)
|
var.axes[axisTag] = (newLower, newPeak, newUpper)
|
||||||
return [var]
|
return [var]
|
||||||
|
|
||||||
# case 4: new limit doesn't fit, we need to chop the tent into two triangles,
|
# case 4: new limit doesn't fit; we need to chop the deltaset into two 'tents',
|
||||||
# with an additional tent with scaled-down deltas that peaks as the original
|
# because the shape of a triangle with part of one side cut off cannot be
|
||||||
# one tapers down. NOTE: This increases the file size!
|
# represented as a triangle itself. It can be represented as sum of two triangles.
|
||||||
|
# NOTE: This increases the file size!
|
||||||
else:
|
else:
|
||||||
|
# duplicate the tent, then adjust lower/peak/upper so that the outermost limit
|
||||||
|
# of the original tent is +/-2.0, whereas the new tent's starts as the old
|
||||||
|
# one peaks and maxes out at +/-1.0.
|
||||||
newVar = TupleVariation(var.axes, var.coordinates)
|
newVar = TupleVariation(var.axes, var.coordinates)
|
||||||
if negative:
|
if negative:
|
||||||
var.axes[axisTag] = (-2.0, -1 * newPeak, -1 * newLower)
|
var.axes[axisTag] = (-2.0, -1 * newPeak, -1 * newLower)
|
||||||
@ -300,8 +304,11 @@ def limitTupleVariationAxisRange(var, axisTag, axisRange):
|
|||||||
else:
|
else:
|
||||||
var.axes[axisTag] = (newLower, newPeak, MAX_F2DOT14)
|
var.axes[axisTag] = (newLower, newPeak, MAX_F2DOT14)
|
||||||
newVar.axes[axisTag] = (newPeak, 1.0, 1.0)
|
newVar.axes[axisTag] = (newPeak, 1.0, 1.0)
|
||||||
# TODO: document optimization
|
# the new tent's deltas are scaled by the difference between the scalar value
|
||||||
|
# for the old tent at the desired limit...
|
||||||
scalar1 = supportScalar({axisTag: limit}, {axisTag: (lower, peak, upper)})
|
scalar1 = supportScalar({axisTag: limit}, {axisTag: (lower, peak, upper)})
|
||||||
|
# ... and the scalar value for the clamped tent (with outer limit +/-2.0),
|
||||||
|
# which can be simplified like this:
|
||||||
scalar2 = 1 / (2 - newPeak)
|
scalar2 = 1 / (2 - newPeak)
|
||||||
newVar.scaleDeltas(scalar1 - scalar2)
|
newVar.scaleDeltas(scalar1 - scalar2)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user