From d7d3ec17199e6b725bd375fdfe1085eeb35b34cc Mon Sep 17 00:00:00 2001 From: perez Date: Tue, 1 Dec 2009 21:22:09 +0000 Subject: [PATCH] *** empty log message *** --- lib/maracasVisuLib/CMakeLists.txt | 3 + .../src/CutModule/kernel/CutModelFigure.h | 4 +- .../src/CutModule/kernel/kernel.lnk | Bin 0 -> 778 bytes .../widgets/wxMaracasDialog_NViewers.cpp | 48 ++++++-- .../widgets/wxMaracasDialog_NViewers.h | 7 +- .../wxMaracasRenderImageManagementPanel.cpp | 5 +- .../wxMaracasRenderImageTransformation.cpp | 70 ++++++----- .../widgets/wxMaracasRenderTabbedPanel.cpp | 57 ++++++--- .../widgets/wxMaracasRenderTabbedPanel.h | 5 +- .../widgets/wxMaracas_ViewerWidget.cxx | 14 +-- .../wxWindows/widgets/wxVtk3DBaseView.cxx | 13 +- .../widgets/wxVtkMPR3DViewCntrlPanel.cxx | 111 ++++++++++++++---- .../widgets/wxVtkMPR3DViewCntrlPanel.h | 7 ++ 13 files changed, 234 insertions(+), 110 deletions(-) create mode 100644 lib/maracasVisuLib/src/CutModule/kernel/kernel.lnk diff --git a/lib/maracasVisuLib/CMakeLists.txt b/lib/maracasVisuLib/CMakeLists.txt index 9b9cd04..25374ae 100644 --- a/lib/maracasVisuLib/CMakeLists.txt +++ b/lib/maracasVisuLib/CMakeLists.txt @@ -36,6 +36,8 @@ IF ( BUILD_${LIBRARY_NAME} ) src/interface/wxWindows/widgets/pPlotter src/interface/wxWindows/widgets/manualContour src/interface/wxWindows/widgets/ThresholdImageView + src/CutModule/interface + src/CutModule/kernel ../../../ ) @@ -119,6 +121,7 @@ IF ( BUILD_${LIBRARY_NAME} ) ${CREA_LIBRARIES} #${BOOST_LIBRARIES} #jhcl-End=========================================================================== + creaMaracasVisu_CutModule_interface ) #---------------------------------------------------------------------------- diff --git a/lib/maracasVisuLib/src/CutModule/kernel/CutModelFigure.h b/lib/maracasVisuLib/src/CutModule/kernel/CutModelFigure.h index 476a090..f204ee6 100644 --- a/lib/maracasVisuLib/src/CutModule/kernel/CutModelFigure.h +++ b/lib/maracasVisuLib/src/CutModule/kernel/CutModelFigure.h @@ -1,5 +1,5 @@ -#ifndef FIGURECUTTINGMODEL_H_ -#define FIGURECUTTINGMODEL_H_ +#ifndef CUTTINGMODELFIGURE_H_ +#define CUTTINGMODELFIGURE_H_ #include "vtkTransform.h" #include "vtkPolyData.h" diff --git a/lib/maracasVisuLib/src/CutModule/kernel/kernel.lnk b/lib/maracasVisuLib/src/CutModule/kernel/kernel.lnk new file mode 100644 index 0000000000000000000000000000000000000000..e79cd999835a4a4ff69073ca8f15d58b16b6e579 GIT binary patch literal 778 zcmeZaU|?VrVFHp23Gpcq9MwF`d|zw z{g6?FK|bJt{{@9tR+$2eZg4PY8yL)$WYBlEia}Ef;@U76f<a~LCo z9zz1e=mil#8U#`^byHJxjg24)h=JkHrh?lq*ED)e^Gnz&+#!9d#L#|1;^ljSZTbu< NFYIRgBqR?q695WNt1* type, wxString title) : wxFrame(parent, -1, title) { - viewer = new wxMaracas_N_ViewersWidget(this, img, type); - wxFlexGridSizer* sizer = new wxFlexGridSizer(1); + panelcut = new wxPanel(this, -1); + viewer = new wxMaracas_N_ViewersWidget(panelcut, img, type); + sizer = new wxFlexGridSizer(2); - sizer->Add(viewer, 1, wxGROW); - this->SetSizer( sizer, true ); - this->SetAutoLayout( true ); - //viewer->SetSize(wxSizer(wxFIXED_MINSIZE)); + sizer->Add(viewer, wxALL|wxEXPAND, 1); + panelcut->SetSizer( sizer, true ); + panelcut->SetAutoLayout( true ); + //viewer->SetSize(wxSizer(wxALL|wxEXPAND)); } /** @@ -32,16 +33,20 @@ wxMaracasDialog_NViewers::~wxMaracasDialog_NViewers(){ /** ** Adds a new panel to the frame **/ -void wxMaracasDialog_NViewers::AddPanel(wxPanel panel) +void wxMaracasDialog_NViewers::AddPanel(wxWindow* panel) { - wxFlexGridSizer* sizer = new wxFlexGridSizer(1); + //wxFlexGridSizer* sizer = new wxFlexGridSizer(1); - //this->AddChild(panel); - //sizer->Add(panel, wxFIXED_MINSIZE); - this->SetSizer( sizer, true ); - this->SetAutoLayout( true ); + panel->SetSize(400, 200); + + sizer->Add(panel, wxALL|wxEXPAND); + panelcut->SetSizer( sizer, true ); + panelcut->SetAutoLayout( true ); } +/** +** +**/ void wxMaracasDialog_NViewers::OnRefreshView(wxCommandEvent & event) { point.clear(); @@ -52,7 +57,26 @@ void wxMaracasDialog_NViewers::OnRefreshView(wxCommandEvent & event) viewer->OnRefreshView(event); } +/** +** +**/ void wxMaracasDialog_NViewers::OnDClickLeft(wxCommandEvent & event) { viewer->OnDClickLeft(event); +} + +/** +** +**/ +wxMaracas_N_ViewersWidget* wxMaracasDialog_NViewers::getViewer() +{ + return viewer; +} + +/** +** +**/ +wxPanel* wxMaracasDialog_NViewers::getinternalPanel() +{ + return panelcut; } \ No newline at end of file diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasDialog_NViewers.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasDialog_NViewers.h index e6f1164..8673942 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasDialog_NViewers.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasDialog_NViewers.h @@ -13,11 +13,16 @@ class wxMaracasDialog_NViewers : public wxFrame{ ~wxMaracasDialog_NViewers(); void OnRefreshView(wxCommandEvent & event); void OnDClickLeft(wxCommandEvent & event); - void AddPanel(wxPanel panel); + void AddPanel(wxWindow* panel); + wxMaracas_N_ViewersWidget* getViewer(); + wxPanel* getinternalPanel(); private: wxMaracas_N_ViewersWidget* viewer; std::vector point; + + wxFlexGridSizer* sizer; + wxPanel* panelcut; DECLARE_EVENT_TABLE( ); diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageManagementPanel.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageManagementPanel.cpp index 51cb07e..4473513 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageManagementPanel.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageManagementPanel.cpp @@ -1,5 +1,6 @@ #include "wxMaracasRenderImageManagementPanel.h" + #include /** @@ -25,14 +26,14 @@ void wxMaracasRenderImageManagementPanel::createControls() sliderTranslateX->SetLineSize(1); Connect(sliderTranslateX->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform); sizersliders->Add(tx, wxFIXED_MINSIZE); - sizersliders->Add(sliderTranslateX,wxSizerFlags().Expand().Center()); + sizersliders->Add(sliderTranslateX, 1, wxALL|wxEXPAND, 2); wxStaticText* ty = new wxStaticText(this, -1, wxString(_T(" Translate Y "))); sliderTranslateY = new wxSlider(this, -1, 0, -200, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS); sliderTranslateY->SetLineSize(1); Connect(sliderTranslateY->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform); sizersliders->Add(ty, wxFIXED_MINSIZE); - sizersliders->Add(sliderTranslateY,wxSizerFlags().Expand().Center()); + sizersliders->Add(sliderTranslateY, 1, wxALL|wxEXPAND, 2); wxStaticText* tz = new wxStaticText(this, -1, wxString(_T(" Translate Z "))); sliderTranslateZ = new wxSlider(this, -1, 0, -200, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS); diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageTransformation.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageTransformation.cpp index e2dad90..11f1d39 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageTransformation.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageTransformation.cpp @@ -1,4 +1,5 @@ #include "wxMaracasRenderImageTransformation.h" +#include "wxMaracasRendererView.h" /** ** Class constructor @@ -16,7 +17,6 @@ wxMaracasRenderImageTransformation::wxMaracasRenderImageTransformation(wxMaracas transformS1 = vtkTransform::New(); transformS2 = vtkTransform::New(); transformS3 = vtkTransform::New(); - } /** @@ -40,46 +40,62 @@ void wxMaracasRenderImageTransformation::Translate(int tx, int ty, int tz, int r double volspY; double volspZ; vol->getImageData()->GetSpacing(volspX, volspY, volspZ); - + double surfspX; double surfspY; double surfspZ; surface1->getImageData()->GetSpacing(surfspX, surfspY, surfspZ); - transformV->Identity(); - transformS1->Identity(); - transformS2->Identity(); - transformS3->Identity(); + int ext[6]; + vol->getImageData()->GetExtent(ext); - transformV->Translate( tx*volspX, ty*volspY, tz*volspZ ); - transformS1->Translate( tx*surfspX, ty*surfspY, tz*surfspZ ); - transformS2->Translate( tx*surfspX, ty*surfspY, tz*surfspZ ); - transformS3->Translate( tx*surfspX, ty*surfspY, tz*surfspZ ); + transformV ->Identity(); + transformS1 ->Identity(); + transformS2 ->Identity(); + transformS3 ->Identity(); - transformV->RotateX( rx*volspX ); - transformS1->RotateX( rx*surfspX ); - transformS2->RotateX( rx*surfspX ); - transformS3->RotateX( rx*surfspX ); - - transformV->RotateY( ry*volspY ); - transformS1->RotateY( ry*surfspY ); - transformS2->RotateY( ry*surfspY ); - transformS3->RotateY( ry*surfspY ); + transformV ->PostMultiply(); + transformS1 ->PostMultiply(); + transformS2 ->PostMultiply(); + transformS3 ->PostMultiply(); + + printf("CPR: wxMaracasRenderImageTransformation::Translate-> %d\n", -(ext[1]-ext[0])*volspX ); + printf("CPR: wxMaracasRenderImageTransformation::Translate-> %d\n", -(ext[3]-ext[2])*surfspY); + printf("CPR: wxMaracasRenderImageTransformation::Translate-> %d\n", -(ext[5]-ext[4])*surfspZ); - transformV->RotateZ( rz*volspZ ); - transformS1->RotateZ( rz*surfspZ ); - transformS2->RotateZ( rz*surfspZ ); - transformS3->RotateZ( rz*surfspZ ); + transformV ->Translate( -(ext[1]-ext[0])*volspX/2, -(ext[3]-ext[2])*volspY/2, -(ext[5]-ext[4])*volspZ/2 ); + transformS1->Translate( -(ext[1]-ext[0])*surfspX/2, -(ext[3]-ext[2])*surfspY/2, -(ext[5]-ext[4])*surfspZ/2 ); + transformS2->Translate( -(ext[1]-ext[0])*surfspX/2, -(ext[3]-ext[2])*surfspY/2, -(ext[5]-ext[4])*surfspZ/2 ); + transformS3->Translate( -(ext[1]-ext[0])*surfspX/2, -(ext[3]-ext[2])*surfspY/2, -(ext[5]-ext[4])*surfspZ/2 ); - transformV->Scale( (sx/100.0), (sy/100.0), (sz/100.0) ); + transformV ->Scale( (sx/100.0), (sy/100.0), (sz/100.0) ); transformS1->Scale( (sx/100.0), (sy/100.0), (sz/100.0) ); transformS2->Scale( (sx/100.0), (sy/100.0), (sz/100.0) ); transformS3->Scale( (sx/100.0), (sy/100.0), (sz/100.0) ); + transformV ->RotateX( rx ); + transformS1->RotateX( rx ); + transformS2->RotateX( rx ); + transformS3->RotateX( rx ); + + transformV ->RotateY( ry ); + transformS1->RotateY( ry ); + transformS2->RotateY( ry ); + transformS3->RotateY( ry ); + + transformV ->RotateZ( rz ); + transformS1->RotateZ( rz ); + transformS2->RotateZ( rz ); + transformS3->RotateZ( rz ); + + transformV ->Translate( tx*volspX + (ext[1]-ext[0])*volspX/2, ty*volspY + (ext[3]-ext[2])*volspY/2, tz*volspZ + (ext[5]-ext[4])*volspZ/2 ); + transformS1->Translate( tx*surfspX + (ext[1]-ext[0])*volspX/2, ty*surfspY + (ext[3]-ext[2])*volspY/2, tz*surfspZ + (ext[5]-ext[4])*volspZ/2 ); + transformS2->Translate( tx*surfspX + (ext[1]-ext[0])*volspX/2, ty*surfspY + (ext[3]-ext[2])*volspY/2, tz*surfspZ + (ext[5]-ext[4])*volspZ/2 ); + transformS3->Translate( tx*surfspX + (ext[1]-ext[0])*volspX/2, ty*surfspY + (ext[3]-ext[2])*volspY/2, tz*surfspZ + (ext[5]-ext[4])*volspZ/2 ); + Refresh(); } - /** ** Updates each Matrix **/ @@ -91,10 +107,10 @@ void wxMaracasRenderImageTransformation::Refresh()throw(char*) transformS3->Update(); vol->getViewData(propID)->getProp3D()->SetUserMatrix(transformV->GetMatrix()); - //vol->getRenderer()->Render(); + //vol->Update(propID); surface1->getViewData(propID)->getProp3D()->SetUserMatrix(transformV->GetMatrix()); - //surface1->getRenderer()->Render(); + //surface1->Update(propID); surface2->getViewData(propID)->getProp3D()->SetUserMatrix(transformV->GetMatrix()); //surface2->getRenderer()->Render(); diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.cpp index 414d660..80eb7e5 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.cpp @@ -42,6 +42,9 @@ wxMaracasRenderTabbedPanel::~wxMaracasRenderTabbedPanel() //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSA(_propid, false); //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSB(_propid, false); //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSC(_propid, false); + if( vtkmpr3Ddataviewer ) { delete vtkmpr3Ddataviewer; } + if( mwxvtkmpr3Dview ) { delete mwxvtkmpr3Dview; } + this->deleteVolume(_id); delete dialog; delete wxtabs; @@ -57,17 +60,17 @@ void wxMaracasRenderTabbedPanel::createControls(vtkImageData* inImg, std::string wxFlexGridSizer* sizercheck = new wxFlexGridSizer(3); checkboxVol = new wxCheckBox(this,-1,wxString(_T("Volume Rendering"))); Connect(checkboxVol->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxVChange); - checkboxVol->SetValue(true); + checkboxVol->SetValue(false); sizercheck->Add(checkboxVol, wxFIXED_MINSIZE); checkboxSA = new wxCheckBox(this,-1,wxString(_T("Surface Rendering A"))); Connect(checkboxSA->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSAChange); - checkboxSA->SetValue(true); + checkboxSA->SetValue(false); sizercheck->Add(checkboxSA, wxFIXED_MINSIZE); checkboxViewer = new wxCheckBox(this,-1,wxString(_T("MPR"))); Connect(checkboxViewer->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onMPROptions); - checkboxViewer->SetValue(false); + checkboxViewer->SetValue(true); sizercheck->Add(checkboxViewer, wxFIXED_MINSIZE); checkboxSB = new wxCheckBox(this,-1,wxString(_T("Surface Rendering B"))); @@ -150,6 +153,9 @@ void wxMaracasRenderTabbedPanel::addVolume(vtkImageData* img, std::string datana wxMaracasMultipleVolumeRendererPanel* controlpanV = new wxMaracasMultipleVolumeRendererPanel(wxtabs, _propidV, img, true); wxtabs->AddPage(controlpanV, _T("Vol Rendering"), true); controlpanV->updateVolume(); + wxtabs->GetPage(0)->Disable(); + + volmanager->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue()); } } catch(char* str) @@ -176,6 +182,9 @@ void wxMaracasRenderTabbedPanel::addSurface1(vtkImageData* img, std::string data int maxiso = surrendmanager1->getMaxIsoValue(_propidSA); ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSA)->createControls(maxiso); wxtabs->AddPage(controlpanSA, _T("SR A")); + wxtabs->GetPage(1)->Disable(); + + surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue()); } } catch(char* str) @@ -203,6 +212,8 @@ void wxMaracasRenderTabbedPanel::addSurface2(vtkImageData* img, std::string data wxtabs->AddPage(controlpanSB, _T("SR B")); wxtabs->GetPage(2)->Disable(); + surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue()); + } } catch(char* str) @@ -230,6 +241,8 @@ void wxMaracasRenderTabbedPanel::addSurface3(vtkImageData* img, std::string data ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSC)->createControls(maxiso); wxtabs->AddPage(controlpanSC, _T("SR C")); wxtabs->GetPage(3)->Disable(); + + surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue()); } } catch(char* str) @@ -264,25 +277,24 @@ void wxMaracasRenderTabbedPanel::addMPROptions() spc[2] = 0; vtkMPRBaseData* mvtkmprbasedata = new vtkMPRBaseData(); - marImageData* marimagedata = new marImageData( getVolImage() ); - mvtkmprbasedata->SetMarImageData(marimagedata); + marImageData* marimagedata = new marImageData( getVolImage() ); + mvtkmprbasedata ->SetMarImageData(marimagedata); mwxvtkmpr3Dview = new wxVtkMPR3DView( baseView ); vtkmpr3Ddataviewer = new vtkMPR3DDataViewer(); - wxPanel *panelControl = new wxPanel(wxtabs,-1); + wxPanel *panelControl = new wxPanel(wxtabs,-1); controlPanelMPR3D = mwxvtkmpr3Dview->CreateControlPanel(panelControl, true); - wxFlexGridSizer *sizerCtrol = new wxFlexGridSizer(1); - sizerCtrol->Add(controlPanelMPR3D, 1, wxALL|wxEXPAND, 2); + wxFlexGridSizer *sizerCtrol = new wxFlexGridSizer(1); + sizerCtrol ->Add(controlPanelMPR3D, 1, wxALL|wxEXPAND, 2); panelControl->SetAutoLayout(true); panelControl->SetSizer(sizerCtrol); panelControl->SetSize(400,350); panelControl->Layout(); - if (mvtkmprbasedata!=NULL) { mvtkmprbasedata->Configure(); @@ -327,9 +339,14 @@ void wxMaracasRenderTabbedPanel::addMPROptions() mwxvtkmpr3Dview ->ResetCamera(ext,org,spc); } + int id = 4; wxtabs->AddPage(panelControl, _T("MPR")); - wxtabs->GetPage(4)->Disable(); - mwxvtkmpr3Dview->showOutlineActor(false); + wxtabs->GetPage(id)->Enable(); + wxtabs->SetSelection(id); + + ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleZ(true); + ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleXYZ(true); + mwxvtkmpr3Dview->showOutlineActor(true); mwxvtkmpr3Dview->Refresh(); } @@ -692,11 +709,16 @@ void wxMaracasRenderTabbedPanel::onMPROptions(wxCommandEvent& event) bool valueX = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleX(); bool valueY = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleY(); bool valueZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleZ(); + bool valueXYZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleXYZ(); + bool valuePlane = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisiblePlane(); mwxvtkmpr3Dview->VisibleImageActor( 0, valueX ); mwxvtkmpr3Dview->VisibleImageActor( 1, valueY ); mwxvtkmpr3Dview->VisibleImageActor( 2, valueZ ); + mwxvtkmpr3Dview->VisiblePointWidget(valueXYZ); + mwxvtkmpr3Dview->VisiblePlaneWidget(valuePlane); mwxvtkmpr3Dview->showOutlineActor(true); + mwxvtkmpr3Dview->Refresh(); wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh @@ -707,6 +729,8 @@ void wxMaracasRenderTabbedPanel::onMPROptions(wxCommandEvent& event) { wxtabs->GetPage(id)->Disable(); + mwxvtkmpr3Dview->VisiblePointWidget(false); + mwxvtkmpr3Dview->VisiblePlaneWidget(false); mwxvtkmpr3Dview->VisibleImageActor(0, false ); mwxvtkmpr3Dview->VisibleImageActor(1, false ); mwxvtkmpr3Dview->VisibleImageActor(2, false ); @@ -725,7 +749,7 @@ void wxMaracasRenderTabbedPanel::onOpenParameters(wxCommandEvent& event){ if(dialog == NULL) { dialog = new wxMaracasRenderImageManagementPanel(this, volmanager, surrendmanager1, surrendmanager2, surrendmanager3, volname, _id); - dialog->SetSize(400, 580); + dialog->SetSize(460, 580); dialog->Show(); } else if(dialog != NULL) @@ -747,12 +771,15 @@ void wxMaracasRenderTabbedPanel::onOpenCutter(wxCommandEvent& event) type.push_back(3); wxMaracasDialog_NViewers* dialog1 = new wxMaracasDialog_NViewers(this, img, &type, wxString(_T("Cut Module") )); - //dialog1->SetSize(800, 700); + dialog1->SetSize(800, 700); std::string path = crea::System::GetDllAppPath("bbcreaMaracasVisu.dll"); - //cutter = new CutModel2MainPanel(dialog1, path); + cutter = CutModel2MainPanel::getInstance(dialog1->getinternalPanel(), path); + cutter->setRenderer( dialog1->getViewer()->GetwxVtkBaseView(1)->GetRenderer() ); + cutter->setInteractor( dialog1->getViewer()->GetwxVtkBaseView(1)->GetWxVTKRenderWindowInteractor() ); + cutter->setImageData(getVolImage()); - //dialog1->AddPanel(cutter); + dialog1->AddPanel(cutter); dialog1->Show(); } diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.h index 14411e9..4118b75 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.h @@ -5,7 +5,7 @@ #include #include "wxMaracasRenderImageManagementPanel.h" -//#include "CutModelMainPanel.h" +#include "CutModel2MainPanel.h" #include "wxMaracasMultipleVolumeRendererManager.h" #include "wxMaracasSurfaceRenderingManager.h" #include "wxVtkBaseView.h" @@ -27,7 +27,6 @@ public: void addSurface3(vtkImageData* img, std::string dataname); void deleteVolume(int volid); - void Transform(vtkMatrix4x4* tmatrix); void addRemoveActorV(int id, bool addremove); void addRemoveActorSA(int id, bool addremove); void addRemoveActorSB(int id, bool addremove); @@ -87,7 +86,7 @@ private: bool first; int _id; - //CutModel2MainPanel* cutter; + CutModel2MainPanel* cutter; wxMaracasRenderImageManagementPanel* dialog; wxMaracasMultipleVolumeRendererManager* volmanager; wxMaracasSurfaceRenderingManager* surrendmanager1; diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_ViewerWidget.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_ViewerWidget.cxx index ad05729..86642ee 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_ViewerWidget.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_ViewerWidget.cxx @@ -3,8 +3,8 @@ Program: wxMaracas Module: $RCSfile: wxMaracas_ViewerWidget.cxx,v $ Language: C++ - Date: $Date: 2009/11/30 20:52:51 $ - Version: $Revision: 1.20 $ + Date: $Date: 2009/12/01 21:22:12 $ + Version: $Revision: 1.21 $ Copyright: (c) 2002, 2003 License: @@ -321,17 +321,7 @@ if ( mwidgetMesure !=NULL ) { mwidgetMesure -> SetMesureScale( 1 ); } if ( mwxsphereview !=NULL ) { mwxsphereview -> Configure(); } - printf("CPR wxMaracas_ViewerWidget::ConfigureVTK A \n"); if (mwxvtk3Dbaseview_Clipping3D !=NULL) { mwxvtk3Dbaseview_Clipping3D -> Configure(); - printf("CPR wxMaracas_ViewerWidget::ConfigureVTK B \n"); -/*Borrame - mwxvtk3Dbaseview_Clipping3D->GetRenderer()->SetActiveCamera(mwxvtk3Dbaseview_Clipping3D->GetCamera()); - mwxvtk3Dbaseview_Clipping3D->GetRenderer()->ResetCamera (); - mwxvtk3Dbaseview_Clipping3D->GetCamera()->Dolly(1.5); - mwxvtk3Dbaseview_Clipping3D->GetRenderer()->SetBackground( 0.36 , 0.36 , 0.36 ); - mwxvtk3Dbaseview_Clipping3D->GetRenWin()->SetSize(400, 400); - mwxvtk3Dbaseview_Clipping3D->GetRenderer()->ResetCameraClippingRange(); -*/ } if (vtkmpr3Ddataviewer !=NULL) { diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk3DBaseView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk3DBaseView.cxx index 3722c50..1f2ee80 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk3DBaseView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk3DBaseView.cxx @@ -48,10 +48,10 @@ void wxVtk3DBaseView::Refresh() //------------------------------------------------------------------- void wxVtk3DBaseView::Configure() { - printf("EED wxVtk3DBaseView::Configure A\n"); + //printf("EED wxVtk3DBaseView::Configure A\n"); if (_configure==false) { - printf("EED wxVtk3DBaseView::Configure B\n"); + //printf("EED wxVtk3DBaseView::Configure B\n"); _configure=true; //wxVtkBaseView::Configure(); _aRenderer = vtkRenderer::New(); @@ -70,9 +70,6 @@ void wxVtk3DBaseView::Configure() GetWxVTKRenderWindowInteractor()->SetRenderWindow(_renWin); - -// EED Borrame -// vtkInteractorStyle3DMaracas *interactorStyle3DMaracas = vtkInteractorStyle3DMaracas::New(); vtkInteractorStyleBaseView3D *interactorStyleBaseView3D = vtkInteractorStyleBaseView3D::New(); SetInteractorStyleBaseView( interactorStyleBaseView3D ); @@ -80,12 +77,6 @@ void wxVtk3DBaseView::Configure() GetWxVTKRenderWindowInteractor()->SetInteractorStyle( interactorStyleBaseView3D ); interactorStyleBaseView3D->SetwxVtkBaseView(this); - -/* EED Borrame - vtkInteractorStyleSwitch *iss = dynamic_cast(_iren->GetInteractorStyle()); - iss->SetCurrentStyleToTrackballCamera(); -*/ - // It is convenient to create an initial view of the data. The // FocalPoint and Position form a vector direction. Later on // (ResetCamera() method) this vector is used to position the camera diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx index 04ebd6c..dd262f4 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx @@ -73,20 +73,20 @@ wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DV sizer = new wxFlexGridSizer(2); sizerH4 = new wxFlexGridSizer(2); - sizerH4->Add( _positionX ,1,wxGROW , 0 ); + sizerH4->Add( _positionX ,1,wxGROW , 0 ); sizerH4->Add( ckBoxX ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED , 0 ); - sizerH4->Add( _positionY ,1,wxGROW , 0 ); + sizerH4->Add( _positionY ,1,wxGROW , 0 ); sizerH4->Add( ckBoxY ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED , 0 ); - sizerH4->Add( _positionZ ,1,wxGROW , 0 ); + sizerH4->Add( _positionZ ,1,wxGROW , 0 ); sizerH4->Add( ckBoxZ ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED , 0 ); sizerH5 = new wxFlexGridSizer(1); - sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0); - sizerH5->Add( _ckBoxXYZ , 1, wxALL|wxEXPAND, 0); - sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0); - sizerH5->Add( _ckBoxPlane , 1, wxALL|wxEXPAND, 0); - sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0); - sizerH5->Add( btnColorTable ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED , 0 ); + sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND , 0); + sizerH5->Add( _ckBoxXYZ , 1, wxALL|wxEXPAND , 0); + sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND , 0); + sizerH5->Add( _ckBoxPlane , 1, wxALL|wxEXPAND , 0); + sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND , 0); + sizerH5->Add( btnColorTable , 0,wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 ); //sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0); } else @@ -96,17 +96,17 @@ wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DV sizerH4 = new wxFlexGridSizer(10); sizerH5 = new wxFlexGridSizer(10); - sizerH4->Add( _positionX ,1,wxGROW , 0 ); - sizerH4->Add( ckBoxX ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED , 0 ); - sizerH4->Add( _positionY ,1,wxGROW , 0 ); - sizerH4->Add( ckBoxY ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED , 0 ); - sizerH4->Add( _positionZ ,1,wxGROW , 0 ); - sizerH4->Add( ckBoxZ ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED , 0 ); - sizerH4->Add( btnColorTable ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED , 0 ); - - sizerH5->Add( _ckBoxXYZ , 1, wxALL|wxEXPAND, 0); - sizerH5->Add( _ckBoxPlane , 1, wxALL|wxEXPAND, 0); - sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0); + sizerH4->Add( _positionX , 1, wxGROW , 0 ); + sizerH4->Add( ckBoxX , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 ); + sizerH4->Add( _positionY , 1, wxGROW , 0 ); + sizerH4->Add( ckBoxY , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 ); + sizerH4->Add( _positionZ , 1, wxGROW , 0 ); + sizerH4->Add( ckBoxZ , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 ); + sizerH4->Add( btnColorTable , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 ); + + sizerH5->Add( _ckBoxXYZ , 1, wxALL|wxEXPAND, 0); + sizerH5->Add( _ckBoxPlane , 1, wxALL|wxEXPAND, 0); + sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0); } @@ -139,8 +139,8 @@ wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DV // sizerH5->Add( ckBoxY , 1, wxALL|wxEXPAND, 0); // sizerH5->Add( ckBoxZ , 1, wxALL|wxEXPAND, 0); - sizer->Add( sizerH4 , 1, wxALL|wxGROW, 2); - sizer->Add( sizerH5 , 1, wxALL|wxEXPAND, 2); + sizer->Add( sizerH4, 1, wxALL|wxGROW, 2); + sizer->Add( sizerH5, 1, wxALL|wxEXPAND,2); panel->SetSize(400,50); panel->SetAutoLayout(true); @@ -150,7 +150,6 @@ wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DV panel->SetEventHandler((wxEvtHandler*)this); //this->UpdateControlPanel(); - } void wxVtkMPR3DViewCntrlPanel::UpdateControlPanel() { @@ -353,7 +352,6 @@ void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(wxCommandEvent& event) }catch(char* e){ std::cout<VisiblePlaneWidget(event.IsChecked()); -} +} //------------------------------------------------------------------- void wxVtkMPR3DViewCntrlPanel::OnPositionX(wxScrollEvent& event) @@ -431,4 +429,67 @@ bool wxVtkMPR3DViewCntrlPanel::GetVisibleY() bool wxVtkMPR3DViewCntrlPanel::GetVisibleZ() { return ckBoxZ->GetValue(); +} + +//------------------------------------------------------------------- +bool wxVtkMPR3DViewCntrlPanel::GetVisibleXYZ() +{ + return _ckBoxXYZ->GetValue(); +} + +//------------------------------------------------------------------- +bool wxVtkMPR3DViewCntrlPanel::GetVisiblePlane() +{ + return _ckBoxPlane->GetValue(); +} + +//------------------------------------------------------------------- +void wxVtkMPR3DViewCntrlPanel::SetVisibleX(bool value) +{ + ckBoxX->SetValue(value); + + _wxvtkmpr3Dview->VisibleImageActor(0, value ); + _wxvtkmpr3Dview->Refresh(); + + wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh + _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1); +} + +//------------------------------------------------------------------- +void wxVtkMPR3DViewCntrlPanel::SetVisibleY(bool value) +{ + ckBoxY->SetValue(value); + + _wxvtkmpr3Dview->VisibleImageActor(1, value ); + _wxvtkmpr3Dview->Refresh(); + + wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh + _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1); +} + +//------------------------------------------------------------------- +void wxVtkMPR3DViewCntrlPanel::SetVisibleZ(bool value) +{ + ckBoxZ->SetValue(value); + + _wxvtkmpr3Dview->VisibleImageActor(2, value ); + _wxvtkmpr3Dview->Refresh(); + + wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh + _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1); +} + +//------------------------------------------------------------------- +void wxVtkMPR3DViewCntrlPanel::SetVisibleXYZ(bool value) +{ + _ckBoxXYZ->SetValue(value); + _wxvtkmpr3Dview->VisiblePointWidget(value); + +} + +//------------------------------------------------------------------- +void wxVtkMPR3DViewCntrlPanel::SetVisiblePlane(bool value) +{ + _ckBoxPlane->SetValue(value); + _wxvtkmpr3Dview->VisiblePlaneWidget(value); } \ No newline at end of file diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.h index d0ba6a2..aab553b 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.h @@ -27,6 +27,13 @@ public: bool GetVisibleX(); bool GetVisibleY(); bool GetVisibleZ(); + bool GetVisibleXYZ(); + bool GetVisiblePlane(); + void SetVisibleX(bool value); + void SetVisibleY(bool value); + void SetVisibleZ(bool value); + void SetVisibleXYZ(bool value); + void SetVisiblePlane(bool value); private: wxVtkMPR3DView *_wxvtkmpr3Dview; -- 2.45.1