private void StartViewportAndWaitUntilWindowIsClosed() { Closing += (sender, args) => window.Dispose(); app = new BlockingViewportApp(window); viewport = new EditorViewport(window); viewModel.Service.Viewport = viewport; InitializeViewportAndContentManager(); Show(); app.RunAndBlock(); }
public EditorViewport CreateEditorViewport(string inName, string inWindowHandle) { EditorViewport ret = new EditorViewport(EditorRendererPINVOKE.EditorRendererSubsystem_CreateEditorViewport(swigCPtr, inName, inWindowHandle), false); if (EditorRendererPINVOKE.SWIGPendingException.Pending) { throw EditorRendererPINVOKE.SWIGPendingException.Retrieve(); } return(ret); }
protected void OgreControl_Load(object sender, EventArgs e) { if (!DesignMode) { VP = OgreRenderer.Renderer.EditorRS.CreateEditorViewport(Name, Handle.ToString()); World = VP.CreateWorld(true); SpawnEntities(); } }
protected virtual void OgreControlDisposed() { if (!SplashLoadingWindow) { if (MainActor != null) { MainActor.Destroy(); } if (VP != null) { VP.Destroy(); VP.Dispose(); VP = null; } if (World != null) { World.Destroy(); World.Dispose(); World = null; } } }
public override void InputEvent(Node camera, InputEvent @event, Vector3 click_position, Vector3 click_normal, int shape_idx) { GD.Print("GIZMO SCALE INPUT EVENT"); if (@event is InputEventMouseButton) { GizmoPressed = @event.IsActionPressed("mouse_left_click"); if (ActiveAxis != Axis.NONE) { EmitSignal("HandlePressed"); } if (@event.IsActionReleased("mouse_left_click")) { EmitSignal("HandleUnpressed"); } } if (@event is InputEventMouseMotion && GizmoPressed && ActiveAxis != Axis.NONE) { InputEventMouseMotion Event = (InputEventMouseMotion)@event; Godot.Spatial tempObj = GetObject(); if (tempObj == null) { return; } if (CurrentObject == null) { CurrentObject = tempObj; } else if (CurrentObject.Name != tempObj.Name) { CurrentObject = tempObj; } if (CurrentObject.Name == "env") { return; } Vector3 PreviousObjectPosition = CurrentObject.GlobalTransform.origin; Vector3 CurrentObjectPosition = PreviousObjectPosition; Vector2 MouseMoveDelta = Event.Relative * new Vector2((float)0.01, (float)0.01); CurrentObjectPosition += EditorViewport.GetCamera().GlobalTransform.basis.y * -MouseMoveDelta.y; CurrentObjectPosition += EditorViewport.GetCamera().GlobalTransform.basis.x *MouseMoveDelta.x; if (ActiveAxis == Axis.X) { CurrentObjectPosition.y = PreviousObjectPosition.y; CurrentObjectPosition.z = PreviousObjectPosition.z; } else if (ActiveAxis == Axis.Y) { CurrentObjectPosition.x = PreviousObjectPosition.x; CurrentObjectPosition.z = PreviousObjectPosition.z; } else { CurrentObjectPosition.x = PreviousObjectPosition.x; CurrentObjectPosition.y = PreviousObjectPosition.y; } CurrentObject.GlobalTranslate(CurrentObjectPosition - PreviousObjectPosition); } }
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(EditorViewport obj) { return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr); }