private void UpdateBodyFeatures(Astra.BodyStream bodyStream, Astra.Body[] bodies) { if (ToggleSeg != null && ToggleSegBody != null && ToggleSegBodyHand != null) { Astra.BodyTrackingFeatures targetFeatures = Astra.BodyTrackingFeatures.Segmentation; if (ToggleSegBodyHand.isOn) { targetFeatures = Astra.BodyTrackingFeatures.HandPose; } else if (ToggleSegBody.isOn) { targetFeatures = Astra.BodyTrackingFeatures.Skeleton; } if (targetFeatures != _previousTargetFeatures) { _previousTargetFeatures = targetFeatures; foreach (var body in bodies) { bodyStream.SetBodyFeatures(body.Id, targetFeatures); } bodyStream.SetDefaultBodyFeatures(targetFeatures); } } }
public void OnNewFrame(Astra.BodyStream bodyStream, Astra.BodyFrame frame) { if (frame.Width == 0 || frame.Height == 0) { return; } if (_lastFrameIndex == frame.FrameIndex) { return; } _lastFrameIndex = frame.FrameIndex; frame.CopyBodyData(ref _bodies); UpdateSkeletonsFromBodies(_bodies); UpdateBodyFeatures(bodyStream, _bodies); }
public void OnNewFrame(Astra.BodyStream bodyStream, Astra.BodyFrame frame) { if (frame.Width == 0 || frame.Height == 0) { return; } if (_lastFrameIndex == frame.FrameIndex) { return; } _lastFrameIndex = frame.FrameIndex; frame.CopyBodyData(ref _bodies); if (_bodies.Length > 0) { UpdateBone(_bodies[0]); } }
public void OnNewFrame(Astra.BodyStream bodyStream, Astra.BodyFrame frame) { if (frame.Width == 0 || frame.Height == 0) { return; } if (_lastFrameIndex == frame.FrameIndex) { return; } _lastFrameIndex = frame.FrameIndex; frame.CopyBodyData(ref _bodies); var body = GetFirstBody(_bodies); if (body != null) { UpdateBone(body); } }