public Camera(IRendererCamera rendererCamera, Vector3 initialPivot, Coroutines coroutines, ILight?cameraLight = null) { _rendererCamera = rendererCamera; _cameraLight = cameraLight; _coroutines = coroutines; _originalPivot = _pivot = initialPivot; _position = _originalPosition = _rendererCamera.Position; _rotation = (_pivot - _position).ToLookRotation(Vector3.UnitY); MoveCamera(_position, _rotation, _pivot); _originalRotation = _rotation; }
public ModelView(MainWindow mainWindow, IScene scene, Coroutines coroutines, MeshViewSettingsViewModel settingsViewModel) { _scene = scene; _camera = new Camera(scene.RendererCamera, Vector3.Zero, coroutines, scene.CameraLight); var border = new Border { Background = Brushes.Black }; border.Child = scene.Visual; var grid = new Grid(); grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(4, GridUnitType.Star) }); grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Auto) }); grid.Children.Add(border); border.SetValue(Grid.RowSpanProperty, 1); _settingsViewModel = settingsViewModel; _settings = new MeshViewSettings(_settingsViewModel); grid.Children.Add(_settings); _settings.SetValue(Grid.RowProperty, 1); var input = scene.MouseInput; input.MouseWheel += MouseWheel; input.MouseMove += MouseMove; input.MouseDown += MouseDown; input.MouseUp += MouseUp; input.MouseDown += DoubleClick; mainWindow.AddHandler(UIElement.KeyDownEvent, new KeyEventHandler(KeyDown), false); Element = grid; }