// Update the tracked users, should be called each frame
//----------------------------------------
void ofxUserGenerator::update() {

    found_users = MAX_NUMBER_USERS;

    XnUserID* users = new XnUserID[MAX_NUMBER_USERS];
    user_generator.GetUsers(users, found_users);

    for(int i = 0; i < found_users; ++i) {
        if(user_generator.GetSkeletonCap().IsTracking(users[i])) {
            tracked_users[i]->id = users[i];
            tracked_users[i]->updateBonePositions();
        }
    }

    delete [] users;

    if (useMaskPixels) updateUserPixels();
    if (useCloudPoints) updateCloudPoints();
}
// Update the tracked users, should be called each frame
//----------------------------------------
void ofxUserGenerator::update() {
	
	found_users = max_num_users;
	
	XnUserID* users = new XnUserID[max_num_users];
	user_generator.GetUsers(users, found_users);
	
	for(int i = 0; i < found_users; ++i) {
		if(user_generator.GetSkeletonCap().IsTracking(users[i])) {	
			tracked_users[i]->id = users[i];
			user_generator.GetCoM(users[i], tracked_users[i]->center);
            tracked_users[i]->skeletonTracking	  = user_generator.GetSkeletonCap().IsTracking(users[i]);
            tracked_users[i]->skeletonCalibrating = user_generator.GetSkeletonCap().IsCalibrating(users[i]);
            tracked_users[i]->skeletonCalibrated  = user_generator.GetSkeletonCap().IsCalibrated(users[i]);
            if(tracked_users[i]->skeletonTracking) tracked_users[i]->updateBonePositions();
		}
	}
	
	delete [] users;
	
	if (useMaskPixels) updateUserPixels();
	if (useCloudPoints) updateCloudPoints();
}