]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/swt/vtkCameraAndSelectorAction.java
Added vtkCameraAndSelectorAction.setViewDir(Vector3d)
[simantics/3d.git] / org.simantics.g3d.vtk / src / org / simantics / g3d / vtk / swt / vtkCameraAndSelectorAction.java
index a5ea614978ee803a6df23c252205ad583f0a1622..e177834ed0ae624ba7a78abc2b100f03b62467a7 100644 (file)
@@ -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();
+       }
+
 }