private void InitDeviceInfo() { int width = _kinect.GetCalibration().DepthCameraCalibration.ResolutionWidth; int height = _kinect.GetCalibration().DepthCameraCalibration.ResolutionHeight; DeviceInfo = new KinectDeviceInfo(width, height); }
private void InitResultData(KinectDeviceInfo deviceInfo) { _depthImageColors = new Color32[deviceInfo.TotalPixelNum]; _resultData.Vertexes = new Vector3[deviceInfo.TotalPixelNum]; _resultData.Colors = new Color32[deviceInfo.TotalPixelNum]; _resultData.RGBTexture = new Texture2D(deviceInfo.Width, deviceInfo.Height); _resultData.DepthTexture = new Texture2D(deviceInfo.Width, deviceInfo.Height); }
private List <int> GetIndicateList(KinectDeviceInfo deviceInfo, KinectResultData resultData) { List <int> indicateList = new List <int>(); if (_meshTopology == MeshTopology.Points) { for (int i = 0; i < deviceInfo.TotalPixelNum; i++) { bool isVaridPoint = resultData.Vertexes[i].magnitude != 0; if (isVaridPoint) { indicateList.Add(i); } } return(indicateList); } for (int y = 0; y < deviceInfo.Height - 1; y++) { for (int x = 0; x < deviceInfo.Width - 1; x++) { int index = y * deviceInfo.Width + x; int a = index; int b = index + 1; int c = index + deviceInfo.Width; int d = index + deviceInfo.Width + 1; bool isVaridA = resultData.Vertexes[a].magnitude != 0; bool isVaridB = resultData.Vertexes[b].magnitude != 0; bool isVaridC = resultData.Vertexes[c].magnitude != 0; bool isVaridD = resultData.Vertexes[d].magnitude != 0; switch (_meshTopology) { case MeshTopology.Triangles: if (isVaridA & isVaridD & isVaridC) { indicateList.Add(a); indicateList.Add(d); indicateList.Add(c); } if (isVaridA & isVaridB & isVaridD) { indicateList.Add(a); indicateList.Add(b); indicateList.Add(d); } break; case MeshTopology.Quads: if (!(isVaridA && isVaridB && isVaridC && isVaridD)) { continue; } indicateList.Add(a); indicateList.Add(b); indicateList.Add(d); indicateList.Add(c); break; default: if (isVaridA & isVaridB) { indicateList.Add(a); indicateList.Add(b); } if (isVaridC & isVaridD) { indicateList.Add(c); indicateList.Add(d); } break; } } } return(indicateList); }