private void Form_Load(object sender, EventArgs e) { { var camera = new Camera( new vec3(3, 4, 5) * 4, new vec3(0, 0, 0), new vec3(0, 1, 0), CameraType.Perspecitive, this.glCanvas1.Width, this.glCanvas1.Height); var rotator = new SatelliteManipulater(); rotator.Bind(camera, this.glCanvas1); this.camera = camera; this.rotator = rotator; var scene = new Scene(camera, this.glCanvas1); this.scene = scene; this.glCanvas1.Resize += this.scene.Resize; } var frmSelectRenderer = new FormSelectType(typeof(RendererBase), false, x => !x.IsAbstract && x.GetCustomAttributes(typeof(DemoRendererAttribute), true).Length > 0); frmSelectRenderer.StartPosition = FormStartPosition.CenterScreen; frmSelectRenderer.Size = new Size(600, 500); if (frmSelectRenderer.ShowDialog() == System.Windows.Forms.DialogResult.OK) { RendererBase renderer = DemoRendererFactory.Create(frmSelectRenderer.SelectedType); if (renderer == null) { throw new Exception("Please add this renderer type to Factory."); } SceneObject obj = renderer.WrapToSceneObject(generateBoundingBox: true); this.scene.RootObject.Children.Add(obj); this.scene.Camera.ZoomCamera(renderer.GetBoundingBox()); var frmProperty = new FormProperyGrid(renderer); frmProperty.Show(); } { var uiAxis = new UIAxis(AnchorStyles.Left | AnchorStyles.Bottom, new Padding(3, 3, 3, 3), new Size(128, 128)); this.scene.UIRoot.Children.Add(uiAxis); } { var builder = new StringBuilder(); builder.AppendLine("1: Scene's property grid."); builder.AppendLine("2: Canvas' property grid."); MessageBox.Show(builder.ToString()); } }