| 5742 | } |
| 5743 | |
| 5744 | QPointF QCPLabelPainterPrivate::getAnchorPos(const QPointF &tickPos) |
| 5745 | { |
| 5746 | switch (mAnchorMode) |
| 5747 | { |
| 5748 | case amRectangular: |
| 5749 | { |
| 5750 | switch (mAnchorSide) |
| 5751 | { |
| 5752 | case asLeft: return tickPos+QPointF(mPadding, 0); |
| 5753 | case asRight: return tickPos+QPointF(-mPadding, 0); |
| 5754 | case asTop: return tickPos+QPointF(0, mPadding); |
| 5755 | case asBottom: return tickPos+QPointF(0, -mPadding); |
| 5756 | case asTopLeft: return tickPos+QPointF(mPadding*M_SQRT1_2, mPadding*M_SQRT1_2); |
| 5757 | case asTopRight: return tickPos+QPointF(-mPadding*M_SQRT1_2, mPadding*M_SQRT1_2); |
| 5758 | case asBottomRight: return tickPos+QPointF(-mPadding*M_SQRT1_2, -mPadding*M_SQRT1_2); |
| 5759 | case asBottomLeft: return tickPos+QPointF(mPadding*M_SQRT1_2, -mPadding*M_SQRT1_2); |
| 5760 | default: qDebug() << Q_FUNC_INFO << "invalid mode for anchor side: " << mAnchorSide; break; |
| 5761 | } |
| 5762 | break; |
| 5763 | } |
| 5764 | case amSkewedUpright: |
| 5765 | // fall through |
| 5766 | case amSkewedRotated: |
| 5767 | { |
| 5768 | QCPVector2D anchorNormal(tickPos-mAnchorReference); |
| 5769 | if (mAnchorReferenceType == artTangent) |
| 5770 | anchorNormal = anchorNormal.perpendicular(); |
| 5771 | anchorNormal.normalize(); |
| 5772 | return tickPos+(anchorNormal*mPadding).toPointF(); |
| 5773 | } |
| 5774 | default: qDebug() << Q_FUNC_INFO << "invalid mode for anchor mode: " << mAnchorMode; break; |
| 5775 | } |
| 5776 | return tickPos; |
| 5777 | } |
| 5778 | |
| 5779 | /*! \internal |
| 5780 | |