Add Typesetter

This commit is contained in:
Guille Gonzalez
2026-01-03 08:11:38 +01:00
parent 8e4db3cf0e
commit e26d7d01b5
7 changed files with 2911 additions and 8 deletions

View File

@@ -19,6 +19,25 @@ extension Math {
self.range = range
}
func setDegree(_ degree: DisplayList?, fontMetrics: Math.FontMetrics) {
guard let degree else { return }
let kernBefore = fontMetrics.radicalKernBeforeDegree
let kernAfter = fontMetrics.radicalKernAfterDegree
let raise = fontMetrics.radicalDegreeBottomRaisePercent * (ascent - descent)
self.degree = degree
var shift = kernBefore + degree.width + kernAfter
if shift < 0 {
shift = 0
}
radicalShift = shift
degree.position = CGPoint(x: position.x + kernBefore, y: position.y + raise)
width = shift + (radicalGlyph?.width ?? 0) + (radicand?.width ?? 0)
updateRadicandPosition()
}
override var position: CGPoint {
didSet { updateRadicandPosition() }
}