public void Log(JointPositions positions, uint userId, IList <IGesture> gestures) { positions.InitIfNotSetExt(Fnc.Values <Joints>()); var timestamp = DateTime.Now.ToString("O"); var player = userId.ToString(CultureInfo.InvariantCulture); var positionsDump = string.Join(",", Fnc.Values <Joints>().Select(joint => positions[joint].x + "," + positions[joint].y + "," + positions[joint].z).ToArray()); var baseDataLine = timestamp + "," + player + "," + positionsDump + ","; if (gestures == null || gestures.Count < 1) { gestures = new IGesture[] { null } } ; foreach (var dataLine in gestures.Select(gestureDetected => baseDataLine + (gestureDetected != null ? gestureDetected.Gesture.ToString() : "None"))) { _dataStream.WriteLine(dataLine); } }
public void Position(KinectManager manager, JointPositions positions, GameObject overlayObject, float smoothFactor) { if (!overlayObject || !_mappings.ContainsKey(overlayObject)) { return; } var joint = _mappings[overlayObject]; var jointPosition = positions[joint]; var depthPosition = manager.GetDepthMapPosForJointPos(jointPosition); var colorPosition = manager.GetColorMapPosForDepthPos(depthPosition); var scaleX = colorPosition.x / KinectWrapper.Constants.ColorImageWidth; var scaleY = 1.0f - colorPosition.y / KinectWrapper.Constants.ColorImageHeight; var distanceToCamera = _overlays[overlayObject]; var overlayPosition = Camera.main.ViewportToWorldPoint(new Vector3(scaleX, scaleY, distanceToCamera)); overlayObject.transform.position = Vector3.Lerp(overlayObject.transform.position, overlayPosition, smoothFactor * Time.deltaTime); }
public void Log(JointPositions positions, uint userId, IGesture gesture) { Log(positions, userId, new[] { gesture }); }
public void Log(JointPositions positions, uint userId) { Log(positions, userId, new IGesture[] { null }); }
public void Log(JointPositions positions) { Log(positions, 0); }