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

Method AutoScale

Rendering/Annotation/vtkAxisFollower.cxx:172–206  ·  view source on GitHub ↗

------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

170
171//------------------------------------------------------------------------------
172double vtkAxisFollower::AutoScale(
173 vtkViewport* viewport, vtkCamera* camera, double screenSize, double position[3])
174{
175 double newScale = 0.0;
176
177 if (!viewport)
178 {
179 std::cerr << "Invalid or nullptr viewport \n";
180 return newScale;
181 }
182
183 if (!camera)
184 {
185 std::cerr << "Invalid or nullptr camera \n";
186 return newScale;
187 }
188
189 if (!position)
190 {
191 std::cerr << "Invalid or nullptr position \n";
192 return newScale;
193 }
194
195 double factor = 1;
196 if (viewport->GetSize()[1] > 0)
197 {
198 factor = 2.0 * screenSize * tan(vtkMath::RadiansFromDegrees(camera->GetViewAngle() / 2.0)) /
199 viewport->GetSize()[1];
200 }
201
202 double dist = sqrt(vtkMath::Distance2BetweenPoints(position, camera->GetPosition()));
203 newScale = factor * dist;
204
205 return newScale;
206}
207
208//------------------------------------------------------------------------------
209void vtkAxisFollower::ComputeTransformMatrix(vtkRenderer* ren)

Callers 1

Calls 4

tanFunction · 0.50
sqrtFunction · 0.50
GetSizeMethod · 0.45
GetPositionMethod · 0.45

Tested by

no test coverage detected