* a.k.a., "elapse" * Suppose: * AXIS_BREAK_LAST_BREAK_END_BASE: 0 * AXIS_BREAK_ELAPSED_BASE: 0 * breaks: [ * {start: -400, end: -300, gap: 27}, * {start: -100, end: 100, gap: 10}, * {start: 200, end: 400, ga
(val, opt)
| 181 | * `transformIn` and `transformOut` has nothing to do with "scale extent" - out of extent is supported. |
| 182 | */ |
| 183 | transformIn(val, opt) { |
| 184 | if (opt && opt.depth === SCALE_MAPPER_DEPTH_OUT_OF_BREAK) { |
| 185 | return val; |
| 186 | } |
| 187 | |
| 188 | // If the value is in the break, return the normalized value in the break |
| 189 | let elapsedVal = AXIS_BREAK_ELAPSED_BASE; |
| 190 | let lastBreakEnd = AXIS_BREAK_LAST_BREAK_END_BASE; |
| 191 | let stillOver = true; |
| 192 | for (let i = 0; i < this.breaks.length; i++) { |
| 193 | const brk = this.breaks[i]; |
| 194 | if (val <= brk.vmax) { |
| 195 | if (val > brk.vmin) { |
| 196 | elapsedVal += brk.vmin - lastBreakEnd |
| 197 | + (val - brk.vmin) / (brk.vmax - brk.vmin) * brk.gapReal; |
| 198 | } |
| 199 | else { |
| 200 | elapsedVal += val - lastBreakEnd; |
| 201 | } |
| 202 | lastBreakEnd = brk.vmax; |
| 203 | stillOver = false; |
| 204 | break; |
| 205 | } |
| 206 | elapsedVal += brk.vmin - lastBreakEnd + brk.gapReal; |
| 207 | lastBreakEnd = brk.vmax; |
| 208 | } |
| 209 | if (stillOver) { |
| 210 | elapsedVal += val - lastBreakEnd; |
| 211 | } |
| 212 | return elapsedVal; |
| 213 | }, |
| 214 | |
| 215 | /** |
| 216 | * @see transformIn |
no outgoing calls
no test coverage detected