public void Zig_UpdateUser(ZigTrackedUser user) { ZgTrackedUser zguser = new ZgTrackedUser(user.Id); zguser.Position = user.Position; zguser.PositionTracked = user.PositionTracked; zguser.SkeletonTracked = user.SkeletonTracked; zguser.Skeleton = user.Skeleton.Select(e => ToZgInputJoint(e)).ToArray(); ManagerManager.Manager.mZigManager.Zig_UpdateUser(zguser); }
//calls this function whenever user info has been updated public void Zig_UpdateUser(ZgTrackedUser user) { LastTrackedUser = user; if (user.SkeletonTracked) { foreach (ZgInputJoint joint in user.Skeleton) { //if(joint.GoodPosition && joint.GoodRotation) { Joints[joint.Id] = joint; } } } //mManager.mDebugString = Joints[ZigJointId.LeftHand].Position.ToString(); }
public void Update() { //BODY //bool bodyReadSuccess = SensorManager.bodyFrameReader.AcquireLatestFrame(JointCoordType.DepthSpace); SensorManager.bodyFrameReader.AcquireLatestFrame(JointCoordType.DepthSpace); List <ulong> trackedIds = new List <ulong>(); foreach (var e in SensorManager.BodyList.list) { if (e.isTracked) { trackedIds.Add(e.trackingId); } } if (trackedIds.Count > 0) { if (!trackedIds.Contains(mTrackingId)) { mTrackingId = trackedIds [0]; ManagerManager.Log("tracking " + mTrackingId); } IsTracking = true; } else { IsTracking = false; } //if(IsTracking) //ManagerManager.Manager.mDebugString2 = "tracking " + ((int)mTrackingId).ToString(); //else ManagerManager.Manager.mDebugString2 = "NOT tracking " + ((int)mTrackingId).ToString(); foreach (var e in SensorManager.BodyList.list) { if (IsTracking && e.trackingId == mTrackingId) { //ManagerManager.Manager.mDebugString2 = "real tracking " + ((int)mTrackingId).ToString(); ZgTrackedUser tu = new ZgTrackedUser((int)mTrackingId); tu.SkeletonTracked = true; tu.PositionTracked = true; var jointsSeg = e.joints; for (int i = jointsSeg.Offset; i < (jointsSeg.Offset + jointsSeg.Count); i++) { var jp = jointsSeg.Array[i]; for (int j = 0; j < tu.Skeleton.Count(); j++) { if (sJointTypeMap.ContainsKey(jp.jointType) && sJointTypeMap[jp.jointType] == tu.Skeleton[j].Id) { tu.Skeleton[j].Position = GetVector3FromJoint(jp); tu.Skeleton[j].GoodPosition = true; //TODO rotation } } } /* this way does not seem to work for osme reason.. * for(int i = 0; i < tu.Skeleton.Count(); i++) * { * if(sJointTypeMap.Keys.Contains(tu.Skeleton[i].Id)) * { * try{ * tu.Skeleton[i].Position = GetVector3FromJoint(e.joints.Array.First(f=>f.jointType == sJointTypeMap[tu.Skeleton[i].Id])); * tu.Skeleton[i].GoodPosition = true; * }catch{Debug.Log ("couldn't find joint " + tu.Skeleton[i].Id);} * * } * }*/ ManagerManager.Manager.mZigManager.Zig_UpdateUser(tu); break; } } //TODO temporarily disabled to solf wrong format bug //DEPTH/IMAGE/USE FrameDescription depthFrameDesc; bool depthFrameDescSuccess = SensorManager.depthFrameReader.GetFrameDescription(out depthFrameDesc); if (depthFrameDescSuccess) { //mDepthTexture = new Texture2D(depthFrameDesc.Width, depthFrameDesc.Height, TextureFormat.R16, false); //byte[] depthRawData = new byte[depthFrameDesc.BytesPerPixel * depthFrameDesc.LengthInPixels]; //depthFrameDescSuccess = SensorManager.depthFrameReader.AcquireLatestFrame(mDepthTexture.GetNativeTexturePtr()); } FrameDescription colorFrameDesc; bool colorFrameDescSuccess = SensorManager.colorFrameReader.GetFrameDescription(out colorFrameDesc); if (colorFrameDescSuccess) { //byte[] colorRawData = new byte[colorFrameDesc.BytesPerPixel * colorFrameDesc.LengthInPixels]; //colorFrameDescSuccess = SensorManager.colorFrameReader.AcquireLatestFrame(mColorTexture.GetNativeTexturePtr()); } FrameDescription labelFrameDesc; bool labelFrameDescSuccess = SensorManager.bodyIndexFrameReader.GetFrameDescription(out labelFrameDesc); if (labelFrameDescSuccess) { //byte[] labelRawData = new byte[labelFrameDesc.BytesPerPixel * labelFrameDesc.LengthInPixels]; //labelFrameDescSuccess = SensorManager.bodyIndexFrameReader.AcquireLatestFrame(mLabelTexture.GetNativeTexturePtr()); } //ManagerManager.Manager.mZigManager.DepthView.up }