X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.g3d.vtk%2Fsrc%2Forg%2Fsimantics%2Fg3d%2Fvtk%2Fswt%2FvtkCameraAndSelectorAction.java;fp=org.simantics.g3d.vtk%2Fsrc%2Forg%2Fsimantics%2Fg3d%2Fvtk%2Fswt%2FvtkCameraAndSelectorAction.java;h=e177834ed0ae624ba7a78abc2b100f03b62467a7;hb=6325452591b2a854f82ac913fe4f61e3df2f922d;hp=a5ea614978ee803a6df23c252205ad583f0a1622;hpb=370a955304d3aeacfdd59aa42d875c6142499dfd;p=simantics%2F3d.git diff --git a/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/swt/vtkCameraAndSelectorAction.java b/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/swt/vtkCameraAndSelectorAction.java index a5ea6149..e177834e 100644 --- a/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/swt/vtkCameraAndSelectorAction.java +++ b/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/swt/vtkCameraAndSelectorAction.java @@ -477,4 +477,17 @@ public class vtkCameraAndSelectorAction extends vtkSwtAction implements ISelecti return Math.abs(dx * dir.x) + Math.abs(dy * dir.y) + Math.abs(dz * dir.z); } + public void setViewDir(Vector3d direction) { + Vector3d focal = new Vector3d(cam.GetFocalPoint()); + Vector3d pos = new Vector3d(cam.GetPosition()); + Vector3d dir = new Vector3d(pos); + dir.sub(focal); + double distance = dir.length(); + dir.scaleAdd(distance, direction, focal); + cam.SetPosition(dir.x, dir.y, dir.z); + focus(focal.x, focal.y, focal.z); + //panel.UpdateLight(); + panel.refresh(); + } + }