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();
                };
            }
        }
Exemplo n.º 2
0
        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);
                }
            }
        }
Exemplo n.º 3
0
        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);
            }
        }