/// <summary> /// Create the background for the version that has been loaded. /// </summary> private BackgroundScene createBackground() { commonResources.addResource(this.GetType().AssemblyQualifiedName, "EmbeddedResource", true); commonResources.initialize(); BackgroundScene background = new BackgroundScene("SourceBackground", "BodyAtlasBackground", 900, 500, 200, 1, 1); background.setVisible(true); return(background); }
private IEnumerable <IdleStatus> renderImage(ImageRendererProperties properties, Action <FreeImageBitmap> renderingCompletedCallback) { if (imageRendererProgress != null) { imageRendererProgress.Visible = properties.ShowUIUpdates; imageRendererProgress.Cancel = false; imageRendererProgress.update(0, "Rendering Image"); } FreeImageBitmap bitmap = null; SceneViewWindow sceneWindow = sceneViewController.ActiveWindow; if (sceneWindow != null) { if (ImageRenderStarted != null) { ImageRenderStarted.Invoke(this, EventArgs.Empty); } //Background color Engine.Color backgroundColor = properties.CustomBackgroundColor; if (properties.UseWindowBackgroundColor) { backgroundColor = sceneWindow.BackColor; } //Size (with AA) //int width = properties.Width * properties.AntiAliasingMode; //int height = properties.Height * properties.AntiAliasingMode; //Camera position Vector3 cameraPosition = sceneWindow.Translation; Vector3 cameraLookAt = sceneWindow.LookAt; if (!properties.UseActiveViewportLocation) { cameraPosition = properties.CameraPosition; cameraLookAt = properties.CameraLookAt; } //Turn off background if needed if (background != null) { background.setVisible(properties.ShowBackground); } //Layer override String activeTransparencyState = TransparencyController.ActiveTransparencyState; if (properties.OverrideLayers) { TransparencyController.ActiveTransparencyState = TransparencyStateName; if (properties.LayerState != null) { properties.LayerState.instantlyApply(); } else { Log.Warning("ImageRenderer was told to override layers but no layer state was provided."); } } TransparencyController.applyTransparencyState(TransparencyController.ActiveTransparencyState); //Render IEnumerable <IdleStatus> process = createRender(properties.Width, properties.Height, properties.AntiAliasingMode, properties.ShowWatermark, properties.TransparentBackground, backgroundColor, sceneWindow.Camera, cameraPosition, cameraLookAt, sceneWindow.MinNearDistance, sceneWindow.NearPlaneWorld, sceneWindow.NearFarLength, properties, (product) => { bitmap = product; }); foreach (IdleStatus idleStatus in process) { yield return(idleStatus); } //Turn off layer override if (properties.OverrideLayers) { TransparencyController.ActiveTransparencyState = activeTransparencyState; } //Reactivate background if (background != null) { background.setVisible(true); } if (ImageRenderCompleted != null) { ImageRenderCompleted.Invoke(this, EventArgs.Empty); } } if (imageRendererProgress != null && properties.ShowUIUpdates) { imageRendererProgress.Visible = false; } renderingCompletedCallback(bitmap); yield break; }