X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxVtkMPR3DViewCntrlPanel.cxx;h=055a12f743c926fd1c5e0f34e248b79dc7fe518f;hb=241ec043d82df169705445f317b332207fd1b6b2;hp=7e8d4a65ff467d24f38d578a976da6b343cee1b6;hpb=7efcf8b7c62b77ababdaf2c52c2b862597b0b129;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx index 7e8d4a6..055a12f 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx @@ -2,7 +2,7 @@ #include "HistogramDialog.h" -wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DView *wxvtkmpr3Dview ) +wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DView *wxvtkmpr3Dview, bool align ) : wxPanel(parent, -1) { @@ -17,6 +17,8 @@ wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DV int maxY = 1; int maxZ = 1; + //CPR: Modified 30 Nov 2009 + /* wxCheckBox *ckBoxX = new wxCheckBox(panel,-1,_T("X ")); _positionX = new wxSlider(panel,-1,maxX/2,0,maxX, wxDefaultPosition, wxSize(150,40), wxSL_HORIZONTAL | wxSL_LABELS); wxCheckBox *ckBoxY = new wxCheckBox(panel,-1,_T("Y ")); @@ -24,9 +26,18 @@ wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DV wxCheckBox *ckBoxZ = new wxCheckBox(panel,-1,_T("Z ")); _positionZ = new wxSlider(panel,-1,maxZ/2,0,maxZ, wxDefaultPosition, wxSize(150,40), wxSL_HORIZONTAL | wxSL_LABELS); wxButton *btnColorTable = new wxButton (panel, -1, _T("Edit Color Table") ); + */ + + ckBoxX = new wxCheckBox(panel,-1,_T("X ")); + _positionX = new wxSlider(panel,-1,maxX/2,0,maxX, wxDefaultPosition, wxSize(150,40), wxSL_HORIZONTAL | wxSL_LABELS); + ckBoxY = new wxCheckBox(panel,-1,_T("Y ")); + _positionY = new wxSlider(panel,-1,maxY/2,0,maxY, wxDefaultPosition, wxSize(150,40), wxSL_HORIZONTAL | wxSL_LABELS); + ckBoxZ = new wxCheckBox(panel,-1,_T("Z ")); + _positionZ = new wxSlider(panel,-1,maxZ/2,0,maxZ, wxDefaultPosition, wxSize(150,40), wxSL_HORIZONTAL | wxSL_LABELS); + wxButton *btnColorTable = new wxButton (panel, -1, _T("Edit Color Table") ); - _ckBoxXYZ = new wxCheckBox(panel,-1,_T("XYZ ")); - _ckBoxPlane = new wxCheckBox(panel,-1,_T("Plane")); + _ckBoxXYZ = new wxCheckBox(panel,-1,_T("XYZ ")); + _ckBoxPlane = new wxCheckBox(panel,-1,_T("Plane")); ckBoxX->SetValue(false); ckBoxY->SetValue(false); @@ -49,58 +60,87 @@ wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DV Connect(_ckBoxXYZ->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ ); Connect(_ckBoxPlane->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisiblePlane ); + wxFlexGridSizer *sizer; + + // wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); + // wxBoxSizer *sizerH4 = new wxBoxSizer(wxHORIZONTAL); + + //CPR: If-else statements added 30 Nov 2009 + wxFlexGridSizer *sizerH4; + wxFlexGridSizer *sizerH5; + if(align) + { + sizer = new wxFlexGridSizer(2); + + sizerH4 = new wxFlexGridSizer(2); + 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 ); + + 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); + } + else + { + sizer = new wxFlexGridSizer(1); + + 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); + } + - wxFlexGridSizer *sizer = new wxFlexGridSizer(1); -// wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); - -// wxBoxSizer *sizerH4 = new wxBoxSizer(wxHORIZONTAL); - wxFlexGridSizer *sizerH4 = new wxFlexGridSizer(10); - wxFlexGridSizer *sizerH5 = new wxFlexGridSizer(10); - - - -//EED 28 sep 2006 -// wxFlexGridSizer *sizerH6 = new wxFlexGridSizer(10); -// wxFlexGridSizer *sizerH7 = new wxFlexGridSizer(10); - -// sizerH4->Add( ckBoxX , 1, wxALL|wxEXPAND, 0); -// sizerH4->Add( new wxStaticText(panel, -1," ") , 1, wxALL|wxEXPAND, 0); -// sizerH4->Add( _positionX , 1, wxALL|wxEXPAND, 0); - -// sizerH5->Add( ckBoxY , 1, wxALL|wxEXPAND, 0); -// sizerH5->Add( new wxStaticText(panel, -1," ") , 1, wxALL|wxEXPAND, 0); -// sizerH5->Add( _positionY , 1, wxALL|wxEXPAND, 0); + //EED 28 sep 2006 + // wxFlexGridSizer *sizerH6 = new wxFlexGridSizer(10); + // wxFlexGridSizer *sizerH7 = new wxFlexGridSizer(10); -// sizerH6->Add( ckBoxZ , 1, wxALL|wxEXPAND, 0); -// sizerH6->Add( new wxStaticText(panel, -1," ") , 1, wxALL|wxEXPAND, 0); -// sizerH6->Add( _positionZ , 1, wxALL|wxEXPAND, 0); + // sizerH4->Add( ckBoxX , 1, wxALL|wxEXPAND, 0); + // sizerH4->Add( new wxStaticText(panel, -1," ") , 1, wxALL|wxEXPAND, 0); + // sizerH4->Add( _positionX , 1, wxALL|wxEXPAND, 0); -// sizerH7->Add( _ckBoxXYZ , 1, wxALL|wxEXPAND, 0); -// sizerH7->Add( _ckBoxPlane , 1, wxALL|wxEXPAND, 0); + // sizerH5->Add( ckBoxY , 1, wxALL|wxEXPAND, 0); + // sizerH5->Add( new wxStaticText(panel, -1," ") , 1, wxALL|wxEXPAND, 0); + // sizerH5->Add( _positionY , 1, wxALL|wxEXPAND, 0); -// sizer->Add( sizerH4 , 1, wxALL|wxEXPAND, 2); -// sizer->Add( sizerH5 , 1, wxALL|wxEXPAND, 2); -// sizer->Add( sizerH6 , 1, wxALL|wxEXPAND, 2); -// sizer->Add( sizerH7 , 1, wxALL|wxEXPAND, 2); + // sizerH6->Add( ckBoxZ , 1, wxALL|wxEXPAND, 0); + // sizerH6->Add( new wxStaticText(panel, -1," ") , 1, wxALL|wxEXPAND, 0); + // sizerH6->Add( _positionZ , 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 ); + // sizerH7->Add( _ckBoxXYZ , 1, wxALL|wxEXPAND, 0); + // sizerH7->Add( _ckBoxPlane , 1, wxALL|wxEXPAND, 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); -// sizerH5->Add( ckBoxX , 1, wxALL|wxEXPAND, 0); -// sizerH5->Add( ckBoxY , 1, wxALL|wxEXPAND, 0); -// sizerH5->Add( ckBoxZ , 1, wxALL|wxEXPAND, 0); + // sizer->Add( sizerH4 , 1, wxALL|wxEXPAND, 2); + // sizer->Add( sizerH5 , 1, wxALL|wxEXPAND, 2); + // sizer->Add( sizerH6 , 1, wxALL|wxEXPAND, 2); + // sizer->Add( sizerH7 , 1, wxALL|wxEXPAND, 2); - sizer->Add( sizerH4 , 1, wxALL|wxGROW, 2); - sizer->Add( sizerH5 , 1, wxALL|wxEXPAND, 2); + + // sizerH5->Add( ckBoxX , 1, wxALL|wxEXPAND, 0); + // 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); panel->SetSize(400,50); panel->SetAutoLayout(true); @@ -110,7 +150,6 @@ wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DV panel->SetEventHandler((wxEvtHandler*)this); //this->UpdateControlPanel(); - } void wxVtkMPR3DViewCntrlPanel::UpdateControlPanel() { @@ -190,7 +229,7 @@ int wxVtkMPR3DViewCntrlPanel::GetIdTissue() //------------------------------------------------------------------- void wxVtkMPR3DViewCntrlPanel::OnEditColorTable(wxCommandEvent& event) { - + vtkColorTransferFunction *ctfun = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetvtkColorTransferFunction(); std::vector *ctfunVectorPoint = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorPoint(); std::vector *ctfunVectorRed = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorRed(); @@ -207,7 +246,7 @@ void wxVtkMPR3DViewCntrlPanel::OnEditColorTable(wxCommandEvent& event) HistogramDialog* hDlg=new HistogramDialog(NULL,_T("Color table"),imagedata,2); - hDlg->erasePointsTransferenceFunction(); + hDlg->erasePointsTransferenceFunction(); int ctfSize=ctfunVectorRed->size(); if(ctfSize>0) { @@ -218,9 +257,10 @@ void wxVtkMPR3DViewCntrlPanel::OnEditColorTable(wxCommandEvent& event) double gr = (*ctfunVectorPoint)[i]; double r = (*ctfunVectorRed)[i]; double g = (*ctfunVectorGreen)[i]; - double b = (*ctfunVectorBlue)[i]; - -hDlg->addColorPoint(gr,(int)(r*255),(int)(g*255),(int)(b*255)); + double b = (*ctfunVectorBlue)[i]; + + hDlg->addColorPoint(gr,(int)(r*255),(int)(g*255),(int)(b*255)); + i++; } } @@ -302,9 +342,10 @@ hDlg->addColorPoint(gr,(int)(r*255),(int)(g*255),(int)(b*255)); //------------------------------------------------------------------- void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(wxCommandEvent& event) { + _wxvtkmpr3Dview->VisibleImageActor(0, event.IsChecked() ); _wxvtkmpr3Dview->Refresh(); - + wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh try{ @@ -312,7 +353,6 @@ void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(wxCommandEvent& event) }catch(char* e){ std::cout<VisibleImageActor(1, event.IsChecked() ); _wxvtkmpr3Dview->Refresh(); - wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh + wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1); } @@ -337,6 +377,7 @@ void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ(wxCommandEvent& event) //------------------------------------------------------------------- void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ(wxCommandEvent& event) { + _wxvtkmpr3Dview->VisiblePointWidget(event.IsChecked()); } @@ -344,14 +385,15 @@ void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ(wxCommandEvent& event) void wxVtkMPR3DViewCntrlPanel::OnVisiblePlane(wxCommandEvent& event) { _wxvtkmpr3Dview->VisiblePlaneWidget(event.IsChecked()); -} +} //------------------------------------------------------------------- void wxVtkMPR3DViewCntrlPanel::OnPositionX(wxScrollEvent& event) { _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetX( _positionX->GetValue() ); _wxvtkmpr3Dview->RefreshView(); + wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1); } @@ -371,3 +413,84 @@ void wxVtkMPR3DViewCntrlPanel::OnPositionZ(wxScrollEvent& event) wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1); } + +//------------------------------------------------------------------- +bool wxVtkMPR3DViewCntrlPanel::GetVisibleX() +{ + return ckBoxX->GetValue(); +} + +//------------------------------------------------------------------- +bool wxVtkMPR3DViewCntrlPanel::GetVisibleY() +{ + return ckBoxY->GetValue(); +} + +//------------------------------------------------------------------- +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