+ else if (kind_ == mathrlap) {
+ // y1---- /
+ // /
+ // y2--- <------------------
+ // \.
+ // y3---- \.
+ // | | |
+ // x1 x2 x3
+
+ int const x1 = x;
+ int const x3 = x + dim.wid;
+ int const x2 = std::min(x3, x + arrow_size);
+
+ int const y2 = y + (dim.des - dim.asc) / 2;
+ int const y1 = y2 - arrow_size;
+ int const y3 = y2 + arrow_size;
+
+ // left arrow
+ pi.pain.line(x1, y2, x2, y3, Color_added_space);
+ pi.pain.line(x1, y2, x2, y1, Color_added_space);
+
+ // joining line
+ pi.pain.line(x1, y2, x3, y2, Color_added_space);
+ }
+
+ else if (kind_ == smash || kind_ == smasht || kind_ == smashb) {
+ // y1---------
+ // |
+ // y2----- \ | /
+ // \ /
+ // y3-------- |
+ // / \.
+ // y4----- / | \.
+ // |
+ // y5---------
+ // | | |
+ // / | \.
+ // x1 x2 x3
+
+ int const x2 = x + dim.wid / 2;
+ int const x1 = x2 - arrow_size;
+ int const x3 = x2 + arrow_size;
+
+ int const y1 = y - dim.asc;
+ int const y5 = y + dim.des;
+ int const y3 = y;
+ int const y2 = std::max(y1, y3 - arrow_size);
+ int const y4 = std::min(y5, y3 + arrow_size);
+
+ // top arrow
+ if (kind_ != smashb) {
+ pi.pain.line(x1, y2, x2, y3, Color_added_space);
+ pi.pain.line(x3, y2, x2, y3, Color_added_space);
+ }
+
+ // bottom arrow
+ if (kind_ != smasht) {
+ pi.pain.line(x1, y4, x2, y3, Color_added_space);
+ pi.pain.line(x3, y4, x2, y3, Color_added_space);
+ }
+
+ // joining line
+ if (kind_ == smasht)
+ pi.pain.line(x2, y1, x2, y3, Color_added_space);
+ else if (kind_ == smashb)
+ pi.pain.line(x2, y3, x2, y5, Color_added_space);
+ else
+ pi.pain.line(x2, y1, x2, y5, Color_added_space);
+ }