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

Function ComputeRange

Rendering/Annotation/vtkAxisActor2D.cxx:138–203  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

136}
137
138void ComputeRange(double inRange[2], double outRange[2], int& numTicks, double& interval)
139{
140 // Handle the range
141 double sRange[2];
142 if (inRange[0] < inRange[1])
143 {
144 sRange[0] = inRange[0];
145 sRange[1] = inRange[1];
146 }
147 else if (inRange[0] > inRange[1])
148 {
149 sRange[1] = inRange[0];
150 sRange[0] = inRange[1];
151 }
152 else // they're equal, so perturb them by 1 percent
153 {
154 double perturb = 100.;
155 if (inRange[0] == 0.0)
156 { // if they are both zero, then just perturb about zero
157 sRange[0] = -1 / perturb;
158 sRange[1] = 1 / perturb;
159 }
160 else
161 {
162 sRange[0] = inRange[0] - inRange[0] / perturb;
163 sRange[1] = inRange[0] + inRange[0] / perturb;
164 }
165 }
166
167 double root;
168 numTicks = vtkAxisActor2DComputeTicks(sRange, interval, root);
169
170 // is the starting point reasonable?
171 if (fabs(sRange[0] / root - floor(sRange[0] / root)) < 0.01)
172 {
173 outRange[0] = sRange[0];
174 outRange[1] = outRange[0] + (numTicks - 1.0) * interval;
175 }
176 else
177 {
178 // OK the starting point is not a good number, so we must widen the range
179 // First see if the current range will handle moving the start point
180 outRange[0] = floor(sRange[0] / root) * root;
181 if (outRange[0] + (numTicks - 1.0) * interval <= sRange[1])
182 {
183 outRange[1] = outRange[0] + (numTicks - 1.0) * interval;
184 }
185 else
186 {
187 // Finally in this case we must switch to a larger range to
188 // have reasonable starting and ending values
189 sRange[0] = outRange[0];
190 numTicks = vtkAxisActor2DComputeTicks(sRange, interval, root);
191 outRange[1] = outRange[0] + (numTicks - 1.0) * interval;
192 }
193 }
194
195 // Adjust if necessary

Callers 3

UpdateAdjustedRangeMethod · 0.70
ComputeRangeMethod · 0.70
RenderOpaqueGeometryMethod · 0.70

Calls 2

floorFunction · 0.50

Tested by

no test coverage detected