/// <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;
}