public MainViewModel(ClusterDataSourceSettings clusterDataSourceSettings, ShapeDataSourceSettings shapeDataSourceSettings, HandDataSourceSettings handDataSourceSettings)
{
this.Frames = new BindingList<TestDepthFrame>();
this.clusterDataSourceSettings = clusterDataSourceSettings;
this.shapeDataSourceSettings = shapeDataSourceSettings;
this.handDataSourceSettings = handDataSourceSettings;
this.VideoPresenter = new VideoViewModel(clusterDataSourceSettings, shapeDataSourceSettings, handDataSourceSettings);
this.VideoPresenter.NewFrameCaptured += new Action<DepthDataFrame>(VideoPresenter_NewFrameCaptured);
this.SaveFrameCommand = new RelayCommand(SaveCurrentFrame);
this.LoadFrameCommand = new RelayCommand(LoadFrames);
this.SelectPointCommand = new RelayCommand(SelectPoint);
this.SelectFrameCommand = new RelayCommand<TestDepthFrame>(SelectFrame);
this.RemoveFrameCommand = new RelayCommand(RemoveFrame);
this.AddHandCommand = new RelayCommand(AddHand);
this.RemoveHandCommand = new RelayCommand<HandDataViewModel>(RemoveHand);
this.MarkPalmCenterCommand = new RelayCommand<HandDataViewModel>(MarkPalmCenter);
this.MarkFingersCommand = new RelayCommand<HandDataViewModel>(MarkFingers);
this.RemoveFingerCommand = new RelayCommand<FingerRoutedEventArgs>(RemoveFinger);
this.OptionChangeCommand = new RelayCommand(ChangeOptions);
this.LayerViewModel = new LayerViewModel();
}