code: def rebuildPolygons(self, path):
          
          output = []
  
          # create the input arrow
          if self.showInputArrow():
              if self.inputArrowStyle() & self.ArrowStyle.Inverted:
                  a = QPointF(0, -4)
                  b = QPointF(-10, 0)
                  c = QPointF(0, 4)
              else:
                  a = QPointF(-10, -4)
                  b = QPointF(0, 0)
                  c = QPointF(-10, 4)
  
              if self.inputArrowStyle() & self.ArrowStyle.Filled:
                  poly = QPolygonF([a, b, c, a])
              else:
                  poly = QPolygonF([a, b, c])
  
              mpoly = self.mappedPolygon(poly, path, 1.0)
              output.append(mpoly)
  
          # create the direction arrow
          if self.showDirectionArrow():
              a = QPointF(-5, -4)
              b = QPointF(5, 0)
              c = QPointF(-5, 4)
  
              mpoly = self.mappedPolygon(QPolygonF([a, b, c, a]), path, 0.5)
              output.append(mpoly)
  
          # create the output arrow
          if self.showOutputArrow():
              if self.outputArrowStyle() & self.ArrowStyle.Inverted:
                  a = QPointF(0, -4)
                  b = QPointF(10, 0)
                  c = QPointF(0, 4)
              else:
                  a = QPointF(10, -4)
                  b = QPointF(0, 0)
                  c = QPointF(10, 4)
  
              if self.outputArrowStyle() & self.ArrowStyle.Filled:
                  poly = QPolygonF([a, b, c, a])
              else:
                  poly = QPolygonF([a, b, c])
  
              mpoly = self.mappedPolygon(poly, path, 0)
              output.append(mpoly)
  
          return output
docs: Rebuilds the polygons that will be used on this path.
          
          :param      path    | <QPainterPath>
          
          :return     <list> [ <QPolygonF>, .. ]