Exemple #1
0
void DataListCtrl::DeleteAll()
{
   VRenderFrame* vr_frame = (VRenderFrame*)m_frame;
   wxString name = "";

   long item = GetNextItem(-1);
   while (item != -1 && vr_frame)
   {
      if (GetItemText(item) == "Volume")
	  {
		  name = GetText(item, 1);
		  DataManager* mgr = vr_frame->GetDataManager();
		  BaseReader *reader = NULL;
		  int chan = -1;
		  if (mgr)
		  {
			  VolumeData *vd = mgr->GetVolumeData(name);
			  reader = vd->GetReader();
			  chan = vd->GetCurChannel();
		  }

		  int i;
		  //from view
		  for (i=0; i<(int)vr_frame->GetViewList()->size(); i++)
		  {
			  VRenderView* view = (*vr_frame->GetViewList())[i];
			  if (view)
				  view->RemoveVolumeDataset(reader, chan);
		  }
		  //from datamanager
		  if (mgr)
			  mgr->RemoveVolumeDataset(reader, chan);
	  }
      else if (GetItemText(item) == "Mesh")
      {
         name = GetText(item, 1);
         int i;
         //from view
         for (i=0; i<(int)vr_frame->GetViewList()->size(); i++)
         {
            VRenderView* view = (*vr_frame->GetViewList())[i];
            if (view)
               view->RemoveMeshData(name);
         }
         //from datamanager
         DataManager* mgr = vr_frame->GetDataManager();
         if (mgr)
         {
            int index = mgr->GetMeshIndex(name);
            if (index != -1)
               mgr->RemoveMeshData(index);
         }
      }
      else if (GetItemText(item) == "Annotations")
      {
         name = GetText(item, 1);
         int i;
         //from view
         for (i=0; i<(int)vr_frame->GetViewList()->size(); i++)
         {
            VRenderView* view = (*vr_frame->GetViewList())[i];
            if (view)
               view->RemoveAnnotations(name);
         }
         //from datamanager
         DataManager* mgr = vr_frame->GetDataManager();
         if (mgr)
         {
            int index = mgr->GetAnnotationIndex(name);
            if (index != -1)
               mgr->RemoveAnnotations(index);
         }
      }

      item = GetNextItem(item);
   }

   DeleteAllItems();
   if (vr_frame)
   {
      vr_frame->UpdateTree();
      vr_frame->RefreshVRenderViews();
   }
}
Exemple #2
0
void DataListCtrl::DeleteSelection()
{
   VRenderFrame* vr_frame = (VRenderFrame*)m_frame;
   wxString name = "";

   if (vr_frame && GetSelectedItemCount()>0)
   {
      long item = GetNextItem(-1,
            wxLIST_NEXT_ALL,
            wxLIST_STATE_SELECTED);
      if (item != -1)
      {
         if (GetItemText(item) == "Volume")
         {
            name = GetText(item, 1);
			DataManager* mgr = vr_frame->GetDataManager();
			BaseReader *reader = NULL;
			int chan = -1;
			if (mgr)
			{
				VolumeData *vd = mgr->GetVolumeData(name);
				reader = vd->GetReader();
				chan = vd->GetCurChannel();
			}

            int i;
            //from view
            for (i=0; i<(int)vr_frame->GetViewList()->size(); i++)
            {
               VRenderView* view = (*vr_frame->GetViewList())[i];
               if (view)
                  view->RemoveVolumeDataset(reader, chan);
            }
            //from datamanager
            if (mgr)
               mgr->RemoveVolumeDataset(reader, chan);

         }
         else if (GetItemText(item) == "Mesh")
         {
            name = GetText(item, 1);
            int i;
            //from view
            for (i=0; i<(int)vr_frame->GetViewList()->size(); i++)
            {
               VRenderView* view = (*vr_frame->GetViewList())[i];
               if (view)
               {
                  view->RemoveMeshData(name);
               }
            }
            //from datamanager
            DataManager* mgr = vr_frame->GetDataManager();
            if (mgr)
            {
               int index = mgr->GetMeshIndex(name);
               if (index != -1)
               {
                  mgr->RemoveMeshData(index);
               }
            }
         }
         else if (GetItemText(item) == "Annotations")
         {
            name = GetText(item, 1);
            int i;
            //from view
            for (i=0; i<(int)vr_frame->GetViewList()->size(); i++)
            {
               VRenderView* view = (*vr_frame->GetViewList())[i];
               if (view)
                  view->RemoveAnnotations(name);
            }
            //from datamanager
            DataManager* mgr = vr_frame->GetDataManager();
            if (mgr)
            {
               int index = mgr->GetAnnotationIndex(name);
               if (index != -1)
                  mgr->RemoveAnnotations(index);
            }
         }
      }
      vr_frame->UpdateList();
      vr_frame->UpdateTree(name);
      vr_frame->RefreshVRenderViews();
   }
}