void sceneViewController_WindowCreated(SceneViewWindow window) { MDISceneViewWindow mdiWindow = window as MDISceneViewWindow; if (mdiWindow != null) { LicenseDisplay licenseDisplay = new LicenseDisplay(); activeLicenseDisplays.Add(licenseDisplay); mdiWindow.addChildContainer(licenseDisplay.LayoutContainer); mdiWindow.Disposed += (win) => { activeLicenseDisplays.Remove(licenseDisplay); licenseDisplay.Dispose(); }; } }
public override void skipTo(float timelineTime) { MDISceneViewWindow window = TimelineController.SceneViewController.findWindow(CameraName); if (window != null) { if (timelineTime <= EndTime) { Vector3 translation = window.Translation; Vector3 lookAt = window.LookAt; Vector3 finalTrans = window.computeAdjustedTranslation(CameraPosition); Vector3 finalLookAt = CameraPosition.LookAt; float percent = 1.0f; float currentTime = timelineTime - StartTime; if (Duration != 0.0f) { percent = currentTime / Duration; } CameraPosition immediatePos = new CameraPosition() { Translation = translation.lerp(ref finalTrans, ref percent), LookAt = lookAt.lerp(ref finalLookAt, ref percent) }; window.immediatlySetPosition(immediatePos); float time = Duration - currentTime; if (time <= 0.001f) { time = 0.001f; } CameraPosition cameraPosition = new CameraPosition(CameraPosition) { Translation = finalTrans, }; window.setPosition(cameraPosition, time); } else { Vector3 finalTrans = window.computeAdjustedTranslation(CameraPosition); CameraPosition immediatePos = new CameraPosition() { Translation = finalTrans, LookAt = CameraPosition.LookAt }; window.immediatlySetPosition(immediatePos); } } }
public override void started(float timelineTime, Clock clock) { MDISceneViewWindow window = TimelineController.SceneViewController.findWindow(CameraName); if (window != null) { window.setPosition(CameraPosition, Duration); } else { SceneViewWindow sceneViewWindow = TimelineController.SceneViewController.ActiveWindow; if (sceneViewWindow != null) { sceneViewWindow.setPosition(CameraPosition, Duration); } } }
public static void createFromPresets(this SceneViewController controller, SceneViewWindowPresetSet presets, bool keepOldSettings = true) { //Capture current window configuration info List <Bookmark> currentWindowConfig = new List <Bookmark>(); if (keepOldSettings) { SceneViewWindow activeWindow = controller.ActiveWindow; if (activeWindow != null) { TransparencyController.ActiveTransparencyState = activeWindow.CurrentTransparencyState; LayerState layerState = new LayerState(); layerState.captureState(); currentWindowConfig.Add(new Bookmark("", activeWindow.Translation, activeWindow.LookAt, layerState)); } foreach (MDISceneViewWindow window in controller.MdiWindows) { if (window != activeWindow) { TransparencyController.ActiveTransparencyState = window.CurrentTransparencyState; LayerState layerState = new LayerState(); layerState.captureState(); currentWindowConfig.Add(new Bookmark("", window.Translation, window.LookAt, layerState)); } } } //Create windows int windowIndex = 0; int zOrder = 100; int zOrderInc = 10; controller.closeAllWindows(); MDISceneViewWindow camera; MDISceneViewWindow toSelect = null; foreach (SceneViewWindowPreset preset in presets.getPresetEnum()) { if (windowIndex < currentWindowConfig.Count) { Bookmark bmk = currentWindowConfig[windowIndex++]; camera = controller.createWindow(preset.Name, bmk.CameraPosition.Translation, bmk.CameraPosition.LookAt, preset.BoundMin, preset.BoundMax, preset.OrbitMinDistance, preset.OrbitMaxDistance, zOrder, controller.findWindow(preset.ParentWindow), preset.WindowPosition); TransparencyController.ActiveTransparencyState = camera.CurrentTransparencyState; bmk.Layers.instantlyApply(); } else { camera = controller.createWindow(preset.Name, preset.Position, preset.LookAt, preset.BoundMin, preset.BoundMax, preset.OrbitMinDistance, preset.OrbitMaxDistance, zOrder, controller.findWindow(preset.ParentWindow), preset.WindowPosition); Bookmark bmk = null; if (BookmarksController != null) { bmk = BookmarksController.loadBookmark(String.Format("Cameras/{0}.bmk", camera.CurrentTransparencyState)); if (bmk != null) { camera.setPosition(bmk.CameraPosition, 0.0f); TransparencyController.ActiveTransparencyState = camera.CurrentTransparencyState; bmk.Layers.instantlyApply(); } } } if (toSelect == null) { toSelect = camera; } zOrder += zOrderInc; } if (toSelect != null) { controller.setActiveMdiWindow(toSelect); } }