public static void DrawSkeletonFrame(TSkeletonFrame skeletonFrame) { using (DrawingContext dc = DrawingGroup.Open()) { // Draw a transparent background to set the render size dc.DrawRectangle(Brushes.Black, null, new Rect(0.0, 0.0, RenderWidth, RenderHeight)); if (skeletonFrame.Skeletons.Length != 0) { foreach (var skel in skeletonFrame.Skeletons) { RenderClippedEdges(skel, dc); if (skel.TrackingState == TSkeletonTrackingState.Tracked) { DrawBonesAndJoints(skel, dc); } else if (skel.TrackingState == TSkeletonTrackingState.PositionOnly) { dc.DrawEllipse( centerPointBrush, null, SkeletonPointToScreen(skel.Position), BodyCenterThickness, BodyCenterThickness); } } } // prevent drawing outside of our render area DrawingGroup.ClipGeometry = new RectangleGeometry(new Rect(0.0, 0.0, RenderWidth, RenderHeight)); } }
public void TSkeletonFrameHandler(object senderm, TSkeletonFrame frame) { if (!SkeletonFrameActive) { return; } SkeletonFrameReady(this, frame); }
public void Play(Stream stream) { _lastFrameTime = 0; var reader = new BinaryReader(stream); _cancellationTokenSource = new CancellationTokenSource(); var cancelToken = _cancellationTokenSource.Token; Task.Factory.StartNew(() => { while (reader.BaseStream.Position != reader.BaseStream.Length) { var frameType = (TFrameType)reader.ReadInt32(); switch (frameType) { case TFrameType.TColorFrame: var colorFrame = new TColorFrame(); colorFrame.Read(reader); SpeedControll(colorFrame.Timestamp); ColorFrameReady(this, colorFrame); break; case TFrameType.TDepthFrame: var depthFrame = new TDepthFrame(); depthFrame.Read(reader); SpeedControll(depthFrame.Timestamp); DepthFrameReady(this, depthFrame); break; case TFrameType.TSkeletonFrame: var skeletonFrame = new TSkeletonFrame(); skeletonFrame.Read(reader); SpeedControll(skeletonFrame.Timestamp); SkeletonFrameReady(this, skeletonFrame); break; } } reader.Close(); reader.Dispose(); if (ReplayEnded != null) { ReplayEnded(this, "Ended"); } }, cancelToken); }
public virtual void OnSkeletonImageFrameReady(object sender, TSkeletonFrame skeletonImageFrame) { if (skeletonImageFrame != null) { var frame = new Frame(skeletonImageFrame); _frames.AddLast(frame); if (_frames.Count == _framesCount) { _frames.RemoveFirst(); } if (FrameReady != null) { FrameReady(this, new FrameReadyEventArgs(_frames)); } } }
public virtual void OnSkeletonImageFrameReady(object sender, TSkeletonFrame skeletonImageFrame) { if (skeletonImageFrame != null) { var frame = new Frame(skeletonImageFrame); _frames.AddLast(frame); if (_frames.Count == _framesCount) { _frames.RemoveFirst(); } if (FrameReady != null) { FrameReady(this, new FrameReadyEventArgs(_frames)); } } }
public void SensorSkeletonFrameHandler(object sender, SkeletonFrameReadyEventArgs e) { if (_isPlaying) { return; } if (!SkeletonFrameActive) { return; } var sensorFrame = e.OpenSkeletonFrame(); if (sensorFrame != null) { var frame = new TSkeletonFrame(sensorFrame); SkeletonFrameReady(this, frame); } }
public void Play(Stream stream) { _lastFrameTime = 0; var reader = new BinaryReader(stream); _cancellationTokenSource = new CancellationTokenSource(); var cancelToken = _cancellationTokenSource.Token; Task.Factory.StartNew(() => { while (reader.BaseStream.Position != reader.BaseStream.Length) { var frameType = (TFrameType)reader.ReadInt32(); switch (frameType) { case TFrameType.TColorFrame: var colorFrame = new TColorFrame(); colorFrame.Read(reader); SpeedControll(colorFrame.Timestamp); ColorFrameReady(this, colorFrame); break; case TFrameType.TDepthFrame: var depthFrame = new TDepthFrame(); depthFrame.Read(reader); SpeedControll(depthFrame.Timestamp); DepthFrameReady(this, depthFrame); break; case TFrameType.TSkeletonFrame: var skeletonFrame = new TSkeletonFrame(); skeletonFrame.Read(reader); SpeedControll(skeletonFrame.Timestamp); SkeletonFrameReady(this, skeletonFrame); break; } } reader.Close(); reader.Dispose(); if (ReplayEnded != null) ReplayEnded(this,"Ended"); }, cancelToken); }
public static void SensorSkeletonFrameReady(object sender, TSkeletonFrame skeletonFrame) { Context.Send((gui) => DrawSkeletonFrame(skeletonFrame), null); }
public static void DrawSkeletonFrame(TSkeletonFrame skeletonFrame) { using (DrawingContext dc = DrawingGroup.Open()) { // Draw a transparent background to set the render size dc.DrawRectangle(Brushes.Black, null, new Rect(0.0, 0.0, RenderWidth, RenderHeight)); if (skeletonFrame.Skeletons.Length != 0) { foreach (var skel in skeletonFrame.Skeletons) { RenderClippedEdges(skel, dc); if (skel.TrackingState == TSkeletonTrackingState.Tracked) { DrawBonesAndJoints(skel, dc); } else if (skel.TrackingState == TSkeletonTrackingState.PositionOnly) { dc.DrawEllipse( centerPointBrush, null, SkeletonPointToScreen(skel.Position), BodyCenterThickness, BodyCenterThickness); } } } // prevent drawing outside of our render area DrawingGroup.ClipGeometry = new RectangleGeometry(new Rect(0.0, 0.0, RenderWidth, RenderHeight)); } }
public void TSkeletonFrameHandler(object senderm, TSkeletonFrame frame) { if (!SkeletonFrameActive) return; SkeletonFrameReady(this, frame); }
public void SensorSkeletonFrameHandler(object sender, SkeletonFrameReadyEventArgs e) { if (_isPlaying) return; if (!SkeletonFrameActive) return; var sensorFrame = e.OpenSkeletonFrame(); if (sensorFrame != null) { var frame = new TSkeletonFrame(sensorFrame); SkeletonFrameReady(this, frame); } }
public static void SensorSkeletonFrameReady(object sender, TSkeletonFrame skeletonFrame) { Context.Send((gui) => DrawSkeletonFrame(skeletonFrame), null); }