! \internal This function is part of the curve optimization algorithm of \ref getCurveLines. This method assumes that the \ref getTraverse test has returned true, so the segment definitely traverses the visible region 5 when going from \a prevRegion to \a currentRegion. In certain situations it is not sufficient to merely generate the entry and exit points of the segment into/ou
| 23015 | return the respective corner points. |
| 23016 | */ |
| 23017 | void QCPCurve::getTraverseCornerPoints(int prevRegion, int currentRegion, double keyMin, double valueMax, double keyMax, double valueMin, QVector<QPointF> &beforeTraverse, QVector<QPointF> &afterTraverse) const |
| 23018 | { |
| 23019 | switch (prevRegion) |
| 23020 | { |
| 23021 | case 1: |
| 23022 | { |
| 23023 | switch (currentRegion) |
| 23024 | { |
| 23025 | case 6: { beforeTraverse << coordsToPixels(keyMin, valueMax); break; } |
| 23026 | case 9: { beforeTraverse << coordsToPixels(keyMin, valueMax); afterTraverse << coordsToPixels(keyMax, valueMin); break; } |
| 23027 | case 8: { beforeTraverse << coordsToPixels(keyMin, valueMax); break; } |
| 23028 | } |
| 23029 | break; |
| 23030 | } |
| 23031 | case 2: |
| 23032 | { |
| 23033 | switch (currentRegion) |
| 23034 | { |
| 23035 | case 7: { afterTraverse << coordsToPixels(keyMax, valueMax); break; } |
| 23036 | case 9: { afterTraverse << coordsToPixels(keyMax, valueMin); break; } |
| 23037 | } |
| 23038 | break; |
| 23039 | } |
| 23040 | case 3: |
| 23041 | { |
| 23042 | switch (currentRegion) |
| 23043 | { |
| 23044 | case 4: { beforeTraverse << coordsToPixels(keyMin, valueMin); break; } |
| 23045 | case 7: { beforeTraverse << coordsToPixels(keyMin, valueMin); afterTraverse << coordsToPixels(keyMax, valueMax); break; } |
| 23046 | case 8: { beforeTraverse << coordsToPixels(keyMin, valueMin); break; } |
| 23047 | } |
| 23048 | break; |
| 23049 | } |
| 23050 | case 4: |
| 23051 | { |
| 23052 | switch (currentRegion) |
| 23053 | { |
| 23054 | case 3: { afterTraverse << coordsToPixels(keyMin, valueMin); break; } |
| 23055 | case 9: { afterTraverse << coordsToPixels(keyMax, valueMin); break; } |
| 23056 | } |
| 23057 | break; |
| 23058 | } |
| 23059 | case 5: { break; } // shouldn't happen because this method only handles full traverses |
| 23060 | case 6: |
| 23061 | { |
| 23062 | switch (currentRegion) |
| 23063 | { |
| 23064 | case 1: { afterTraverse << coordsToPixels(keyMin, valueMax); break; } |
| 23065 | case 7: { afterTraverse << coordsToPixels(keyMax, valueMax); break; } |
| 23066 | } |
| 23067 | break; |
| 23068 | } |
| 23069 | case 7: |
| 23070 | { |
| 23071 | switch (currentRegion) |
| 23072 | { |
| 23073 | case 2: { beforeTraverse << coordsToPixels(keyMax, valueMax); break; } |
| 23074 | case 3: { beforeTraverse << coordsToPixels(keyMax, valueMax); afterTraverse << coordsToPixels(keyMin, valueMin); break; } |
nothing calls this directly
no outgoing calls
no test coverage detected