public InterfaceControlViewModel(ProblemViewModel problemViewModel, CameraViewModel cameraViewModel)
        {
            _problemViewModel = problemViewModel;
            _cameraViewModel  = cameraViewModel;

            ElementManagementViewModel  = new ElementManagementViewModel(_problemViewModel);
            ForceManagementViewModel    = new ForceManagementViewModel(_problemViewModel);
            NodeManagementViewModel     = new NodeManagementViewModel(_problemViewModel);
            MaterialManagementViewModel = new MaterialManagementViewModel(_problemViewModel);

            KeyboardCameraControlViewModel = new KeyboardCameraControlViewModel(_cameraViewModel);
            MouseCameraControlViewModel    = new MouseCameraControlViewModel(_cameraViewModel);

            problemViewModel.PropertyChanged += ProblemViewModel_PropertyChanged;

            Application.Current.Dispatcher.InvokeAsync(UpdateCamera);
        }
Example #2
0
        public void UpdateCamera_NoPressedButtons_ExpectNoMovementOrRotation()
        {
            //Arrange
            var cameraViewModel = new FakeCameraViewModel();

            var testSubject = new MouseCameraControlViewModel(cameraViewModel);

            //Act
            testSubject.UpdateCamera();

            //Assert
            Assert.That(cameraViewModel.LookAtPoint, Is.EqualTo(new Point3D()));
            Assert.That(cameraViewModel.MovePoint, Is.EqualTo(new Point3D()));
            Assert.That(cameraViewModel.MoveVector, Is.EqualTo(new Vector3D()));
            Assert.That(cameraViewModel.RotationX, Is.EqualTo(0));
            Assert.That(cameraViewModel.RotationY, Is.EqualTo(0));
            Assert.That(cameraViewModel.RotationZ, Is.EqualTo(0));
        }
Example #3
0
        public void UpdateCamera_MouseWheelMoved_ExpectMovementAndNoRotation()
        {
            //Arrange
            var cameraViewModel = new FakeCameraViewModel();

            var testSubject = new MouseCameraControlViewModel(cameraViewModel);

            testSubject.ReactToMouseWheelMovement(100);

            //Act
            testSubject.UpdateCamera();

            //Assert
            Assert.That(cameraViewModel.LookAtPoint, Is.EqualTo(new Point3D()));
            Assert.That(cameraViewModel.MovePoint, Is.EqualTo(new Point3D()));
            Assert.That(cameraViewModel.MoveVector, Is.Not.EqualTo(new Vector3D()));
            Assert.That(cameraViewModel.RotationX, Is.EqualTo(0));
            Assert.That(cameraViewModel.RotationY, Is.EqualTo(0));
            Assert.That(cameraViewModel.RotationZ, Is.EqualTo(0));
        }
Example #4
0
        public void UpdateCamera_LeftButtonPressedAndMoved_ExpectMovementAndNoRotation()
        {
            //Arrange
            var cameraViewModel = new FakeCameraViewModel();

            var testSubject = new MouseCameraControlViewModel(cameraViewModel);

            testSubject.ReactToMouseMovement(new Point(0, 0));
            testSubject.ReactToMouseDown(System.Windows.Input.MouseButton.Left);
            testSubject.ReactToMouseMovement(new Point(10, 10));


            //Act
            testSubject.UpdateCamera();

            //Assert
            Assert.That(cameraViewModel.LookAtPoint, Is.EqualTo(new Point3D()));
            Assert.That(cameraViewModel.MovePoint, Is.EqualTo(new Point3D()));
            Assert.That(cameraViewModel.MoveVector, Is.Not.EqualTo(new Vector3D()));
            Assert.That(cameraViewModel.RotationX, Is.EqualTo(0));
            Assert.That(cameraViewModel.RotationY, Is.EqualTo(0));
            Assert.That(cameraViewModel.RotationZ, Is.EqualTo(0));
        }