We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
FillBetweenItem has no way to change FillRule
<!-- In the following, please describe your issue in detail! -->
<!-- If some of the sections do not apply, just remove them. -->

### Short description
There is currently no way (at least that I have found) to change the fillrule for the painterpath in the FillBetweenItem. being able to set it to winding would be very useful for certain cases.

### Code to reproduce
<!-- Please provide a minimal working example that reproduces the issue in the code block below.
     Ideally, this should be a full example someone else could run without additional setup. -->
```python
import pyqtgraph as pg
from PySide2.QtWidgets import QApplication

win = pg.plot()
win.setWindowTitle('pyqtgraph example: FillBetweenItem')
win.setXRange(0, 1.5)
win.setYRange(0, 1.5)

x1=[0,1,1,0,0]
y1=[0,0,1,1,0]
x2=[0.5,1.5,1.5,0.5,0.5]
y2=[0.5,0.5,1.5,1.5,0.5]
curve1 = win.plot(x=x1, y=y1, pen='k')
curve2 = win.plot(x=x2, y=y2, pen='k')
brushes = [0.5, (100, 100, 255), 0.5]
fill = pg.FillBetweenItem(curve1, curve2,brush=(100,100,255))
win.addItem(fill)

## Start Qt event loop unless running in interactive mode or using pyside.
if __name__ == '__main__':
    QApplication.instance().exec_()
```

### Expected behavior
Fill in the overlap

### Real behavior
Hole in the middle.


### Tested environment(s)

 * PyQtGraph version: 0.12.1
 * Qt Python binding: PyQt5 5.15.4 Qt 5.15.2
 * Python version: 3.7.7
 * NumPy version: 1.20.2
 * Operating system: Windows 10
 * Installation method: PIP

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `pyqtgraph/examples/FillBetweenItem.py`
Content:
```
1 """
2 Demonstrates use of FillBetweenItem to fill the space between two plot curves.
3 """
4 
5 import numpy as np
6 
7 import pyqtgraph as pg
8 from pyqtgraph.Qt import QtCore
9 
10 #FIXME: When running on Qt5, not as perfect as on Qt4
11 
12 win = pg.plot()
13 win.setWindowTitle('pyqtgraph example: FillBetweenItem')
14 win.setXRange(-10, 10)
15 win.setYRange(-10, 10)
16 
17 N = 200
18 x = np.linspace(-10, 10, N)
19 gauss = np.exp(-x**2 / 20.)
20 mn = mx = np.zeros(len(x))
21 curves = [win.plot(x=x, y=np.zeros(len(x)), pen='k') for i in range(4)]
22 brushes = [0.5, (100, 100, 255), 0.5]
23 fills = [pg.FillBetweenItem(curves[i], curves[i+1], brushes[i]) for i in range(3)]
24 for f in fills:
25     win.addItem(f)
26 
27 def update():
28     global mx, mn, curves, gauss, x
29     a = 5 / abs(np.random.normal(loc=1, scale=0.2))
30     y1 = -np.abs(a*gauss + np.random.normal(size=len(x)))
31     y2 =  np.abs(a*gauss + np.random.normal(size=len(x)))
32     
33     s = 0.01
34     mn = np.where(y1<mn, y1, mn) * (1-s) + y1 * s
35     mx = np.where(y2>mx, y2, mx) * (1-s) + y2 * s
36     curves[0].setData(x, mn)
37     curves[1].setData(x, y1)
38     curves[2].setData(x, y2)
39     curves[3].setData(x, mx)
40     
41 
42 timer = QtCore.QTimer()
43 timer.timeout.connect(update)
44 timer.start(30)
45 
46 
47 if __name__ == '__main__':
48     pg.exec()
49
```

Path: `pyqtgraph/graphicsItems/FillBetweenItem.py`
Content:
```
1 from .. import functions as fn
2 from ..Qt import QtGui, QtWidgets
3 from .PlotCurveItem import PlotCurveItem
4 from .PlotDataItem import PlotDataItem
5 
6 __all__ = ['FillBetweenItem']
7 
8 class FillBetweenItem(QtWidgets.QGraphicsPathItem):
9     """
10     GraphicsItem filling the space between two PlotDataItems.
11     """
12     def __init__(self, curve1=None, curve2=None, brush=None, pen=None):
13         QtWidgets.QGraphicsPathItem.__init__(self)
14         self.curves = None
15         if curve1 is not None and curve2 is not None:
16             self.setCurves(curve1, curve2)
17         elif curve1 is not None or curve2 is not None:
18             raise Exception("Must specify two curves to fill between.")
19 
20         if brush is not None:
21             self.setBrush(brush)
22         self.setPen(pen)
23         self.updatePath()
24         
25     def setBrush(self, *args, **kwds):
26         """Change the fill brush. Acceps the same arguments as pg.mkBrush()"""
27         QtWidgets.QGraphicsPathItem.setBrush(self, fn.mkBrush(*args, **kwds))
28         
29     def setPen(self, *args, **kwds):
30         QtWidgets.QGraphicsPathItem.setPen(self, fn.mkPen(*args, **kwds))
31 
32     def setCurves(self, curve1, curve2):
33         """Set the curves to fill between.
34         
35         Arguments must be instances of PlotDataItem or PlotCurveItem.
36         
37         Added in version 0.9.9
38         """
39         if self.curves is not None:
40             for c in self.curves:
41                 try:
42                     c.sigPlotChanged.disconnect(self.curveChanged)
43                 except (TypeError, RuntimeError):
44                     pass
45 
46         curves = [curve1, curve2]
47         for c in curves:
48             if not isinstance(c, PlotDataItem) and not isinstance(c, PlotCurveItem):
49                 raise TypeError("Curves must be PlotDataItem or PlotCurveItem.")
50         self.curves = curves
51         curve1.sigPlotChanged.connect(self.curveChanged)
52         curve2.sigPlotChanged.connect(self.curveChanged)
53         self.setZValue(min(curve1.zValue(), curve2.zValue())-1)
54         self.curveChanged()
55 
56     def curveChanged(self):
57         self.updatePath()
58 
59     def updatePath(self):
60         if self.curves is None:
61             self.setPath(QtGui.QPainterPath())
62             return
63         paths = []
64         for c in self.curves:
65             if isinstance(c, PlotDataItem):
66                 paths.append(c.curve.getPath())
67             elif isinstance(c, PlotCurveItem):
68                 paths.append(c.getPath())
69 
70         path = QtGui.QPainterPath()
71         transform = QtGui.QTransform()
72         ps1 = paths[0].toSubpathPolygons(transform)
73         ps2 = paths[1].toReversed().toSubpathPolygons(transform)
74         ps2.reverse()
75         if len(ps1) == 0 or len(ps2) == 0:
76             self.setPath(QtGui.QPainterPath())
77             return
78         
79             
80         for p1, p2 in zip(ps1, ps2):
81             path.addPolygon(p1 + p2)
82         self.setPath(path)
83
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/pyqtgraph/examples/FillBetweenItem.py b/pyqtgraph/examples/FillBetweenItem.py
--- a/pyqtgraph/examples/FillBetweenItem.py
+++ b/pyqtgraph/examples/FillBetweenItem.py
@@ -20,7 +20,8 @@
 mn = mx = np.zeros(len(x))
 curves = [win.plot(x=x, y=np.zeros(len(x)), pen='k') for i in range(4)]
 brushes = [0.5, (100, 100, 255), 0.5]
-fills = [pg.FillBetweenItem(curves[i], curves[i+1], brushes[i]) for i in range(3)]
+fills = [pg.FillBetweenItem(curves[0], curves[3], brushes[0]),
+         pg.FillBetweenItem(curves[1], curves[2], brushes[1])]
 for f in fills:
     win.addItem(f)
 
diff --git a/pyqtgraph/graphicsItems/FillBetweenItem.py b/pyqtgraph/graphicsItems/FillBetweenItem.py
--- a/pyqtgraph/graphicsItems/FillBetweenItem.py
+++ b/pyqtgraph/graphicsItems/FillBetweenItem.py
@@ -23,7 +23,7 @@
         self.updatePath()
         
     def setBrush(self, *args, **kwds):
-        """Change the fill brush. Acceps the same arguments as pg.mkBrush()"""
+        """Change the fill brush. Accepts the same arguments as pg.mkBrush()"""
         QtWidgets.QGraphicsPathItem.setBrush(self, fn.mkBrush(*args, **kwds))
         
     def setPen(self, *args, **kwds):
@@ -55,7 +55,6 @@
 
     def curveChanged(self):
         self.updatePath()
-
     def updatePath(self):
         if self.curves is None:
             self.setPath(QtGui.QPainterPath())
@@ -69,14 +68,18 @@
 
         path = QtGui.QPainterPath()
         transform = QtGui.QTransform()
+
         ps1 = paths[0].toSubpathPolygons(transform)
         ps2 = paths[1].toReversed().toSubpathPolygons(transform)
         ps2.reverse()
+
         if len(ps1) == 0 or len(ps2) == 0:
             self.setPath(QtGui.QPainterPath())
             return
         
-            
         for p1, p2 in zip(ps1, ps2):
-            path.addPolygon(p1 + p2)
+            intersection = p1.intersected(p2)
+            if not intersection.isEmpty():
+                path.addPolygon(intersection)
+            path.addPolygon(p1 + p2)       
         self.setPath(path)

{"golden_diff": "diff --git a/pyqtgraph/examples/FillBetweenItem.py b/pyqtgraph/examples/FillBetweenItem.py\n--- a/pyqtgraph/examples/FillBetweenItem.py\n+++ b/pyqtgraph/examples/FillBetweenItem.py\n@@ -20,7 +20,8 @@\n mn = mx = np.zeros(len(x))\n curves = [win.plot(x=x, y=np.zeros(len(x)), pen='k') for i in range(4)]\n brushes = [0.5, (100, 100, 255), 0.5]\n-fills = [pg.FillBetweenItem(curves[i], curves[i+1], brushes[i]) for i in range(3)]\n+fills = [pg.FillBetweenItem(curves[0], curves[3], brushes[0]),\n+         pg.FillBetweenItem(curves[1], curves[2], brushes[1])]\n for f in fills:\n     win.addItem(f)\n \ndiff --git a/pyqtgraph/graphicsItems/FillBetweenItem.py b/pyqtgraph/graphicsItems/FillBetweenItem.py\n--- a/pyqtgraph/graphicsItems/FillBetweenItem.py\n+++ b/pyqtgraph/graphicsItems/FillBetweenItem.py\n@@ -23,7 +23,7 @@\n         self.updatePath()\n         \n     def setBrush(self, *args, **kwds):\n-        \"\"\"Change the fill brush. Acceps the same arguments as pg.mkBrush()\"\"\"\n+        \"\"\"Change the fill brush. Accepts the same arguments as pg.mkBrush()\"\"\"\n         QtWidgets.QGraphicsPathItem.setBrush(self, fn.mkBrush(*args, **kwds))\n         \n     def setPen(self, *args, **kwds):\n@@ -55,7 +55,6 @@\n \n     def curveChanged(self):\n         self.updatePath()\n-\n     def updatePath(self):\n         if self.curves is None:\n             self.setPath(QtGui.QPainterPath())\n@@ -69,14 +68,18 @@\n \n         path = QtGui.QPainterPath()\n         transform = QtGui.QTransform()\n+\n         ps1 = paths[0].toSubpathPolygons(transform)\n         ps2 = paths[1].toReversed().toSubpathPolygons(transform)\n         ps2.reverse()\n+\n         if len(ps1) == 0 or len(ps2) == 0:\n             self.setPath(QtGui.QPainterPath())\n             return\n         \n-            \n         for p1, p2 in zip(ps1, ps2):\n-            path.addPolygon(p1 + p2)\n+            intersection = p1.intersected(p2)\n+            if not intersection.isEmpty():\n+                path.addPolygon(intersection)\n+            path.addPolygon(p1 + p2)       \n         self.setPath(path)\n", "issue": "FillBetweenItem has no way to change FillRule\n<!-- In the following, please describe your issue in detail! -->\r\n<!-- If some of the sections do not apply, just remove them. -->\r\n\r\n### Short description\r\nThere is currently no way (at least that I have found) to change the fillrule for the painterpath in the FillBetweenItem. being able to set it to winding would be very useful for certain cases.\r\n\r\n### Code to reproduce\r\n<!-- Please provide a minimal working example that reproduces the issue in the code block below.\r\n     Ideally, this should be a full example someone else could run without additional setup. -->\r\n```python\r\nimport pyqtgraph as pg\r\nfrom PySide2.QtWidgets import QApplication\r\n\r\nwin = pg.plot()\r\nwin.setWindowTitle('pyqtgraph example: FillBetweenItem')\r\nwin.setXRange(0, 1.5)\r\nwin.setYRange(0, 1.5)\r\n\r\nx1=[0,1,1,0,0]\r\ny1=[0,0,1,1,0]\r\nx2=[0.5,1.5,1.5,0.5,0.5]\r\ny2=[0.5,0.5,1.5,1.5,0.5]\r\ncurve1 = win.plot(x=x1, y=y1, pen='k')\r\ncurve2 = win.plot(x=x2, y=y2, pen='k')\r\nbrushes = [0.5, (100, 100, 255), 0.5]\r\nfill = pg.FillBetweenItem(curve1, curve2,brush=(100,100,255))\r\nwin.addItem(fill)\r\n\r\n## Start Qt event loop unless running in interactive mode or using pyside.\r\nif __name__ == '__main__':\r\n    QApplication.instance().exec_()\r\n```\r\n\r\n### Expected behavior\r\nFill in the overlap\r\n\r\n### Real behavior\r\nHole in the middle.\r\n\r\n\r\n### Tested environment(s)\r\n\r\n * PyQtGraph version: 0.12.1\r\n * Qt Python binding: PyQt5 5.15.4 Qt 5.15.2\r\n * Python version: 3.7.7\r\n * NumPy version: 1.20.2\r\n * Operating system: Windows 10\r\n * Installation method: PIP\n", "before_files": [{"content": "\"\"\"\nDemonstrates use of FillBetweenItem to fill the space between two plot curves.\n\"\"\"\n\nimport numpy as np\n\nimport pyqtgraph as pg\nfrom pyqtgraph.Qt import QtCore\n\n#FIXME: When running on Qt5, not as perfect as on Qt4\n\nwin = pg.plot()\nwin.setWindowTitle('pyqtgraph example: FillBetweenItem')\nwin.setXRange(-10, 10)\nwin.setYRange(-10, 10)\n\nN = 200\nx = np.linspace(-10, 10, N)\ngauss = np.exp(-x**2 / 20.)\nmn = mx = np.zeros(len(x))\ncurves = [win.plot(x=x, y=np.zeros(len(x)), pen='k') for i in range(4)]\nbrushes = [0.5, (100, 100, 255), 0.5]\nfills = [pg.FillBetweenItem(curves[i], curves[i+1], brushes[i]) for i in range(3)]\nfor f in fills:\n    win.addItem(f)\n\ndef update():\n    global mx, mn, curves, gauss, x\n    a = 5 / abs(np.random.normal(loc=1, scale=0.2))\n    y1 = -np.abs(a*gauss + np.random.normal(size=len(x)))\n    y2 =  np.abs(a*gauss + np.random.normal(size=len(x)))\n    \n    s = 0.01\n    mn = np.where(y1<mn, y1, mn) * (1-s) + y1 * s\n    mx = np.where(y2>mx, y2, mx) * (1-s) + y2 * s\n    curves[0].setData(x, mn)\n    curves[1].setData(x, y1)\n    curves[2].setData(x, y2)\n    curves[3].setData(x, mx)\n    \n\ntimer = QtCore.QTimer()\ntimer.timeout.connect(update)\ntimer.start(30)\n\n\nif __name__ == '__main__':\n    pg.exec()\n", "path": "pyqtgraph/examples/FillBetweenItem.py"}, {"content": "from .. import functions as fn\nfrom ..Qt import QtGui, QtWidgets\nfrom .PlotCurveItem import PlotCurveItem\nfrom .PlotDataItem import PlotDataItem\n\n__all__ = ['FillBetweenItem']\n\nclass FillBetweenItem(QtWidgets.QGraphicsPathItem):\n    \"\"\"\n    GraphicsItem filling the space between two PlotDataItems.\n    \"\"\"\n    def __init__(self, curve1=None, curve2=None, brush=None, pen=None):\n        QtWidgets.QGraphicsPathItem.__init__(self)\n        self.curves = None\n        if curve1 is not None and curve2 is not None:\n            self.setCurves(curve1, curve2)\n        elif curve1 is not None or curve2 is not None:\n            raise Exception(\"Must specify two curves to fill between.\")\n\n        if brush is not None:\n            self.setBrush(brush)\n        self.setPen(pen)\n        self.updatePath()\n        \n    def setBrush(self, *args, **kwds):\n        \"\"\"Change the fill brush. Acceps the same arguments as pg.mkBrush()\"\"\"\n        QtWidgets.QGraphicsPathItem.setBrush(self, fn.mkBrush(*args, **kwds))\n        \n    def setPen(self, *args, **kwds):\n        QtWidgets.QGraphicsPathItem.setPen(self, fn.mkPen(*args, **kwds))\n\n    def setCurves(self, curve1, curve2):\n        \"\"\"Set the curves to fill between.\n        \n        Arguments must be instances of PlotDataItem or PlotCurveItem.\n        \n        Added in version 0.9.9\n        \"\"\"\n        if self.curves is not None:\n            for c in self.curves:\n                try:\n                    c.sigPlotChanged.disconnect(self.curveChanged)\n                except (TypeError, RuntimeError):\n                    pass\n\n        curves = [curve1, curve2]\n        for c in curves:\n            if not isinstance(c, PlotDataItem) and not isinstance(c, PlotCurveItem):\n                raise TypeError(\"Curves must be PlotDataItem or PlotCurveItem.\")\n        self.curves = curves\n        curve1.sigPlotChanged.connect(self.curveChanged)\n        curve2.sigPlotChanged.connect(self.curveChanged)\n        self.setZValue(min(curve1.zValue(), curve2.zValue())-1)\n        self.curveChanged()\n\n    def curveChanged(self):\n        self.updatePath()\n\n    def updatePath(self):\n        if self.curves is None:\n            self.setPath(QtGui.QPainterPath())\n            return\n        paths = []\n        for c in self.curves:\n            if isinstance(c, PlotDataItem):\n                paths.append(c.curve.getPath())\n            elif isinstance(c, PlotCurveItem):\n                paths.append(c.getPath())\n\n        path = QtGui.QPainterPath()\n        transform = QtGui.QTransform()\n        ps1 = paths[0].toSubpathPolygons(transform)\n        ps2 = paths[1].toReversed().toSubpathPolygons(transform)\n        ps2.reverse()\n        if len(ps1) == 0 or len(ps2) == 0:\n            self.setPath(QtGui.QPainterPath())\n            return\n        \n            \n        for p1, p2 in zip(ps1, ps2):\n            path.addPolygon(p1 + p2)\n        self.setPath(path)\n", "path": "pyqtgraph/graphicsItems/FillBetweenItem.py"}], "after_files": [{"content": "\"\"\"\nDemonstrates use of FillBetweenItem to fill the space between two plot curves.\n\"\"\"\n\nimport numpy as np\n\nimport pyqtgraph as pg\nfrom pyqtgraph.Qt import QtCore\n\n#FIXME: When running on Qt5, not as perfect as on Qt4\n\nwin = pg.plot()\nwin.setWindowTitle('pyqtgraph example: FillBetweenItem')\nwin.setXRange(-10, 10)\nwin.setYRange(-10, 10)\n\nN = 200\nx = np.linspace(-10, 10, N)\ngauss = np.exp(-x**2 / 20.)\nmn = mx = np.zeros(len(x))\ncurves = [win.plot(x=x, y=np.zeros(len(x)), pen='k') for i in range(4)]\nbrushes = [0.5, (100, 100, 255), 0.5]\nfills = [pg.FillBetweenItem(curves[0], curves[3], brushes[0]),\n         pg.FillBetweenItem(curves[1], curves[2], brushes[1])]\nfor f in fills:\n    win.addItem(f)\n\ndef update():\n    global mx, mn, curves, gauss, x\n    a = 5 / abs(np.random.normal(loc=1, scale=0.2))\n    y1 = -np.abs(a*gauss + np.random.normal(size=len(x)))\n    y2 =  np.abs(a*gauss + np.random.normal(size=len(x)))\n    \n    s = 0.01\n    mn = np.where(y1<mn, y1, mn) * (1-s) + y1 * s\n    mx = np.where(y2>mx, y2, mx) * (1-s) + y2 * s\n    curves[0].setData(x, mn)\n    curves[1].setData(x, y1)\n    curves[2].setData(x, y2)\n    curves[3].setData(x, mx)\n    \n\ntimer = QtCore.QTimer()\ntimer.timeout.connect(update)\ntimer.start(30)\n\n\nif __name__ == '__main__':\n    pg.exec()\n", "path": "pyqtgraph/examples/FillBetweenItem.py"}, {"content": "from .. import functions as fn\nfrom ..Qt import QtGui, QtWidgets\nfrom .PlotCurveItem import PlotCurveItem\nfrom .PlotDataItem import PlotDataItem\n\n__all__ = ['FillBetweenItem']\n\nclass FillBetweenItem(QtWidgets.QGraphicsPathItem):\n    \"\"\"\n    GraphicsItem filling the space between two PlotDataItems.\n    \"\"\"\n    def __init__(self, curve1=None, curve2=None, brush=None, pen=None):\n        QtWidgets.QGraphicsPathItem.__init__(self)\n        self.curves = None\n        if curve1 is not None and curve2 is not None:\n            self.setCurves(curve1, curve2)\n        elif curve1 is not None or curve2 is not None:\n            raise Exception(\"Must specify two curves to fill between.\")\n\n        if brush is not None:\n            self.setBrush(brush)\n        self.setPen(pen)\n        self.updatePath()\n        \n    def setBrush(self, *args, **kwds):\n        \"\"\"Change the fill brush. Accepts the same arguments as pg.mkBrush()\"\"\"\n        QtWidgets.QGraphicsPathItem.setBrush(self, fn.mkBrush(*args, **kwds))\n        \n    def setPen(self, *args, **kwds):\n        QtWidgets.QGraphicsPathItem.setPen(self, fn.mkPen(*args, **kwds))\n\n    def setCurves(self, curve1, curve2):\n        \"\"\"Set the curves to fill between.\n        \n        Arguments must be instances of PlotDataItem or PlotCurveItem.\n        \n        Added in version 0.9.9\n        \"\"\"\n        if self.curves is not None:\n            for c in self.curves:\n                try:\n                    c.sigPlotChanged.disconnect(self.curveChanged)\n                except (TypeError, RuntimeError):\n                    pass\n\n        curves = [curve1, curve2]\n        for c in curves:\n            if not isinstance(c, PlotDataItem) and not isinstance(c, PlotCurveItem):\n                raise TypeError(\"Curves must be PlotDataItem or PlotCurveItem.\")\n        self.curves = curves\n        curve1.sigPlotChanged.connect(self.curveChanged)\n        curve2.sigPlotChanged.connect(self.curveChanged)\n        self.setZValue(min(curve1.zValue(), curve2.zValue())-1)\n        self.curveChanged()\n\n    def curveChanged(self):\n        self.updatePath()\n    def updatePath(self):\n        if self.curves is None:\n            self.setPath(QtGui.QPainterPath())\n            return\n        paths = []\n        for c in self.curves:\n            if isinstance(c, PlotDataItem):\n                paths.append(c.curve.getPath())\n            elif isinstance(c, PlotCurveItem):\n                paths.append(c.getPath())\n\n        path = QtGui.QPainterPath()\n        transform = QtGui.QTransform()\n\n        ps1 = paths[0].toSubpathPolygons(transform)\n        ps2 = paths[1].toReversed().toSubpathPolygons(transform)\n        ps2.reverse()\n\n        if len(ps1) == 0 or len(ps2) == 0:\n            self.setPath(QtGui.QPainterPath())\n            return\n        \n        for p1, p2 in zip(ps1, ps2):\n            intersection = p1.intersected(p2)\n            if not intersection.isEmpty():\n                path.addPolygon(intersection)\n            path.addPolygon(p1 + p2)       \n        self.setPath(path)\n", "path": "pyqtgraph/graphicsItems/FillBetweenItem.py"}]}