/// <summary> /// Update tracked skeletons according to current chooser mode /// </summary> void NuiSkeletonStream::UpdateTrackedSkeletons() { DWORD trackIDs[TrackIDIndexCount] = {0}; if (ChooserModeClosest1 == m_chooserMode || ChooserModeClosest2 == m_chooserMode) { ChooseClosestSkeletons(trackIDs); } else if (ChooserModeSticky1 == m_chooserMode || ChooserModeSticky2 == m_chooserMode) { ChooseStickySkeletons(trackIDs); } else if (ChooserModeActive1 == m_chooserMode || ChooserModeActive2 == m_chooserMode) { ChooseMostActiveSkeletons(trackIDs); } if (ChooserModeClosest1 == m_chooserMode || ChooserModeSticky1 == m_chooserMode || ChooserModeActive1 == m_chooserMode) { // Track only one player ID. The second ID is not used trackIDs[SecondTrackID] = 0; } m_pNuiSensor->NuiSkeletonSetTrackedSkeletons(trackIDs); }
/// <summary> /// Update tracked skeletons according to current chooser mode /// </summary> vector<int> UKinect::UpdateTrackedSkeletons() { //NOTE: verify if zero can be used. -1 is more explicit. DWORD trackIDs[TrackIDIndexCount] = { 0 }; if (ChooserModeClosest1 == skeletonChooserMode.as<int>() || ChooserModeClosest2 == skeletonChooserMode.as<int>()) { ChooseClosestSkeletons(trackIDs); } else if (ChooserModeSticky1 == skeletonChooserMode.as<int>() || ChooserModeSticky2 == skeletonChooserMode.as<int>()) { ChooseStickySkeletons(trackIDs); } else if (ChooserModeActive1 == skeletonChooserMode.as<int>() || ChooserModeActive2 == skeletonChooserMode.as<int>()) { ChooseMostActiveSkeletons(trackIDs); } if (ChooserModeClosest1 == skeletonChooserMode.as<int>() || ChooserModeSticky1 == skeletonChooserMode.as<int>() || ChooserModeActive1 == skeletonChooserMode.as<int>()) { // Track only one player ID. The second ID is not used trackIDs[SecondTrackID] = 0; } sensor->NuiSkeletonSetTrackedSkeletons(trackIDs); vector<int> res; for (int i = 0; i < TrackIDIndexCount; i++) res.push_back((int)trackIDs[i]); return res; }