diff --git a/python/afdko/otfautohint/hinter.py b/python/afdko/otfautohint/hinter.py index 5ce808ad5..998df6c78 100644 --- a/python/afdko/otfautohint/hinter.py +++ b/python/afdko/otfautohint/hinter.py @@ -1174,6 +1174,10 @@ def addStemValue(self, lloc, uloc, val, spc, lseg, useg): if not useg: return + if self.options.roundCoords: + lloc = round(lloc) + uloc = round(uloc) + sv = stemValue(lloc, uloc, val, spc, lseg, useg, ghst) self.insertStemValue(sv) @@ -1721,7 +1725,9 @@ def addBBox(self, doSubpaths=False): utype, 0, self.isV(), self.isV(), "u bbox") self.hs.getPEState(pbs.extpes[1][peidx], True).m_segs.append(useg) - hv = stemValue(mn_pt.o, mx_pt.o, 100, 0, lseg, useg, False) + lloc = round(mn_pt.o) if self.options.roundCoords else mn_pt.o + uloc = round(mx_pt.o) if self.options.roundCoords else mx_pt.o + hv = stemValue(lloc, uloc, 100, 0, lseg, useg, False) self.insertStemValue(hv, "bboxadd") self.hs.mainValues.append(hv) self.hs.mainValues.sort(key=lambda sv: sv.compVal(self.SpcBonus), diff --git a/python/afdko/otfautohint/hintstate.py b/python/afdko/otfautohint/hintstate.py index 691f5d95d..91d789ebf 100644 --- a/python/afdko/otfautohint/hintstate.py +++ b/python/afdko/otfautohint/hintstate.py @@ -468,6 +468,8 @@ def addToLoc(self, loc, score, strong=False, bb=False, seg=None): if sid in self.usedSegs: return self.usedSegs.add(sid) + if self.dhinter.options.roundCoords: + loc = round(loc) if loc in self.candDict: sLC = self.candDict[loc] else: diff --git a/tests/otfautohint_data/input/dummy/decimals.ufo/glyphs.com.adobe.type.processedglyphs/braceleft.glif b/tests/otfautohint_data/input/dummy/decimals.ufo/glyphs.com.adobe.type.processedglyphs/braceleft.glif index 0a634b517..ebc9464f9 100644 --- a/tests/otfautohint_data/input/dummy/decimals.ufo/glyphs.com.adobe.type.processedglyphs/braceleft.glif +++ b/tests/otfautohint_data/input/dummy/decimals.ufo/glyphs.com.adobe.type.processedglyphs/braceleft.glif @@ -11,20 +11,20 @@ - + - + - + - + @@ -33,17 +33,17 @@ - + - + - - + + - + @@ -75,7 +75,7 @@ hstem -121.6 37.6 hstem 201.6 41.6 hstem 528.8 37.6 - vstem 27.2 72 + vstem 96 51.2 @@ -86,7 +86,7 @@ hstem -121.6 37.6 hstem 201.6 41.6 hstem 528.8 37.6 - vstem 88.8 53.6 + vstem 96 51.2 @@ -97,7 +97,7 @@ hstem -121.6 37.6 hstem 201.6 41.6 hstem 528.8 37.6 - vstem 27.2 72 + vstem 88.8 53.6 @@ -108,7 +108,29 @@ hstem -121.6 37.6 hstem 201.6 41.6 hstem 528.8 37.6 - vstem 88.8 53.6 + vstem 96 51.2 + + + + pointTag + hintRef0005 + stems + + hstem -121.6 37.6 + hstem 201.6 41.6 + hstem 528.8 37.6 + vstem 27.2 72 + + + + pointTag + hintRef0006 + stems + + hstem -121.6 37.6 + hstem 201.6 41.6 + hstem 528.8 37.6 + vstem 96 51.2 diff --git a/tests/otfautohint_data/input/dummy/decimals.ufo/glyphs.com.adobe.type.processedglyphs/braceright.glif b/tests/otfautohint_data/input/dummy/decimals.ufo/glyphs.com.adobe.type.processedglyphs/braceright.glif index 10e4d0607..0d3ddd420 100644 --- a/tests/otfautohint_data/input/dummy/decimals.ufo/glyphs.com.adobe.type.processedglyphs/braceright.glif +++ b/tests/otfautohint_data/input/dummy/decimals.ufo/glyphs.com.adobe.type.processedglyphs/braceright.glif @@ -19,7 +19,7 @@ - + @@ -34,14 +34,14 @@ - + - + @@ -108,13 +108,24 @@ hstem -121.6 37.6 hstem 201.6 41.6 hstem 528.8 37.6 - vstem 96 50.4 + vstem 100 53.6 pointTag hintRef0005 stems + + hstem -121.6 37.6 + hstem 201.6 41.6 + hstem 528.8 37.6 + vstem 96 50.4 + + + + pointTag + hintRef0006 + stems hstem -121.6 37.6 hstem 201.6 41.6 diff --git a/tests/otfautohint_data/input/dummy/font.ps b/tests/otfautohint_data/input/dummy/font.ps index 6dc466951..2a1772b1f 100644 Binary files a/tests/otfautohint_data/input/dummy/font.ps and b/tests/otfautohint_data/input/dummy/font.ps differ