github.com/jmigpin/editor@v1.6.0/util/drawutil/drawer4/measure.go (about) 1 package drawer4 2 3 type Measure struct { 4 d *Drawer 5 } 6 7 func (m *Measure) Init() { 8 pb := m.d.iters.runeR.penBounds() 9 m.d.st.measure.penMax = pb.Max 10 } 11 12 func (m *Measure) Iter() { 13 if m.d.iters.runeR.isNormal() { 14 penXAdv := m.d.st.runeR.pen.X + m.d.st.runeR.advance 15 if penXAdv > m.d.st.measure.penMax.X { 16 m.d.st.measure.penMax.X = penXAdv 17 } 18 } 19 if !m.d.iterNext() { 20 return 21 } 22 } 23 24 func (m *Measure) End() { 25 pb := m.d.iters.runeR.penBounds() 26 m.d.st.measure.penMax.Y = pb.Max.Y 27 }