MCPcopy Create free account
hub / github.com/CieNTi/serial_port_plotter / getTraverseCornerPoints

Method getTraverseCornerPoints

qcustomplot/qcustomplot.cpp:23017–23099  ·  view source on GitHub ↗

! \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

Source from the content-addressed store, hash-verified

23015 return the respective corner points.
23016*/
23017void 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; }

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected