private void calcMarkers() {
    SegLine seg = (SegLine) m_seg;
    // draw the axis line
    marker_line.setLine(
        (int) seg.getM_start().getX() - MARKER_LINE_LENGTH,
        (int) seg.getM_start().getY(),
        (int) seg.getM_start().getX() + MARKER_LINE_LENGTH,
        (int) seg.getM_start().getY());

    // draw the 90 deg angle
    if (Math.abs(seg.getM_start().getY() - seg.getM_end().getY()) > MARKER_ANGLE_SIDE_LENGTH) {
      if (seg.getM_start().getY() < seg.getM_end().getY()) {
        marker_rect.setBounds(
            (int) (seg.getM_start().getX() + 0.5),
            (int) (seg.getM_start().getY() + 0.5),
            MARKER_ANGLE_SIDE_LENGTH,
            MARKER_ANGLE_SIDE_LENGTH);
      } else {
        marker_rect.setBounds(
            (int) (seg.getM_start().getX() + 0.5),
            (int) (seg.getM_start().getY() + 0.5) - MARKER_ANGLE_SIDE_LENGTH,
            MARKER_ANGLE_SIDE_LENGTH,
            MARKER_ANGLE_SIDE_LENGTH);
      }
    }
  }
 public boolean isConstraintSolved() {
   this.update();
   SegLine l = (SegLine) m_seg;
   if (Math.abs(l.getM_start().getX() - l.getM_end().getX())
       < constraintsHelper.pointOverlapErrorThreshold) return true;
   constraintsHelper.printConstraintSolvingFailure(
       "PerpendicularIndConstraint.isConstraintSolved",
       "Two Xs are : " + l.getM_start().getX() + " , " + l.getM_end().getX(),
       true);
   return false;
 }