private void GenerateSkeletonDataGridData()
{
int totalSkeletons = 0;
for (int i = 0; i < server.kinects.Count; i++)
{
if (server.kinects[i].version == KinectVersion.KinectV1)
{
if (((KinectV1Wrapper.Settings)server.serverMasterOptions.kinectOptionsList[i]).mergeSkeletons)
{
totalSkeletons += 6; //Each Kinect supports 6 people, but only 2 with full skeleton tracking
}
}
else if (server.kinects[i].version == KinectVersion.KinectV2)
{
if (((KinectV2Wrapper.Settings)server.serverMasterOptions.kinectOptionsList[i]).mergeSkeletons)
{
totalSkeletons += 6; //Each Kinect supports 6 people with full skeleton tracking
}
}
else if (server.kinects[i].version == KinectVersion.NetworkKinect)
{
//TODO: Add the number of skeletons for each used networked kinect
}
}
if (totalSkeletons > server.serverMasterOptions.mergedSkeletonOptions.individualSkeletons.Count) //Add skeleton settings
{
for (int i = server.serverMasterOptions.mergedSkeletonOptions.individualSkeletons.Count; i < totalSkeletons; i++)
{
PerSkeletonSettings temp = new PerSkeletonSettings(); //Fill the skeleton information with the default settings
string tempServer = "Tracker" + i.ToString();
temp.skeletonNumber = i;
temp.serverName = tempServer;
temp.renderColor = AutoPickSkeletonRenderColor(i);
temp.useSkeleton = true;
temp.useRightHandGrip = true;
temp.rightGripServerName = tempServer;
temp.rightGripButtonNumber = 0;
temp.useLeftHandGrip = true;
temp.leftGripServerName = tempServer;
temp.leftGripButtonNumber = 1;
server.serverMasterOptions.mergedSkeletonOptions.individualSkeletons.Add(temp);
}
}
else if (totalSkeletons < server.serverMasterOptions.mergedSkeletonOptions.individualSkeletons.Count) //Remove skeleton settings
{
for (int i = server.serverMasterOptions.mergedSkeletonOptions.individualSkeletons.Count - 1; i >= totalSkeletons; i--)
{
server.serverMasterOptions.mergedSkeletonOptions.individualSkeletons.RemoveAt(i);
}
}
SkeletonSettingsDataGrid.Items.Refresh();
}