aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/fonttools/fontTools/misc/bezierTools.py
diff options
context:
space:
mode:
authorrobot-piglet <robot-piglet@yandex-team.com>2025-02-05 11:12:32 +0300
committerrobot-piglet <robot-piglet@yandex-team.com>2025-02-05 11:30:30 +0300
commit409081f7caab0fd90da025db03f20c596905c1f9 (patch)
treea8b32fd5082d1277e0b727ffbd2604cad4b6abf7 /contrib/python/fonttools/fontTools/misc/bezierTools.py
parent64dbe3e5f2c96d6cf15ada015fb6ee64d12c02ff (diff)
downloadydb-409081f7caab0fd90da025db03f20c596905c1f9.tar.gz
Intermediate changes
commit_hash:6c65b2ed290900c658e42d7818d9bd50d568a8ba
Diffstat (limited to 'contrib/python/fonttools/fontTools/misc/bezierTools.py')
-rw-r--r--contrib/python/fonttools/fontTools/misc/bezierTools.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/contrib/python/fonttools/fontTools/misc/bezierTools.py b/contrib/python/fonttools/fontTools/misc/bezierTools.py
index 1b37ade8d6..2021f24437 100644
--- a/contrib/python/fonttools/fontTools/misc/bezierTools.py
+++ b/contrib/python/fonttools/fontTools/misc/bezierTools.py
@@ -631,7 +631,14 @@ def splitCubicAtT(pt1, pt2, pt3, pt4, *ts):
((77.3438, 56.25), (85.9375, 43.75), (93.75, 25), (100, 0))
"""
a, b, c, d = calcCubicParameters(pt1, pt2, pt3, pt4)
- return _splitCubicAtT(a, b, c, d, *ts)
+ split = _splitCubicAtT(a, b, c, d, *ts)
+
+ # the split impl can introduce floating point errors; we know the first
+ # segment should always start at pt1 and the last segment should end at pt4,
+ # so we set those values directly before returning.
+ split[0] = (pt1, *split[0][1:])
+ split[-1] = (*split[-1][:-1], pt4)
+ return split
@cython.locals(