void Update() { if (kinectInitialized) { colorStreamUpdated = KinectV2Wrapper.PollColor(colorFrameReader, ref processedKinectData.ColorStreamData); infraredStreamUpdated = KinectV2Wrapper.PollInfrared(infraredFrameReader, ref processedKinectData.RawDepths); depthDataUpdated = KinectV2Wrapper.PollDepth(depthFrameReader, KinectV2Wrapper.Constants.IsNearMode, ref processedKinectData.CorrectedDepths); if (colorStreamUpdated && depthDataUpdated && (displayStreams || displayPointCloud)) { RefreshStreamsAndPointCloud(); } if (Input.GetKeyDown(KeyCode.Escape)) { Application.Quit(); } } }
void v2StatusHelper_KinectV2StatusChanged(object sender, KinectV2Wrapper.StatusEventArgs e) { bool kinectFound = false; for (int i = 0; i < availableKinects.Count; i++) { //Check the Kinect by version, not by ID, because the ID is not preserved when the Kinect is disconnected if (availableKinects[i].kinectType == KinectVersion.KinectV2) { if (e.Status != KinectStatus.Disconnected) { availableKinects[i].Status = e.Status; availableKinects[i].KinectTypeString = "Kinect v2"; availableKinects[i].kinectType = KinectVersion.KinectV2; if (e.Status != KinectStatus.Connected) { availableKinects[i].UseKinect = false; } } else { availableKinects[i].UseKinect = false; availableKinects[i].PropertyChanged -= useKinect_PropertyChanged; availableKinects.RemoveAt(i); renumberKinectIDs(); } kinectsAvailableDataGrid.Items.Refresh(); kinectFound = true; } } if (!kinectFound && e.Status != KinectStatus.Disconnected) { AvailableKinectData tempData = new AvailableKinectData(); tempData.UniqueID = e.UniqueKinectID; tempData.KinectID = null; tempData.UseKinect = false; tempData.KinectTypeString = "Kinect v2"; tempData.kinectType = KinectVersion.KinectV2; tempData.PropertyChanged += useKinect_PropertyChanged; tempData.Status = e.Status; availableKinects.Add(tempData); kinectsAvailableDataGrid.Items.Refresh(); } //Update the number of Kinects attached to the computer KinectStatusBlock.Text = availableKinects.Count.ToString(); }