/// <summary>
 /// Called when the camera is updated so we can tell the simulator where our camera is
 /// and it can do any optimizations based thereon.
 /// </summary>
 /// <param name="position"></param>
 /// <param name="direction"></param>
 /// <param name="far"></param>
 public void UpdateCamera(OMV.Vector3d position, OMV.Quaternion direction, float far) {
     float roll;
     float pitch;
     float yaw;
     direction.GetEulerAngles(out roll, out pitch, out yaw);
     OMV.Vector3 pos = new OMV.Vector3((float)position.X, (float)position.Y, (float)position.Z);
     m_client.Self.Movement.Camera.SetPositionOrientation(pos, roll, pitch, yaw);
     m_client.Self.Movement.Camera.Far = far;
     // m_log.Log(LogLevel.DVIEWDETAIL, "UpdateCamera: {0}, {1}, {2}, {3}", pos.X, pos.Y, pos.Z, direction.ToString());
     return;
 }