protected override Task <bool> Initialize(EditorServiceGame editorGame) { game = (EntityHierarchyEditorGame)editorGame; spaceMarker = new SpaceMarker(game); spaceMarker.Initialize(game.Services, game.EditorScene); game.Script.AddTask(Update); return(Task.FromResult(true)); }
protected override Task <bool> Initialize(EditorServiceGame editorGame) { game = (EntityHierarchyEditorGame)editorGame; gizmo = new CameraOrientationGizmo(this, game); gizmo.Initialize(game.Services, game.EditorScene); game.Script.AddTask(Update); return(Task.FromResult(true)); }
protected override Task <bool> Initialize(EditorServiceGame editorGame) { if (editorGame == null) { throw new ArgumentNullException(nameof(editorGame)); } game = (EntityHierarchyEditorGame)editorGame; // Create render stage var physicsDebugShapeRenderStage = new RenderStage("PhysicsDebugShape", "Main"); game.EditorSceneSystem.GraphicsCompositor.RenderStages.Add(physicsDebugShapeRenderStage); // Setup stage selector var meshRenderFeature = game.EditorSceneSystem.GraphicsCompositor.RenderFeatures.OfType <MeshRenderFeature>().First(); meshRenderFeature.RenderStageSelectors.Add(new SimpleGroupToRenderStageSelector { EffectName = EditorGraphicsCompositorHelper.EditorForwardShadingEffect, RenderGroup = GizmoBase.PhysicsShapesGroupMask, RenderStage = physicsDebugShapeRenderStage, }); // Apply wireframe meshRenderFeature.PipelineProcessors.Add(new WireframePipelineProcessor { RenderStage = physicsDebugShapeRenderStage }); // Setup renderer var editorCompositor = (EditorTopLevelCompositor)game.EditorSceneSystem.GraphicsCompositor.Game; editorCompositor.PostGizmoCompositors.Add(new SingleStageRenderer { Name = "Render Physics Gizmo", RenderStage = physicsDebugShapeRenderStage, }); return(Task.FromResult(true)); }
protected override Task <bool> Initialize(EditorServiceGame editorGame) { if (editorGame == null) { throw new ArgumentNullException(nameof(editorGame)); } game = (EntityHierarchyEditorGame)editorGame; var gridGizmoRenderStage = new RenderStage("GridGizmo", "Main") { SortMode = new BackToFrontSortMode() }; game.EditorSceneSystem.GraphicsCompositor.RenderStages.Add(gridGizmoRenderStage); var meshRenderFeature = game.EditorSceneSystem.GraphicsCompositor.RenderFeatures.OfType <MeshRenderFeature>().First(); meshRenderFeature.RenderStageSelectors.Add(new SimpleGroupToRenderStageSelector { EffectName = EditorGraphicsCompositorHelper.EditorForwardShadingEffect, RenderGroup = GridGizmoBase.GridGroupMask, RenderStage = gridGizmoRenderStage }); meshRenderFeature.PipelineProcessors.Add(new AlphaBlendPipelineProcessor { RenderStage = gridGizmoRenderStage }); var editorCompositor = (EditorTopLevelCompositor)game.EditorSceneSystem.GraphicsCompositor.Game; editorCompositor.PostGizmoCompositors.Add(new SingleStageRenderer { RenderStage = gridGizmoRenderStage }); grid = new TGridGizmo(); grid.Initialize(editorGame.Services, game.EditorScene); game.Script.AddTask(UpdateGrid); return(Task.FromResult(true)); }
protected override Task <bool> Initialize(EditorServiceGame editorGame) { Game = (EntityHierarchyEditorGame)editorGame; Component = new CameraComponent(); cameraEditorEntity = new Entity("Camera Editor Entity") { Component }; Game.EditorScene.Entities.Add(cameraEditorEntity); var editorCameraTopLevel = Game.EditorSceneSystem.GraphicsCompositor.Game as EditorTopLevelCompositor; if (editorCameraTopLevel != null) { editorCameraTopLevel.ExternalCamera = Component; } // set the camera values Component.NearClipPlane = CameraComponent.DefaultNearClipPlane; Component.FarClipPlane = CameraComponent.DefaultFarClipPlane; Component.UseCustomViewMatrix = true; MoveSpeed = DefaultMoveSpeed; RotationSpeed = 0.75f * MathUtil.Pi; MouseMoveSpeedFactor = 100.0f; MouseWheelZoomSpeedFactor = 12.0f; RotationAdaptationSpeed = 5.0f; Component.UseCustomAspectRatio = true; Reset(); // create the script Game.Script.AddTask(Update); return(Task.FromResult(true)); }
/// <summary> /// Initializes a new instance of the <see cref="SpaceMarker"/> class. /// </summary> /// <param name="game">The scene game.</param> internal SpaceMarker(EntityHierarchyEditorGame game) { RenderGroup = SpaceMarkerGroup; this.game = game; }
/// <summary> /// Initializes a new instance of the <see cref="CameraOrientationGizmo"/> class. /// </summary> /// <param name="service">The service that is using this gizmo.</param> /// <param name="game">The scene game.</param> internal CameraOrientationGizmo(EditorGameCameraOrientationService service, EntityHierarchyEditorGame game) { RenderGroup = ViewGizmoGroup; this.service = service; this.game = game; }