X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxVtkMPR3DViewCntrlPanel.cxx;h=82e0c06e4ee3e1419b2164cb037fadf970482678;hb=c016f2efd20188d031f0bc29c5a2bb1aab959adf;hp=04ebd6ce39f1485ff7293bd1dce9a942404419b9;hpb=d2fc2645728a4aea4f0aa0febfa1d7a894ab3ff1;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx index 04ebd6c..82e0c06 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx @@ -39,6 +39,19 @@ wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DV _ckBoxXYZ = new wxCheckBox(panel,-1,_T("XYZ ")); _ckBoxPlane = new wxCheckBox(panel,-1,_T("Plane")); + _ckFreePlaneX= new wxCheckBox(panel,-1,_T("Free plane X "));; + _ckFreePlaneY= new wxCheckBox(panel,-1,_T("Free plane Y "));; + _ckFreePlaneZ= new wxCheckBox(panel,-1,_T("Free plane Z "));; + _ckFreePlaneInteraction= new wxCheckBox(panel,-1,_T("Free pnale interaction "));; + + + //EED: If-else statements added 30 Nov 2009 + _ckFreePlaneX->SetValue(false); + _ckFreePlaneY->SetValue(false); + _ckFreePlaneZ->SetValue(false); + _ckFreePlaneInteraction->SetValue(true); + + ckBoxX->SetValue(false); ckBoxY->SetValue(false); ckBoxZ->SetValue(false); @@ -57,9 +70,14 @@ wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DV Connect(_positionZ->GetId() , wxEVT_COMMAND_SLIDER_UPDATED , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnPositionZ ); Connect(btnColorTable->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnEditColorTable ); - Connect(_ckBoxXYZ->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ ); - Connect(_ckBoxPlane->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisiblePlane ); + Connect(_ckBoxXYZ->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ ); + Connect(_ckBoxPlane->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisiblePlane ); + Connect(_ckFreePlaneX->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneX ); + Connect(_ckFreePlaneY->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneY ); + Connect(_ckFreePlaneZ->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneZ ); + Connect(_ckFreePlaneInteraction->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneInteraction ); + wxFlexGridSizer *sizer; // wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); @@ -68,26 +86,28 @@ wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DV //CPR: If-else statements added 30 Nov 2009 wxFlexGridSizer *sizerH4; wxFlexGridSizer *sizerH5; + wxFlexGridSizer *sizerH6; if(align) { 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 { @@ -95,21 +115,32 @@ 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); + sizerH6 = 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); + } - + sizerH6 = new wxFlexGridSizer(10); + sizerH6->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND , 0); + sizerH6->Add( _ckFreePlaneX , 1, wxALL|wxEXPAND , 0); + sizerH6->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND , 0); + sizerH6->Add( _ckFreePlaneY , 1, wxALL|wxEXPAND , 0); + sizerH6->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND , 0); + sizerH6->Add( _ckFreePlaneZ , 1, wxALL|wxEXPAND , 0); + sizerH6->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND , 0); + sizerH6->Add( _ckFreePlaneInteraction , 1, wxALL|wxEXPAND , 0); + //EED 28 sep 2006 // wxFlexGridSizer *sizerH6 = new wxFlexGridSizer(10); // wxFlexGridSizer *sizerH7 = new wxFlexGridSizer(10); @@ -139,8 +170,9 @@ 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); + sizer->Add( sizerH6, 1, wxALL|wxEXPAND,2); panel->SetSize(400,50); panel->SetAutoLayout(true); @@ -150,7 +182,6 @@ wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DV panel->SetEventHandler((wxEvtHandler*)this); //this->UpdateControlPanel(); - } void wxVtkMPR3DViewCntrlPanel::UpdateControlPanel() { @@ -247,7 +278,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) { @@ -258,9 +289,10 @@ void wxVtkMPR3DViewCntrlPanel::OnEditColorTable(wxCommandEvent& event) double gr = (*ctfunVectorPoint)[i]; double r = (*ctfunVectorRed)[i]; double g = (*ctfunVectorGreen)[i]; - double b = (*ctfunVectorBlue)[i]; - + double b = (*ctfunVectorBlue)[i]; + hDlg->addColorPoint(gr,(int)(r*255),(int)(g*255),(int)(b*255)); + i++; } } @@ -339,6 +371,33 @@ void wxVtkMPR3DViewCntrlPanel::OnEditColorTable(wxCommandEvent& event) } +//------------------------------------------------------------------- +void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneX(wxCommandEvent& event) +{ + _wxvtkmpr3Dview->FreePlaneVisible( 1, event.IsChecked() ); +} + +//------------------------------------------------------------------- +void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneY(wxCommandEvent& event) +{ + _wxvtkmpr3Dview->FreePlaneVisible( 2, event.IsChecked() ); +} + + +//------------------------------------------------------------------- +void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneZ(wxCommandEvent& event) +{ + _wxvtkmpr3Dview->FreePlaneVisible( 3, event.IsChecked() ); +} + + +//------------------------------------------------------------------- +void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneInteraction(wxCommandEvent& event) +{ + _wxvtkmpr3Dview->FreePlaneInteraction( event.IsChecked() ); +} + + //------------------------------------------------------------------- void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(wxCommandEvent& event) { @@ -353,7 +412,6 @@ void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(wxCommandEvent& event) }catch(char* e){ std::cout<VisiblePlaneWidget(event.IsChecked()); -} +} //------------------------------------------------------------------- void wxVtkMPR3DViewCntrlPanel::OnPositionX(wxScrollEvent& event) @@ -431,4 +489,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