Add display model

This commit is contained in:
Guille Gonzalez
2026-01-03 07:45:34 +01:00
parent e9657c186e
commit 8e4db3cf0e
11 changed files with 365 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
import CoreGraphics
import Foundation
extension Math {
final class DisplayRadical: DisplayNode {
var radicand: DisplayList?
var degree: DisplayList?
var radicalGlyph: DisplayNode?
var radicalShift: CGFloat = 0
var topKern: CGFloat = 0
var lineThickness: CGFloat = 0
init(radicand: DisplayList?, glyph: DisplayNode, position: CGPoint, range: NSRange) {
self.radicand = radicand
self.radicalGlyph = glyph
super.init()
self.position = position
self.range = range
}
override var position: CGPoint {
didSet { updateRadicandPosition() }
}
func updateRadicandPosition() {
guard let radicand, let radicalGlyph else { return }
radicand.position = CGPoint(
x: position.x + radicalShift + radicalGlyph.width,
y: position.y
)
}
}
}