[VARC] Compute flags from XML transform components
This commit is contained in:
parent
037bbe1030
commit
5b2df6b90b
@ -282,7 +282,8 @@ class VarComponent:
|
||||
writer.newline()
|
||||
|
||||
write("glyphName", self.glyphName)
|
||||
write("flags", hex(self.flags))
|
||||
if self.flags & VarComponentFlags.RESET_UNSPECIFIED_AXES:
|
||||
write("resetUnspecifiedAxes", True)
|
||||
|
||||
if self.axisIndicesIndex is not None:
|
||||
write("axisIndicesIndex", self.axisIndicesIndex)
|
||||
@ -293,10 +294,13 @@ class VarComponent:
|
||||
if self.transformVarIndex != NO_VARIATION_INDEX:
|
||||
write("transformVarIndex", self.transformVarIndex)
|
||||
|
||||
# Only write transform components that are specified in the
|
||||
# flags, even if they are the default value.
|
||||
for attr_name, mapping in VAR_TRANSFORM_MAPPING.items():
|
||||
if not (self.flags & mapping.flag):
|
||||
continue
|
||||
v = getattr(self.transform, attr_name)
|
||||
if v != mapping.defaultValue:
|
||||
write(attr_name, fl2str(v, mapping.fractionalBits))
|
||||
write(attr_name, fl2str(v, mapping.fractionalBits))
|
||||
|
||||
writer.endtag("VarComponent")
|
||||
writer.newline()
|
||||
@ -312,6 +316,8 @@ class VarComponent:
|
||||
|
||||
if name == "glyphName":
|
||||
self.glyphName = v
|
||||
elif name == "resetUnspecifiedAxes":
|
||||
self.flags = VarComponentFlags.RESET_UNSPECIFIED_AXES if v else 0
|
||||
elif name == "flags":
|
||||
self.flags = safeEval(v)
|
||||
elif name == "axisIndicesIndex":
|
||||
@ -328,6 +334,7 @@ class VarComponent:
|
||||
name,
|
||||
safeEval(v),
|
||||
)
|
||||
self.flags |= VAR_TRANSFORM_MAPPING[name].flag
|
||||
else:
|
||||
assert False, name
|
||||
|
||||
|
@ -306,31 +306,25 @@
|
||||
<VarCompositeGlyph index="0">
|
||||
<VarComponent index="0">
|
||||
<glyphName value="glyph00007"/>
|
||||
<flags value="0x0"/>
|
||||
</VarComponent>
|
||||
<VarComponent index="1">
|
||||
<glyphName value="glyph00003"/>
|
||||
<flags value="0x0"/>
|
||||
</VarComponent>
|
||||
</VarCompositeGlyph>
|
||||
<VarCompositeGlyph index="1">
|
||||
<VarComponent index="0">
|
||||
<glyphName value="glyph00005"/>
|
||||
<flags value="0x0"/>
|
||||
</VarComponent>
|
||||
<VarComponent index="1">
|
||||
<glyphName value="glyph00004"/>
|
||||
<flags value="0x0"/>
|
||||
</VarComponent>
|
||||
<VarComponent index="2">
|
||||
<glyphName value="glyph00006"/>
|
||||
<flags value="0x0"/>
|
||||
</VarComponent>
|
||||
</VarCompositeGlyph>
|
||||
<VarCompositeGlyph index="2">
|
||||
<VarComponent index="0">
|
||||
<glyphName value="glyph00008"/>
|
||||
<flags value="0x12"/>
|
||||
<axisIndicesIndex value="2"/>
|
||||
<axisValues value="[0.2159]"/>
|
||||
<translateX value="-6.0"/>
|
||||
@ -339,7 +333,6 @@
|
||||
<VarCompositeGlyph index="3">
|
||||
<VarComponent index="0">
|
||||
<glyphName value="glyph00008"/>
|
||||
<flags value="0x16"/>
|
||||
<axisIndicesIndex value="0"/>
|
||||
<axisValues value="[-0.8047, 0.0, 0.4839]"/>
|
||||
<axisValuesVarIndex value="0"/>
|
||||
@ -349,7 +342,6 @@
|
||||
<VarCompositeGlyph index="4">
|
||||
<VarComponent index="0">
|
||||
<glyphName value="glyph00009"/>
|
||||
<flags value="0x3e"/>
|
||||
<axisIndicesIndex value="1"/>
|
||||
<axisValues value="[-0.54, 0.04, -0.5178, 0.0, 0.0]"/>
|
||||
<axisValuesVarIndex value="1"/>
|
||||
@ -361,7 +353,6 @@
|
||||
<VarCompositeGlyph index="5">
|
||||
<VarComponent index="0">
|
||||
<glyphName value="glyph00010"/>
|
||||
<flags value="0x3e"/>
|
||||
<axisIndicesIndex value="0"/>
|
||||
<axisValues value="[-0.776, -0.3566, 0.0]"/>
|
||||
<axisValuesVarIndex value="3"/>
|
||||
@ -373,7 +364,6 @@
|
||||
<VarCompositeGlyph index="6">
|
||||
<VarComponent index="0">
|
||||
<glyphName value="glyph00009"/>
|
||||
<flags value="0x3e"/>
|
||||
<axisIndicesIndex value="0"/>
|
||||
<axisValues value="[-0.258, 0.05, -0.5178]"/>
|
||||
<axisValuesVarIndex value="5"/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user