예제 #1
0
        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            AnalysisViewModel context = (AnalysisViewModel)DataContext;

            context.LoadExecutionModel();

            // If video has not calibration, calibration joint was not set, then there is no reason to show
            // joint calibration information.
            if (!context.HasCalibration)
            {
                lbCalibrationJoint.Visibility = Visibility.Hidden;
                lbJointName.Visibility        = Visibility.Hidden;
                txtCalibrationX.Visibility    = Visibility.Hidden;
                txtCalibrationY.Visibility    = Visibility.Hidden;
                txtCalibrationZ.Visibility    = Visibility.Hidden;
            }
            else
            {
                lbCalibrationJoint.Visibility = Visibility.Visible;
                lbJointName.Visibility        = Visibility.Visible;
                txtCalibrationX.Visibility    = Visibility.Visible;
                txtCalibrationY.Visibility    = Visibility.Visible;
                txtCalibrationZ.Visibility    = Visibility.Visible;
            }

            context.CanvasSkeleton = CanvasPosition;
            context.CanvasImage    = CanvasImage;
            context.FilteredCanvas = FilteredCanvas;
        }
예제 #2
0
        /// <summary>
        /// Constructor for playing back videos, show and collect data.
        /// </summary>
        /// <param name="videos">List of videos to be played</param>
        /// <param name="calibration">Calibration data</param>
        /// <param name="canvasImg">Pointer to RGB image</param>
        /// <param name="canvas">Pointer to skeleton</param>
        /// <param name="calling">Pointer to calling process</param>
        public SessionAnalysisKinect(ObservableCollection <VideoModel> videos, CalibrationModel calibration,
                                     Canvas canvasImg, Canvas canvas, Canvas filteredCanvas, AnalysisViewModel calling)
        {
            _canvas         = canvas;
            _canvasImg      = canvasImg;
            _calibration    = calibration;
            _filteredCanvas = filteredCanvas;

            _tracked    = 0;
            _notTracked = 0;
            frameCount  = 0;

            _defaultCanvas = _canvas;

            // If the session has no calibration initialize the instance.
            if (_calibration == null)
            {
                _calibration = new CalibrationModel()
                {
                    CalSessionId = 0,
                    JointType    = JointType.SpineBase,
                    Position     = new Vector3(0f, 0f, 0f)
                };
            }
            else
            {
                _Xthreshold = _calibration.Threshold.X;
            }

            // A reference to the calling process that receives and shows data.
            _callingProcess = calling;

            InitializeFilterARMA();
            HoltFilter = new KinectJointFilter();
            HoltFilter.Init(0.5f);

            _allRecords = new List <CameraSpacePoint[]>();

            //
            // This block bellow start Kinect device.
            //
            _sensor = KinectSensor.GetDefault();

            if (_sensor != null)
            {
                _sensor.Open();
                _reader = _sensor.OpenMultiSourceFrameReader(FrameSourceTypes.Body | FrameSourceTypes.Color);
                _reader.MultiSourceFrameArrived += FrameArrived;
            }

            // Send the video list to be played.
            PlayVideoList(videos);
        }
예제 #3
0
        /// <summary>
        /// Selects the user control to show within the tab area. Creates a new ViewModel, if the case and
        /// pass it to ApplicationViewModel (shell that controls navigation).
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (e.Source is TabControl)
            {
                ApplicationViewModel app = (ApplicationViewModel)DataContext;

                if (TabItemCalibration.IsSelected)
                {
                    if (calViewModel == null)
                    {
                        calViewModel = new CalibrationViewModel(app);
                    }

                    calViewModel.LoadCalibrationData(false);
                    app.CurrentPageViewModel = calViewModel;
                }
                else if (TabItemExecution.IsSelected)
                {
                    if (exeViewModel == null)
                    {
                        exeViewModel = new AnalysisViewModel(app);
                    }

                    exeViewModel.LoadExecutionModel();
                    app.CurrentPageViewModel = exeViewModel;
                }
                else if (TabItemResults.IsSelected)
                {
                    if (resultViewModel == null)
                    {
                        resultViewModel = new ResultsViewModel(app);
                    }

                    resultViewModel.LoadResultViewModel();
                    app.CurrentPageViewModel = resultViewModel;
                }
                else if (TabItemSessions.IsSelected)
                {
                    // This is the first and default page.
                    app.CurrentPageViewModel = app.PageViewModels[0];
                }
            }
        }
예제 #4
0
 private void UserControl_GotFocus(object sender, RoutedEventArgs e)
 {
     AnalysisViewModel context = (AnalysisViewModel)DataContext;
 }