Ejemplo n.º 1
0
 public PictureTrackerManager(SpiralSummarization spiralSummarization, VideoSummarizationControl _videoSummarizationControl)
 {
     _spiralSummarization            = spiralSummarization;
     _inkCanvas                      = spiralSummarization.InkCanvas;
     this._videoSummarizationControl = _videoSummarizationControl;
     this.isFocus                    = spiralSummarization.IsFocus;
 }
 public override void _presenter_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
 {
     if (this.VideoSummarizationControl == null)
     {
         this.VideoSummarizationControl = _inkCollector._mainPage.VideoSummarizationControl;
     }
     if (_startPoint.X != 0 && _startPoint.Y != 0 && startIndex != int.MinValue)
     {
         _currPoint = e.GetPosition(_inkCanvas);
         double left = videoSummarization.InkCanvas.Margin.Left + _currPoint.X - _prePoint.X;
         if (left <= 0)
         {
             videoSummarization.InkCanvas.Margin = new Thickness(left,
                                                                 videoSummarization.InkCanvas.Margin.Top, 0, 0);
         }
         _prePoint = _currPoint;
         //记录操作类型与持续时间
         recordOperateTrace("TapestryMOVE");
     }
 }
Ejemplo n.º 3
0
 public void setSummarization(VideoSummarizationControl videoSummarizationControl)
 {
     this.videoSummarizationControl = videoSummarizationControl;
 }
Ejemplo n.º 4
0
 public void setVideoSummarizationControl(VideoSummarizationControl v)
 {
     videoSummarizationControl = v;
 }
Ejemplo n.º 5
0
        public override void _presenter_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
        {
            //if (videoSummarization == null || videoSummarization != _inkCollector.VideoSummarization)
            //{
            //    this.videoSummarization = _inkCollector.VideoSummarization;
            //}
            //startIndex = VideoSummarization.getSelectedKeyFrameIndex(_startPoint);//, customSummarization);

            if (this.VideoSummarizationControl == null)
            {
                VideoPlayTimer                 = new System.Windows.Forms.Timer();
                VideoPlayTimer.Interval        = 1000;
                VideoPlayTimer.Tick           += new System.EventHandler(VideoPlayTimer_Tick);
                this.VideoSummarizationControl = _inkCollector._mainPage.VideoSummarizationControl;
                VideoPlayTimer.Start();
            }
            if (_startPoint.X == 0 && _startPoint.Y == 0)
            {
                _currPoint    = e.GetPosition(_inkCanvas);
                _currPoint.X -= inkCanvasSpiralSummarizationMargin.Left;
                _currPoint.Y -= inkCanvasSpiralSummarizationMargin.Top;
                currIndex     = videoSummarization.getSelectedKeyFrameIndex(_currPoint);
                //记录操作类型与持续时间
                recordOperateTrace("MOVE");
                if (currIndex != int.MinValue && currIndex < videoSummarization.ShowKeyFrames.Count &&
                    currIndex != preIndex && _inkCollector.IsShowUnbrokenKeyFrame)
                {
                    moveTimerSecond = 0;
                    MoveTimer.Start();

                    clearPreMessage();
                    Image currImage = InkConstants.getImageFromName(videoSummarization.ShowKeyFrames[currIndex].ImageName);// videoSummarization.ShowKeyFrames[currIndex].convertToNewKeyFrame().Image;
                    left = videoSummarization.ShowKeyFrames[currIndex].Image.Margin.Left;
                    top  = videoSummarization.ShowKeyFrames[currIndex].Image.Margin.Top;
                    //left += inkCanvasSpiralSummarizationMargin.Left;
                    //top += inkCanvasSpiralSummarizationMargin.Top;
                    if (_inkCollector.DefaultSummarizationNum == 1)
                    {
                        top += videoSummarization.InkCanvas.Margin.Top;
                        top -= 10;
                    }
                    currImage.Margin = new Thickness(left, top, 0, 0);
                    currImage.Width  = 150; // videoSummarization.ShowKeyFrames[currIndex].Image.Width;
                    currImage.Height = 100; // videoSummarization.ShowKeyFrames[currIndex].Image.Height;
                    if (_inkCollector.DefaultSummarizationNum == 1 && !((TileSummarization)videoSummarization).Protect)
                    {
                        ;
                    }
                    else
                    {
                        _inkCanvas.Children.Add(currImage);
                    }
                    preImage = currImage;
                    preIndex = currIndex;
                }
                else if (currIndex == int.MinValue)
                {
                    if (preImage != null)
                    {
                        _inkCanvas.Children.Remove(preImage);
                    }
                    moveTimerSecond = 0;
                }
                //显示移动轨迹
                if (moveStroke != null)
                {
                    moveStroke.StylusPoints.Add(new StylusPoint(_currPoint.X, _currPoint.Y));
                    if (moveStroke.StylusPoints.Count > 300)
                    {
                        moveStroke.StylusPoints.RemoveAt(0);
                    }
                }
                else
                {
                    StylusPointCollection spc = new StylusPointCollection();
                    spc.Add(new StylusPoint(_currPoint.X, _currPoint.Y));
                    moveStroke = new Stroke(spc);
                    moveStroke.DrawingAttributes.Color  = Colors.Transparent;
                    moveStroke.DrawingAttributes.Width  = 3;
                    moveStroke.DrawingAttributes.Height = 3;
                    _inkCanvas.Strokes.Add(moveStroke);
                }
            }
            else
            {
                _currPoint = e.GetPosition(_inkCanvas);

                if (_inkCollector.DefaultSummarizationNum == 0)
                {
                    mouseGesture.Capturing((int)_currPoint.X, (int)_currPoint.Y);
                }
                else if (_inkCollector.DefaultSummarizationNum == 1)
                {
                    clearPreMessage();
                    moveTimerSecond = 0;
                    double top = videoSummarization.InkCanvas.Margin.Top + _currPoint.Y - _prePoint.Y;
                    //if (left <= 0 && left >VideoSummarizationControl.summarization._inkCanvas.ActualWidth -tapestrySummarization.Width  )
                    //{
                    videoSummarization.InkCanvas.Margin = new Thickness(videoSummarization.InkCanvas.Margin.Left,
                                                                        top, 0, 0);
                }
                _prePoint = _currPoint;
                //记录操作类型与持续时间
                recordOperateTrace("MOVE");
            }
        }
 public override void _presenter_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
 {
     if (this.VideoSummarizationControl == null)
     {
         this.VideoSummarizationControl = _inkCollector._mainPage.VideoSummarizationControl;
     }
     if (_startPoint.X == 0 && _startPoint.Y == 0)
     {
         _currPoint    = e.GetPosition(_inkCanvas);
         _currPoint.X -= inkCanvasSpiralSummarizationMargin.Left;
         _currPoint.Y -= inkCanvasSpiralSummarizationMargin.Top;
         currIndex     = videoSummarization.getSelectedKeyFrameIndex(_currPoint);
         //记录操作类型与持续时间
         recordOperateTrace("MOVE");
         if (currIndex != int.MinValue && currIndex != preIndex && _inkCollector.IsShowUnbrokenKeyFrame)
         {
             moveTimerSecond = 0;
             MoveTimer.Start();
             clearPreMessage();
             currIndex = currIndex >= videoSummarization.ShowKeyFrames.Count ? videoSummarization.ShowKeyFrames.Count - 1 : currIndex;
             currIndex = (currIndex == -1 ? 0 : currIndex);
             Image currImage = InkConstants.getImageFromName(videoSummarization.ShowKeyFrames[currIndex].ImageName);
             currImage.Width  = 300;
             currImage.Height = 200;
             currImage.Margin = new Thickness((VideoSummarizationControl.summarization._inkCanvas.ActualWidth - currImage.Width) / 2,
                                              200, 0, 0);
             tapestrySummarization.ParentInkcanvas.Children.Add(currImage);
             preImage = currImage;
             preIndex = currIndex;
         }
         else if (currIndex == int.MinValue)
         {
             if (preImage != null)
             {
                 _inkCanvas.Children.Remove(preImage);
             }
             moveTimerSecond = 0;
         }
         //显示移动轨迹
         if (moveStroke != null)
         {
             moveStroke.StylusPoints.Add(new StylusPoint(_currPoint.X, _currPoint.Y));
             if (moveStroke.StylusPoints.Count > 300)
             {
                 moveStroke.StylusPoints.RemoveAt(0);
             }
         }
         else
         {
             StylusPointCollection spc = new StylusPointCollection();
             spc.Add(new StylusPoint(_currPoint.X, _currPoint.Y));
             moveStroke = new Stroke(spc);
             moveStroke.DrawingAttributes.Color  = Colors.Transparent;
             moveStroke.DrawingAttributes.Width  = 3;
             moveStroke.DrawingAttributes.Height = 3;
             _inkCanvas.Strokes.Add(moveStroke);
         }
     }
     else
     {
         _currPoint = e.GetPosition(_inkCanvas);
         if (startIndex != int.MinValue && _currPoint.X > 0)
         {
             left = videoSummarization.InkCanvas.Margin.Left + _currPoint.X - _prePoint.X;
             //if (left <= 0 && left >VideoSummarizationControl.summarization._inkCanvas.ActualWidth -tapestrySummarization.Width  )
             //{
             videoSummarization.InkCanvas.Margin = new Thickness(left,
                                                                 videoSummarization.InkCanvas.Margin.Top, 0, 0);
             //}
             if (left > 0)
             {
                 left = 0;
                 timebar.Show_EndTime = VideoSummarizationControl.summarization._inkCanvas.ActualWidth - videoSummarization.InkCanvas.Margin.Left;
             }
             else if (left < -tapestrySummarization.Width + VideoSummarizationControl.summarization._inkCanvas.ActualWidth)
             {
                 left = videoSummarization.InkCanvas.Margin.Left;
                 timebar.Show_EndTime = -left + tapestrySummarization.Width + videoSummarization.InkCanvas.Margin.Left;
             }
             else
             {
                 timebar.Show_EndTime = -left + VideoSummarizationControl.summarization._inkCanvas.ActualWidth;
             }
             timebar.Show_StartTime = -left;
             // timebar.Show_EndTime = -left + VideoSummarizationControl.summarization._inkCanvas.ActualWidth;
             timebar.computeLocation();
             _prePoint = _currPoint;
         }
         if (startIndex == int.MinValue && mouseGesture != null)
         {
             mouseGesture.Capturing((int)_currPoint.X, (int)_currPoint.Y);
         }
         //记录操作类型与持续时间
         recordOperateTrace("MOVE");
     }
 }