MCPcopy Create free account
hub / github.com/Kitware/VTK / AdjustAndSplitRange

Function AdjustAndSplitRange

Rendering/Annotation/vtkAxisActor2D.cxx:255–299  ·  view source on GitHub ↗

* Update Range, so outRange can be split into `numberOfTick` * rounded values, including bounds. * * @see SnapTicksToRoundValues */

Source from the content-addressed store, hash-verified

253 * @see SnapTicksToRoundValues
254 */
255void AdjustAndSplitRange(double inRange[2], int inNumTicks, double outRange[2], int& numberOfTicks)
256{
257 // Handle the range
258 double sRange[2];
259 if (inRange[0] < inRange[1])
260 {
261 sRange[0] = inRange[0];
262 sRange[1] = inRange[1];
263 }
264 else if (inRange[0] > inRange[1])
265 {
266 sRange[1] = inRange[0];
267 sRange[0] = inRange[1];
268 }
269 else // they're equal, so perturb them by 1 percent
270 {
271 double perturb = 100.;
272 if (inRange[0] == 0.0)
273 { // if they are both zero, then just perturb about zero
274 sRange[0] = -1 / perturb;
275 sRange[1] = 1 / perturb;
276 }
277 else
278 {
279 sRange[0] = inRange[0] - inRange[0] / perturb;
280 sRange[1] = inRange[0] + inRange[0] / perturb;
281 }
282 }
283
284 double interval;
285 numberOfTicks = details::SnapTicksToRoundValues(sRange, inNumTicks, interval);
286
287 // round range to start on a multiple of Interval.
288 outRange[0] = static_cast<int>(sRange[0] / interval) * interval;
289 outRange[1] = outRange[0] + (numberOfTicks - 1) * interval;
290
291 // Adjust if necessary
292 if (inRange[0] > inRange[1])
293 {
294 sRange[0] = outRange[1];
295 outRange[1] = outRange[0];
296 outRange[0] = sRange[0];
297 interval = -interval;
298 }
299}
300
301};
302

Callers 1

UpdateAdjustedRangeMethod · 0.85

Calls 1

SnapTicksToRoundValuesFunction · 0.85

Tested by

no test coverage detected