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