X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FcreaImageIOWxGimmick.cpp;h=63470ba141b56f8d126d92715499c4a1fc90b79d;hb=2a666dd833520248172d1158171cbb995b7e8ec2;hp=3ad5e81280ede7cdd930ffcaab3ae209e648a723;hpb=26963d13f31f98807176a062b1d2c209df9c7869;p=creaImageIO.git diff --git a/src/creaImageIOWxGimmick.cpp b/src/creaImageIOWxGimmick.cpp index 3ad5e81..63470ba 100644 --- a/src/creaImageIOWxGimmick.cpp +++ b/src/creaImageIOWxGimmick.cpp @@ -63,6 +63,8 @@ namespace creaImageIO PopUp_Settings = 501, PopUp_About = 502, PopUp_User = WxGimmick::UserMenuFirstId, + PopUp_SaveAs = 701, + PopUp_AddToFavorites = 702 }; //================================================================ @@ -716,8 +718,7 @@ namespace creaImageIO mTreeListCtrl->SetItemText(item,std2wx(lab)); } else - { - + { int c = 0; Settings::ColumnListType::iterator col; // If Study and Series level are merged and node type is Series @@ -786,7 +787,7 @@ namespace creaImageIO //================================================================ void WxGimmick::UpdateColumnsTitles(wxTreeItemId& item, - DicomNode::Type t) + DicomNode::Type t) { // std::cout << "Update columns titles "< Loading collections from '"<ProcessEvent(ev); // - + if (menu.GetMenuItemCount()>0) menu.AppendSeparator(); menu.Append(PopUp_Settings, wxT("&Settings...")); menu.Append(PopUp_About, wxT("&About...")); - - /* wxMenu* newmenu = new wxMenu; wxMenu* openmenu = new wxMenu; @@ -1432,9 +1436,6 @@ namespace creaImageIO } } */ - - - PopupMenu(&menu, pt); #endif // wxUSE_MENUS @@ -1471,7 +1472,6 @@ namespace creaImageIO } //===================================================================== - //===================================================================== void WxGimmick::OnPopUpOpenCollection(wxCommandEvent& event) @@ -1501,22 +1501,21 @@ namespace creaImageIO void WxGimmick::OnPopUpDeleteCollection(wxCommandEvent& event) { if (wxMessageBox(_T("This will physically delete the collection's file on disk and cannot be reverted. Proceed ?"),_T("Confirm"),wxYES_NO,this)==wxNO) return; - + wxBusyCursor busy; - // std::cout << "OnPopUpClose"<GetItemData(mItemOfMenu); DicomDatabase* r = data->GetDicomNode()->GetDicomDatabase(); - + wxRemoveFile(std2wx(r->GetFileName())); // std::cout << "OnPopUpClose '"<GetName()<<"'"<ShowModal()==wxID_OK) { wxBusyCursor busy; @@ -1992,7 +1991,7 @@ namespace creaImageIO } sib = GetTreeListCtrl()->GetNextSibling(sib); } - prio = maxprio + 1000; + prio = maxprio + 999; sib = GetTreeListCtrl()->GetPrevSibling(item); while (sib.IsOk()) { @@ -2035,13 +2034,17 @@ namespace creaImageIO void WxGimmick::ShowImage(vtkImageData* im) { // wxBusyCursor busy; + mViewer->SetInput( im ); + mViewer->SetSlice( 0 ); + int x1,x2,y1,y2,z1,z2; double spx,spy,spz; + im->Update(); im->GetSpacing(spx,spy,spz); im->GetExtent (x1,x2,y1,y2,z1,z2); - /* + std::cout << "-----------------------------"<GetScalarRange(); + mViewer->SetColorWindow(range[1] - range[0]); + mViewer->SetColorLevel(0.5 * (range[1] + range[0])); + + mViewer->GetRenderer()->ResetCamera(); + double bounds[6]; + + + mViewer->GetRenderer()->ComputeVisiblePropBounds(bounds); + + /* + std::cout <<"bounds : "<GetRenderer()->ResetCameraClippingRange(bounds); + /* vtkCamera *camera = mViewer->GetRenderer()->GetActiveCamera(); camera->SetViewUp ( spx*0, -spy*1, spz*0); - camera->SetPosition( spx*(x1+x2)/2, spy*(y1+y2)/2, -spz*10000000); + camera->SetPosition( spx*(x1+x2)/2, spy*(y1+y2)/2, spz*10000000); camera->SetFocalPoint ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , spz*0); camera->ComputeViewPlaneNormal(); camera->SetParallelScale( spx*(x2-x1)/2.0 ); + camera->Roll ( 180 ); + */ } - mViewer->SetInput( im ); - mViewer->SetSlice( 0 ); mInteractor->Render(); } //================================================================ @@ -2270,6 +2293,10 @@ namespace creaImageIO ext[5] = im.size(); out->SetExtent(ext); // LG : TODO : Z Spacing ? + // + // ==> to get an accurate ZSpacing from a Dicom set of files + // ==> you need a gdcm::SerieHelper + // JPR out->AllocateScalars();