@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
-
- final IWorkbenchPart ap = HandlerUtil.getActiveEditor(event);
- final VtkView panel = (VtkView)ap.getAdapter(VtkView.class);
-
- String param = event.getParameter("org.simantics.g3d.viewDirection");
- String vals[] = param.split(",");
- final Vector3d direction = new Vector3d(Double.parseDouble(vals[0]),Double.parseDouble(vals[1]),Double.parseDouble(vals[2]));
-
-
- ThreadUtils.asyncExec(panel.getThreadQueue(), new Runnable() {
-
+
+ final IWorkbenchPart ap = HandlerUtil.getActiveEditor(event);
+ final VtkView panel = (VtkView)ap.getAdapter(VtkView.class);
+
+ String param = event.getParameter("org.simantics.g3d.viewDirection");
+ String vals[] = param.split(",");
+ final Vector3d direction = new Vector3d(Double.parseDouble(vals[0]),Double.parseDouble(vals[1]),Double.parseDouble(vals[2]));
+
+
+ ThreadUtils.asyncExec(panel.getThreadQueue(), new Runnable() {
+
@Override
public void run() {
Vector3d dir = new Vector3d(pos);
dir.sub(focal);
double distance = dir.length();
-
+
dir.set(direction);
dir.scale(distance);
dir.add(focal);
panel.getRenderer().GetActiveCamera().SetViewUp(0, 1, 0);
else
panel.getRenderer().GetActiveCamera().SetViewUp(1, 0, 0);
-
+
panel.getRenderer().ResetCameraClippingRange();
-
+
//panel.UpdateLight();
panel.refresh();
}
- });
-
- return null;
-
+ });
+
+ return null;
+
}
-
+
}