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();
+ }
+
}