/// <summary> /// Creates an orbiting camera controller. /// </summary> /// <param name="window">The window were the event handlers should be registered.</param> /// <param name="distance">The distance.</param> /// <param name="fieldOfViewY">The field-of-view in y-direction.</param> /// <param name="nearClip">The near clip plane distance.</param> /// <param name="farClip">The far clip plane distance.</param> /// <returns></returns> public static Orbit CreateOrbitingCameraController(this INativeWindow window, float distance, float fieldOfViewY = 90f, float nearClip = 0.1f, float farClip = 1f) { var perspective = new Perspective(fieldOfViewY, nearClip, farClip); window.AddWindowAspectHandling(perspective); var orbit = new Orbit(distance, parent: perspective); window.AddMayaCameraEvents(perspective, orbit); return(orbit); }