public override void Initialize() { Shell.Title = "Meshellator Viewer"; Scene torusScene = MeshellatorLoader.CreateFromTorus(10, 1, 20); Scene teapotScene = MeshellatorLoader.CreateFromTeapot(15, 20); teapotScene.Materials[0].DiffuseColor = ColorsRgbF.Green; Scene planeScene = MeshellatorLoader.CreateFromPlane(40, 40); planeScene.Materials[0].DiffuseColor = ColorsRgbF.Gray; torusScene.Meshes.Add(teapotScene.Meshes[0]); torusScene.Meshes.Add(planeScene.Meshes[0]); Shell.OpenDocument(new ModelEditorViewModel(new SceneViewModel(torusScene), "[New Shape]")); var fileMenuItem = Shell.MainMenu.First(mi => mi.Name == "File"); fileMenuItem.Children.Insert(0, new MenuItem("New Sphere", NewSphere)); fileMenuItem.Children.Insert(1, new MenuItem("New Teapot", NewTeapot)); fileMenuItem.Children.Insert(2, new MenuItemSeparator()); var rendererMenu = new MenuItem("Renderer"); Shell.MainMenu.Add(rendererMenu); rendererMenu.Add( new CheckableMenuItem("Wireframe", ToggleFillModeWireframe), MenuItemBase.Separator, new CheckableMenuItem("Show Normals", ToggleNormals, ChangeRenderStateCanExecute), new CheckableMenuItem("Show Shadows", ToggleShadows, ChangeRenderStateCanExecute) { IsChecked = true }, MenuItemBase.Separator, new CheckableMenuItem("Anti-Aliasing", ToggleAntiAliasing, ChangeRenderStateCanExecute) { IsChecked = true }, new CheckableMenuItem("No Specular", ToggleSpecular, ChangeRenderStateCanExecute)); }
public void CanRenderPrimitive() { // Arrange. Scene scene = MeshellatorLoader.CreateFromTeapot(10, 10); using (var renderer = new WarpSceneRenderer(scene, 550, 350)) { renderer.Options.BackgroundColor = Color.FromRgb(200, 200, 200); Camera camera = new PerspectiveCamera { LookDirection = new Vector3D(-1, -0.3f, 1), Position = new Point3D(50, 20, -20), }; // Act. BitmapSource bitmap = renderer.Render(camera); // Assert. Assert.IsNotNull(bitmap); SaveImage(bitmap, "teapot.jpg"); } }
private static IEnumerable <IResult> NewTeapot() { yield return(Show.Document(new ModelEditorViewModel(new SceneViewModel(MeshellatorLoader.CreateFromTeapot(10, 10)), "[New Teapot]"))); }