code: function drawLineMark(x, type) {
    const p = x.perpendicularVector.scale(6);
    const n = x.normalVector.scale(3);
    const m = x.midpoint;
  
    switch (type) {
      case 'bar':
        return drawPath(m.add(p), m.add(p.inverse));
      case 'bar2':
        return drawPath(m.add(n).add(p), m.add(n).add(p.inverse)) +
            drawPath(m.add(n.inverse).add(p), m.add(n.inverse).add(p.inverse));
      case 'arrow':
        return drawPath(m.add(n.inverse).add(p), m.add(n), m.add(n.inverse).add(p.inverse));
      case 'arrow2':
        return drawPath(m.add(n.scale(-2)).add(p), m, m.add(n.scale(-2)).add(p.inverse)) +
            drawPath(m.add(p), m.add(n.scale(2)), m.add(p.inverse));
    }
  }
docs: ----------------------------------------------------------------------------- Arrows and Line Marks