public boolean changeDistance(double dist){
  location.set(camera.getDirection());
  location.negateLocal();
  location.scaleAddLocal(dist,camera.getLookAt());
  if (!locInBounds(location))   return (false);
  camera.setLocation(location);
  updateFromCamera();
  updateCrosshair();
  updateGeometricState(0);
  changed.set(true);
  return (true);
}

public boolean changeDistance ( double dist ) { location . set ( camera . getDirection ( ) ) ; location . negateLocal ( ) ; location . scaleAddLocal ( dist , camera . getLookAt ( ) ) ; if ( ! locInBounds ( location ) ) return ( false ) ; camera . setLocation ( location ) ; updateFromCamera ( ) ; updateCrosshair ( ) ; updateGeometricState ( 0 ) ; changed . set ( true ) ; return ( true ) ; }
change the distance from the center of rotation while retaining the viewpoint direction .
