varLib. replace slower pointsDiffer() with models.AllEqual()
This commit is contained in:
parent
8d40bf8448
commit
c5def97cd8
@ -12,6 +12,7 @@ from fontTools.cffLib import (TopDictIndex,
|
||||
from fontTools.cffLib.cff2mergePen import CFF2CharStringMergePen
|
||||
from fontTools.ttLib import newTable
|
||||
from fontTools import varLib
|
||||
from fontTools.varLib.models import allEqual
|
||||
|
||||
|
||||
def addCFFVarStore(varFont, varModel):
|
||||
@ -105,10 +106,6 @@ def lib_convertCFFToCFF2(cff, otFont):
|
||||
cff.decompile(file, otFont, isCFF2=True)
|
||||
|
||||
|
||||
def pointsDiffer(pointList):
|
||||
return not (max(pointList) == min(pointList))
|
||||
|
||||
|
||||
def convertCFFtoCFF2(varFont):
|
||||
# Convert base font to a single master CFF2 font.
|
||||
cffTable = varFont['CFF ']
|
||||
@ -187,7 +184,7 @@ def merge_PrivateDicts(topDict, region_top_dicts, num_masters, var_model):
|
||||
for val_list in values:
|
||||
rel_list = [(val - prev_val_list[i]) for (
|
||||
i, val) in enumerate(val_list)]
|
||||
if (not any_points_differ) and pointsDiffer(rel_list):
|
||||
if (not any_points_differ) and not allEqual(rel_list):
|
||||
any_points_differ = True
|
||||
prev_val_list = val_list
|
||||
deltas = var_model.getDeltas(rel_list)
|
||||
@ -203,7 +200,7 @@ def merge_PrivateDicts(topDict, region_top_dicts, num_masters, var_model):
|
||||
dataList = [data[0] for data in dataList]
|
||||
else:
|
||||
values = [pd.rawDict[key] for pd in pds]
|
||||
if pointsDiffer(values):
|
||||
if not allEqual(values):
|
||||
dataList = var_model.getDeltas(values)
|
||||
else:
|
||||
dataList = values[0]
|
||||
|
@ -4,6 +4,7 @@ from fontTools.pens.t2CharStringPen import T2CharStringPen, t2c_round
|
||||
from fontTools.cffLib.specializer import (commandsToProgram,
|
||||
specializeCommands)
|
||||
from fontTools.cffLib import maxStackLimit
|
||||
from fontTools.varLib.models import allEqual
|
||||
|
||||
|
||||
class MergeTypeError(TypeError):
|
||||
@ -271,7 +272,7 @@ class CFF2CharStringMergePen(T2CharStringPen):
|
||||
prev_coord = x0 if is_x else y0
|
||||
rel_coord = [pt[0] - pt[1] for pt in zip(coord, prev_coord)]
|
||||
|
||||
if max(rel_coord) == min(rel_coord):
|
||||
if allEqual(rel_coord):
|
||||
rel_coord = rel_coord[0]
|
||||
rel_coords.append(rel_coord)
|
||||
if is_x:
|
||||
|
Loading…
x
Reference in New Issue
Block a user