@@ -13,9 +13,9 @@ class GeometryCache
1313 GeometryCache () = default ;
1414 ~GeometryCache () = default ;
1515
16- void setControlPoints (const QPolygonF &points) { setControlPoints (points, {}, {}); }
16+ void setControlPoints (const QPolygonF &points) { setGeometryData (points, {}, {}); }
1717
18- void setControlPoints (const QPolygonF &points, const QRectF &bounds, const QPainterPath &path)
18+ void setGeometryData (const QPolygonF &points, const QRectF &bounds, const QPainterPath &path)
1919 {
2020 if (m_controlPoints == points && m_bounds == bounds && m_basePath == path) {
2121 return ;
@@ -29,25 +29,24 @@ class GeometryCache
2929
3030 QPolygonF controlPoints () const { return m_controlPoints; }
3131
32- QRectF boundingRect (double margin, double penWidth, double expandAmount)
32+ QRectF visualBoundingRect (double margin, double penWidth, double expandAmount)
3333 {
34- updateCachedData (margin, penWidth, expandAmount);
34+ updateCacheIfNeeded (margin, penWidth, expandAmount);
3535 return m_cachedBounds;
3636 }
3737
38- QPainterPath shape (double margin, double penWidth, double expandAmount)
38+ QPainterPath visualShape (double margin, double penWidth, double expandAmount)
3939 {
40- updateCachedData (margin, penWidth, expandAmount);
40+ updateCacheIfNeeded (margin, penWidth, expandAmount);
4141 return m_cachedPath;
4242 }
4343
44- bool isValid () const { return !m_bounds.isNull () && !m_controlPoints.isEmpty (); }
45- void invalidate () { m_bounds = QRectF (); }
44+ bool hasValidGeometry () const { return !m_bounds.isNull () && !m_controlPoints.isEmpty (); }
4645
4746private:
48- void updateCachedData (double margin, double penWidth, double expandAmount)
47+ void updateCacheIfNeeded (double margin, double penWidth, double expandAmount)
4948 {
50- const double expansion = computeExpansion (margin, penWidth, expandAmount);
49+ const double expansion = calculateTotalExpansion (margin, penWidth, expandAmount);
5150 if (!m_cacheDirty && qFuzzyCompare (m_cachedExpansion, expansion)) {
5251 return ; // 缓存仍然有效
5352 }
@@ -59,7 +58,7 @@ class GeometryCache
5958 m_cachedBounds = m_cachedPath.controlPointRect ();
6059 }
6160
62- static double computeExpansion (double margin, double penWidth, double expandAmount)
61+ static double calculateTotalExpansion (double margin, double penWidth, double expandAmount)
6362 {
6463 return std::max ({margin * 0.5 , penWidth, expandAmount});
6564 }
@@ -71,8 +70,7 @@ class GeometryCache
7170 bool m_cacheDirty = true ; // 路径是否需要重新计算
7271 double m_cachedExpansion = 0 ; // 路径扩展长度
7372 QPainterPath m_cachedPath; // 缓存路径
74-
75- QRectF m_cachedBounds; // 缓存矩形
73+ QRectF m_cachedBounds; // 缓存矩形
7674};
7775
7876using GeometryCachePtr = QScopedPointer<GeometryCache>;
0 commit comments