private void SetRenderingViewportMode() { currentViewportMode = ViewportMode.Rendering; openTkControl.Visibility = Visibility.Hidden; outputImage.Visibility = Visibility.Visible; toggleViewportModeButton.Content = "Editor View"; }
/// <summary>Updates the openGL viewport</summary> /// <param name="Mode">The viewport change mode</param> public void UpdateViewport(ViewportChangeMode Mode) { switch (Mode) { case ViewportChangeMode.ChangeToScenery: CurrentViewportMode = ViewportMode.Scenery; break; case ViewportChangeMode.ChangeToCab: CurrentViewportMode = ViewportMode.Cab; break; } UpdateViewport(); }
} // NormalizedViewport #endregion #region Constructor /// <summary> /// Editor Viewport. /// </summary> public EditorViewport(RectangleF normalizedViewport, ViewportMode mode) { #region Controls viewportControl = new Container { Parent = MainWindow.ViewportsSpace, Anchor = Anchors.Left | Anchors.Top, CanFocus = false, }; // Stores the normalized viewport to adapt to screen size changes. NormalizedViewport = normalizedViewport; ToolBarPanel topPanel = new ToolBarPanel { Width = viewportControl.Width }; viewportControl.ToolBarPanel = topPanel; ToolBar toolBarTopPanel = new ToolBar { Parent = topPanel, Movable = true, FullRow = true, }; var modeComboBox = new ComboBox { Parent = topPanel, Width = 200, Top = 2, }; modeComboBox.Items.AddRange(new [] { "Perspective", "Top", "Front", "Right", "Game" }); modeComboBox.ItemIndex = 0; modeComboBox.ItemIndexChanged += delegate { switch (modeComboBox.ItemIndex) { case 0: Mode = ViewportMode.Perspective; break; case 1: Mode = ViewportMode.Top; break; case 2: Mode = ViewportMode.Front; break; case 3: Mode = ViewportMode.Right; break; case 4: Mode = ViewportMode.Game; break; } }; modeComboBox.Draw += delegate { if (modeComboBox.ListBoxVisible) { return; } switch (Mode) { case ViewportMode.Perspective: modeComboBox.ItemIndex = 0; break; case ViewportMode.Top: modeComboBox.ItemIndex = 1; break; case ViewportMode.Front: modeComboBox.ItemIndex = 2; break; case ViewportMode.Right: modeComboBox.ItemIndex = 3; break; case ViewportMode.Game: modeComboBox.ItemIndex = 4; break; } }; #endregion #region Cameras // Assets ambientLight = new AmbientLight { Name = "Editor Camara Ambient Light ", Color = Color.White, Intensity = 5f }; postProcess = new PostProcess { Name = "Editor Camera Post Process" }; postProcess.ToneMapping.ToneMappingFunction = ToneMapping.ToneMappingFunctionEnumerate.FilmicALU; postProcess.Bloom.Enabled = false; // Editor Camera viewportCamera = new GameObject3D(); viewportCamera.AddComponent <Camera>(); viewportCamera.Camera.Enabled = true; viewportCamera.Layer = Layer.GetLayerByNumber(31); viewportCamera.Camera.RenderingOrder = int.MinValue; editorCameraScript = (ScriptEditorCamera)viewportCamera.AddComponent <ScriptEditorCamera>(); editorCameraScript.Mode = ScriptEditorCamera.ModeType.Maya; editorCameraScript.ClientArea = viewportControl.ClientArea; // Camera to render the gizmos and other editor elements. // This is done because the gizmos need to be in front of everything and I can't clear the ZBuffer wherever I want. helperCamera = new GameObject3D(); helperCamera.AddComponent <Camera>(); helperCamera.Camera.Enabled = true; helperCamera.Camera.CullingMask = Layer.GetLayerByNumber(31).Mask; // The editor layer. helperCamera.Camera.ClearColor = Color.Transparent; helperCamera.Layer = Layer.GetLayerByNumber(31); // Set the viewport camara as master of the gizmo camera. helperCamera.Camera.MasterCamera = viewportCamera.Camera; #endregion // Set default camera transformation in each mode. Mode = ViewportMode.Perspective; Reset(); Mode = ViewportMode.Top; Reset(); Mode = ViewportMode.Front; Reset(); Mode = ViewportMode.Right; Reset(); // Set current mode. Mode = mode; // Adjust viewport dimentions and render target size when the size changes. Screen.ScreenSizeChanged += OnScreenSizeChanged; } // EditorViewport
public void SetViewportMode(ViewportMode mode) { this.m_ViewportMode = mode; }