Exemple #1
0
 /**
  * @brief button1 클릭 이벤트
  * @details 버튼 클릭시 워커를 생성해 오는 데이터 메세지 큐에 저장하고, 타이머를 생성해서 메세지 큐를 주기적으로 확인하며, 메세지가 있으면 애니메이션을 시작한다.
  * @author 불명(김효상 확인)
  * @date 불명(2017-1-23 확인)
  */
 public void button1_Click(object sender, EventArgs e)
 {
     if (!innerStartAnim && ObjectList.imgList.Count > 0)
     {
         List <int>[] models = new List <int> [1];
         models[0] = new List <int>();
         for (int i = 0; i < loadedObjectList.Count(); i++)
         {
             models[0].Add(i + 1);
         }
         animHandler = new AnimatorHandler(g, pictureBox1);
         rsv         = new MessageReceiver();
         worker      = new BackgroundWorker();
         rsv.RunWorkerAsync();
         worker.DoWork += Worker_DoWork;
         worker.WorkerSupportsCancellation = true;
         worker.WorkerReportsProgress      = true;
         worker.ProgressChanged           += Worker_ProgressChanged;
         worker.RunWorkerAsync();
         innerStartAnim = true;
         //********************************************************************
     }
     else if (ObjectList.imgList.Count == 0)
     {
         MessageBox.Show("Load model and picture in 'Load Model' tab, before entering Animator.", "DEVS-Animation");
     }
 }
Exemple #2
0
 /**
  * @brief Reset 클릭 이벤트
  * @details 진행 상황을 모두 종료하고 초기화한다.
  * @author 김민규
  * @date 2017-7-13
  */
 public void Reset_Click(object sender, EventArgs e)
 {
     innerStartAnim = false;
     if (worker != null)
     {
         worker.CancelAsync();
     }
     if (rsv != null)
     {
         rsv.StopWorkerAsync();
     }
     animHandler         = null;
     innerAnimatorBitmap = null;
     g.Clear(Color.FromArgb(255, 0, 0, 0));
     loadedObjectList.Clear();
     pictureBox1.Invalidate();
     this.Invoke((MethodInvoker) delegate()
     {
         obj.Clear();
     });
 }