Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
markClasses[className] = markClass
else:
if accentName in markClass.glyphs:
mcdef = markClass.glyphs[accentName]
if cls._anchorsAreEqual(anchor, mcdef.anchor):
logger.debug(
"Glyph %s already defined in markClass @%s",
accentName,
className,
)
return None
else:
# same accent glyph defined with different anchors for the
# same markClass; make a new unique markClass definition
newClassName = ast.makeFeaClassName(className, markClasses)
markClass = ast.MarkClass(newClassName)
markClasses[newClassName] = markClass
mcdef = ast.MarkClassDefinition(markClass, anchor, glyphs)
markClass.addDefinition(mcdef)
return mcdef
markClasses[className] = markClass
else:
if glyphName in markClass.glyphs:
mcdef = markClass.glyphs[glyphName]
if self._anchorsAreEqual(anchor, mcdef.anchor):
self.log.debug(
"Glyph %s already defined in markClass @%s",
glyphName,
className,
)
return None
else:
# same mark glyph defined with different anchors for the
# same markClass; make a new unique markClass definition
newClassName = ast.makeFeaClassName(className, markClasses)
markClass = ast.MarkClass(newClassName)
markClasses[newClassName] = markClass
glyphName = ast.GlyphName(glyphName)
mcdef = ast.MarkClassDefinition(markClass, anchor, glyphName)
markClass.addDefinition(mcdef)
return mcdef
def _makeMarkClass(cls, markClasses, accentName, x, y, className):
""" Make a MarkClassDefinition statement given the accent name,
position, class name, and pre-existing mark classes.
Return None if a mark class with the same name and anchor already
exists. Or create new mark class with unique name when different.
"""
glyphs = ast.GlyphName(accentName)
anchor = cls._makeAnchorFormatA(x, y)
className = ast.makeFeaClassName(className)
markClass = markClasses.get(className)
if markClass is None:
markClass = ast.MarkClass(className)
markClasses[className] = markClass
else:
if accentName in markClass.glyphs:
mcdef = markClass.glyphs[accentName]
if cls._anchorsAreEqual(anchor, mcdef.anchor):
logger.debug(
"Glyph %s already defined in markClass @%s",
accentName,
className,
)
return None
else:
# same accent glyph defined with different anchors for the
# same markClass; make a new unique markClass definition
newClassName = ast.makeFeaClassName(className, markClasses)
markClass = ast.MarkClass(newClassName)
def _defineMarkClass(self, glyphName, x, y, className, markClasses):
anchor = ast.Anchor(x=otRound(x), y=otRound(y))
markClass = markClasses.get(className)
if markClass is None:
markClass = ast.MarkClass(className)
markClasses[className] = markClass
else:
if glyphName in markClass.glyphs:
mcdef = markClass.glyphs[glyphName]
if self._anchorsAreEqual(anchor, mcdef.anchor):
self.log.debug(
"Glyph %s already defined in markClass @%s",
glyphName,
className,
)
return None
else:
# same mark glyph defined with different anchors for the
# same markClass; make a new unique markClass definition
newClassName = ast.makeFeaClassName(className, markClasses)
markClass = ast.MarkClass(newClassName)