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

Method SetScale

Rendering/Core/vtkInteractorStyle3D.cxx:258–288  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

256}
257
258void vtkInteractorStyle3D::SetScale(vtkCamera* camera, double newScale)
259{
260 vtkRenderWindowInteractor3D* rwi = static_cast<vtkRenderWindowInteractor3D*>(this->Interactor);
261
262 double* trans = rwi->GetPhysicalTranslation(camera);
263 double physicalScale = rwi->GetPhysicalScale();
264 double* dop = camera->GetDirectionOfProjection();
265 double* pos = camera->GetPosition();
266 double hmd[3];
267 hmd[0] = (pos[0] + trans[0]) / physicalScale;
268 hmd[1] = (pos[1] + trans[1]) / physicalScale;
269 hmd[2] = (pos[2] + trans[2]) / physicalScale;
270
271 double newPos[3];
272 newPos[0] = hmd[0] * newScale - trans[0];
273 newPos[1] = hmd[1] * newScale - trans[1];
274 newPos[2] = hmd[2] * newScale - trans[2];
275
276 // Note: New camera properties are overridden by virtual reality render
277 // window if head-mounted display is tracked
278 camera->SetFocalPoint(
279 newPos[0] + dop[0] * newScale, newPos[1] + dop[1] * newScale, newPos[2] + dop[2] * newScale);
280 camera->SetPosition(newPos[0], newPos[1], newPos[2]);
281
282 rwi->SetPhysicalScale(newScale);
283
284 if (this->AutoAdjustCameraClippingRange && this->CurrentRenderer)
285 {
286 this->CurrentRenderer->ResetCameraClippingRange();
287 }
288}
289VTK_ABI_NAMESPACE_END

Callers 15

UpdatePoseMethod · 0.45
ComputeMatrixMethod · 0.45
PlaceWidgetMethod · 0.45
PlaceWidgetExtendedMethod · 0.45
BuildRepresentationMethod · 0.45
UpdateRepresentationMethod · 0.45
GetAvatarMethod · 0.45
OnPinchMethod · 0.45
ShowBillboardMethod · 0.45
ShowPickSphereMethod · 0.45
ShowPickCellMethod · 0.45

Calls 7

GetPhysicalScaleMethod · 0.80
GetPositionMethod · 0.45
SetFocalPointMethod · 0.45
SetPositionMethod · 0.45
SetPhysicalScaleMethod · 0.45