示例#1
0
        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));
        }
示例#2
0
        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");
            }
        }
示例#3
0
 private static IEnumerable <IResult> NewTeapot()
 {
     yield return(Show.Document(new ModelEditorViewModel(new SceneViewModel(MeshellatorLoader.CreateFromTeapot(10, 10)), "[New Teapot]")));
 }