X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxVtkMPR3DViewCntrlPanel.cxx;h=32624a50b213a59d12842f9a9c0cfa284aa79757;hb=47d49bceea4f93ff4f57c40596960d042171abb4;hp=82e0c06e4ee3e1419b2164cb037fadf970482678;hpb=1011e93f16fe2c49f22ff4f6b4b096c63eb14526;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx index 82e0c06..32624a5 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx @@ -1,11 +1,36 @@ +/*# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Sant�) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ */ + #include "wxVtkMPR3DViewCntrlPanel.h" #include "HistogramDialog.h" +#include wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DView *wxvtkmpr3Dview, bool align ) : wxPanel(parent, -1) { - wxPanel *panel = this; _wxvtkmpr3Dview = wxvtkmpr3Dview; @@ -13,9 +38,9 @@ wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DV int maxY = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetMaxPositionY(); int maxZ = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetMaxPositionZ();*/ - int maxX = 1; - int maxY = 1; - int maxZ = 1; + //int maxX = 1; + //int maxY = 1; + //int maxZ = 1; //CPR: Modified 30 Nov 2009 /* @@ -28,55 +53,87 @@ wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DV 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")); - - _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 "));; + _ckBoxX = new wxCheckBox(panel,-1,_T("X ")); + _positionX = new wxSlider(panel,-1,0,0,1, wxDefaultPosition, wxSize(300,40), wxSL_HORIZONTAL | wxSL_LABELS); + _ckBoxY = new wxCheckBox(panel,-1,_T("Y ")); + _positionY = new wxSlider(panel,-1,0,0,1, wxDefaultPosition, wxSize(300,40), wxSL_HORIZONTAL | wxSL_LABELS); + _ckBoxZ = new wxCheckBox(panel,-1,_T("Z ")); + _positionZ = new wxSlider(panel,-1,0,0,1, wxDefaultPosition, wxSize(300,40), wxSL_HORIZONTAL | wxSL_LABELS); + + _ckBoxXYZ = new wxCheckBox(panel,-1,_T("XYZ axis ")); + _ckBoxPlane = new wxCheckBox(panel,-1,_T("Plane")); +////EED 05Nov2012 _ckBox_BW_Color_Plane = new wxCheckBox(panel,-1,_T("GL/Color")); + wxButton *btnColorTable = new wxButton (panel, -1, _T("Color table") ); + wxButton *btnFreePlanesOrtho= new wxButton (panel, -1, _T("Orthogonal planes GL") ); + + _ckFreePlaneX= new wxCheckBox(panel,-1,_T("X ")); + _ckFreePlaneY= new wxCheckBox(panel,-1,_T("Y ")); + _ckFreePlaneZ= new wxCheckBox(panel,-1,_T("Z ")); + _ckFreePlaneInteraction= new wxCheckBox(panel,-1,_T("Interaction planes GL")); - //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); + _ckBoxX->SetValue(false); + _ckBoxY->SetValue(false); + _ckBoxZ->SetValue(false); _ckBoxXYZ->SetValue(false); +////EED 05Nov2012 _ckBox_BW_Color_Plane->SetValue(true); _ckBoxPlane->SetValue(false); + _ckBoxOutline= new wxCheckBox(panel,-1,_T("Outline")); + _ckBoxOutline->SetValue(true); + _ckBoxInterpolate= new wxCheckBox(panel,-1,_T("Interpolate")); + _ckBoxInterpolate->SetValue(true); + + + _ckBoxBackGroundBlack= new wxCheckBox(panel,-1,_T("Background Black"));; + _ckBoxBackGroundBlack->SetValue(false); _positionX->SetSize(400,20); _positionY->SetSize(400,20); _positionZ->SetSize(400,20); - Connect(ckBoxX->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX ); - Connect(_positionX->GetId() , wxEVT_COMMAND_SLIDER_UPDATED , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnPositionX ); - Connect(ckBoxY->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY ); - Connect(_positionY->GetId() , wxEVT_COMMAND_SLIDER_UPDATED , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnPositionY ); - Connect(ckBoxZ->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ ); - 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(_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 ); + // Stereo + _cbStereo = new wxComboBox(panel, -1, _T(""), wxDefaultPosition, wxDefaultSize, 0, NULL,wxCB_READONLY ); + _cbStereo->Append(_T(" * NO STEREO")); + _cbStereo->Append(_T(" STEREO CRYSTAL EYES")); + _cbStereo->Append(_T(" STEREO RED BLUE")); + _cbStereo->Append(_T(" STEREO INTERLACED")); + _cbStereo->Append(_T(" STEREO LEFT")); + _cbStereo->Append(_T(" STEREO RIGHT")); + _cbStereo->Append(_T(" STEREO DRESDEN")); + _cbStereo->Append(_T(" * STEREO ANAGLYPH")); + _cbStereo->Append(_T(" STEREO CHECKERBOARD")); + _cbStereo->Select(0); + + + + + Connect(_ckBoxX->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX ); + Connect(_positionX->GetId() , wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnPositionX ); + Connect(_ckBoxY->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY ); + Connect(_positionY->GetId() , wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnPositionY ); + Connect(_ckBoxZ->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ ); + 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 ); +////EED 05Nov2012 Connect(_ckBox_BW_Color_Plane->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::On_BW_Color_Plane ); + + 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(btnFreePlanesOrtho->GetId() , wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnFreePlanesOrtho ); + Connect(_ckFreePlaneInteraction->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneInteraction ); + Connect(_cbStereo->GetId() , wxEVT_COMMAND_COMBOBOX_SELECTED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnSetStereo ); + Connect(_ckBoxOutline->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnOutline ); + Connect(_ckBoxBackGroundBlack->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnBackGroundBlack ); + Connect(_ckBoxInterpolate->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnInterpolate ); + wxFlexGridSizer *sizer; @@ -87,59 +144,99 @@ wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DV wxFlexGridSizer *sizerH4; wxFlexGridSizer *sizerH5; wxFlexGridSizer *sizerH6; + 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 ); + sizer = new wxFlexGridSizer(4); + sizerH4 = new wxFlexGridSizer(3); + + sizerH4->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0); + sizerH4->Add( new wxStaticText(panel, -1,_T("GL")) , 1, wxALL|wxEXPAND, 0); + sizerH4->Add( new wxStaticText(panel, -1,_T("Color ")) , 1, wxALL|wxEXPAND, 0); + + sizerH4->Add( _positionX ,1,wxGROW , 0 ); + sizerH4->Add( _ckFreePlaneX, 1, wxALL|wxEXPAND, 0); + sizerH4->Add( _ckBoxX ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 ); + + sizerH4->Add( _positionY ,1,wxGROW, 0 ); + sizerH4->Add( _ckFreePlaneY, 1, wxALL|wxEXPAND, 0); + sizerH4->Add( _ckBoxY ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 ); + + sizerH4->Add( _positionZ ,1,wxGROW, 0 ); + sizerH4->Add( _ckFreePlaneZ, 1, wxALL|wxEXPAND, 0); + sizerH4->Add( _ckBoxZ ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 ); + +//EED 2016/02/19 + sizerH4->Add( _ckBoxInterpolate , 1, wxALL|wxEXPAND, 0); + sizerH4->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0); + sizerH4->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 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( new wxStaticText(panel, -1,_T(" ")) , 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); +////EED 05Nov2012 sizerH5->Add( _ckBox_BW_Color_Plane , 1, wxALL|wxEXPAND, 0); + sizerH5->Add( _ckFreePlaneInteraction , 1, wxALL|wxEXPAND, 0); + sizerH5->Add( btnFreePlanesOrtho , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 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( _cbStereo, 1, wxALL|wxEXPAND, 0); - } - else - { + sizerH6 = new wxFlexGridSizer(1); + sizerH6->Add( _ckBoxOutline , 1, wxALL|wxEXPAND, 0); + sizerH6->Add( _ckBoxBackGroundBlack , 1, wxALL|wxEXPAND, 0); + + + sizer->Add( sizerH4, 1, wxALL|wxGROW, 2); + sizer->Add( sizerH5, 1, wxALL|wxEXPAND,2); + sizer->Add( sizerH6, 1, wxALL|wxEXPAND,2); + + + } else { sizer = new wxFlexGridSizer(1); sizerH4 = new wxFlexGridSizer(10); sizerH5 = new wxFlexGridSizer(10); 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( _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); +////EED 05Nov2012 sizerH5->Add( _ckBox_BW_Color_Plane , 1, wxALL|wxEXPAND, 0); sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0); + + sizerH6 = new wxFlexGridSizer(10); + 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); + sizerH6->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0); + sizerH6->Add( btnFreePlanesOrtho , 0 , wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 ); + sizerH6->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0); + sizerH6->Add( _cbStereo, 1, wxALL|wxEXPAND, 0); + sizer->Add( sizerH4, 1, wxALL|wxGROW, 2); + sizer->Add( sizerH5, 1, wxALL|wxEXPAND,2); + sizer->Add( sizerH6, 1, wxALL|wxEXPAND,2); } + - 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); @@ -170,9 +267,6 @@ 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( sizerH6, 1, wxALL|wxEXPAND,2); panel->SetSize(400,50); panel->SetAutoLayout(true); @@ -180,50 +274,46 @@ wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DV panel->Layout(); panel->SetEventHandler((wxEvtHandler*)this); - + //this->UpdateControlPanel(); + } + +//------------------------------------------------------------------- void wxVtkMPR3DViewCntrlPanel::UpdateControlPanel() { - vtkMPRBaseData* basedata = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData(); if(basedata != NULL){ - /*int maxX = basedata->GetMaxPositionX(); - int maxY = basedata->GetMaxPositionY(); - int maxZ = basedata->GetMaxPositionZ();*/ + vtkImageData* img = basedata->GetImageData(); int x0,x1,y0,y1,z0,z1; - basedata->GetDimensionExtention(&x0,&x1,&y0,&y1,&z0,&z1); - /*int maxX = x1-x0;//basedata->GetMaxPositionX(); - int maxY = y1-y0;//basedata->GetMaxPositionY(); - int maxZ = z1-z0;//basedata->GetMaxPositionZ();*/ - + if(img){ + img->GetExtent(x0,x1,y0,y1,z0,z1); + _positionX->SetRange(x0,x1); + _positionY->SetRange(y0,y1); + _positionZ->SetRange(z0,z1); + + _positionX->SetValue((x0+x1)/2); + _positionY->SetValue((y0+y1)/2); + _positionZ->SetValue((z0+z1)/2); + +//EED 12April2012 This make a floting window in MacOs and Linux with for windows +// _positionX->Update(); +// _positionY->Update(); +// _positionZ->Update(); +// this->Update(); + }//img - - //std::cout<<"wxVtkMPR3DViewCntrlPanel::UpdateControlPanel() maxX="<_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData(); + + if ( imagedata->GetScalarType()!=VTK_UNSIGNED_SHORT ) + { + wxMessageDialog windowMessage1(NULL,_T("This option is just available for UNSIGNED SHORT images."), _T("Alert !"), wxOK); + windowMessage1.ShowModal(); + return; + } + vtkColorTransferFunction *ctfun = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetvtkColorTransferFunction(); std::vector *ctfunVectorPoint = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorPoint(); std::vector *ctfunVectorRed = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorRed(); @@ -273,8 +380,6 @@ void wxVtkMPR3DViewCntrlPanel::OnEditColorTable(wxCommandEvent& event) int i=0,xi,r,g,b; - vtkImageData *imagedata = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData(); - HistogramDialog* hDlg=new HistogramDialog(NULL,_T("Color table"),imagedata,2); @@ -375,12 +480,14 @@ void wxVtkMPR3DViewCntrlPanel::OnEditColorTable(wxCommandEvent& event) void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneX(wxCommandEvent& event) { _wxvtkmpr3Dview->FreePlaneVisible( 1, event.IsChecked() ); + _wxvtkmpr3Dview->FreePlaneInteraction( _ckFreePlaneInteraction->GetValue() ); } //------------------------------------------------------------------- void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneY(wxCommandEvent& event) { _wxvtkmpr3Dview->FreePlaneVisible( 2, event.IsChecked() ); + _wxvtkmpr3Dview->FreePlaneInteraction( _ckFreePlaneInteraction->GetValue() ); } @@ -388,6 +495,7 @@ void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneY(wxCommandEvent& event) void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneZ(wxCommandEvent& event) { _wxvtkmpr3Dview->FreePlaneVisible( 3, event.IsChecked() ); + _wxvtkmpr3Dview->FreePlaneInteraction( _ckFreePlaneInteraction->GetValue() ); } @@ -397,11 +505,23 @@ void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneInteraction(wxCommandEvent& eve _wxvtkmpr3Dview->FreePlaneInteraction( event.IsChecked() ); } +//------------------------------------------------------------------- +void wxVtkMPR3DViewCntrlPanel::OnFreePlanesOrtho(wxCommandEvent& event) +{ + _wxvtkmpr3Dview->SetFreePlanesOrtho(); +} //------------------------------------------------------------------- -void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(wxCommandEvent& event) +void wxVtkMPR3DViewCntrlPanel::OnSetStereo(wxCommandEvent& event) { - + this->_wxvtkmpr3Dview->GetWxvtk3Dbaseview()->SetStereo( _cbStereo->GetSelection() ); +} + + + +//------------------------------------------------------------------- +void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(wxCommandEvent& event) +{ _wxvtkmpr3Dview->VisibleImageActor(0, event.IsChecked() ); _wxvtkmpr3Dview->Refresh(); @@ -473,22 +593,24 @@ void wxVtkMPR3DViewCntrlPanel::OnPositionZ(wxScrollEvent& event) _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1); } + + //------------------------------------------------------------------- bool wxVtkMPR3DViewCntrlPanel::GetVisibleX() { - return ckBoxX->GetValue(); + return _ckBoxX->GetValue(); } //------------------------------------------------------------------- bool wxVtkMPR3DViewCntrlPanel::GetVisibleY() { - return ckBoxY->GetValue(); + return _ckBoxY->GetValue(); } //------------------------------------------------------------------- bool wxVtkMPR3DViewCntrlPanel::GetVisibleZ() { - return ckBoxZ->GetValue(); + return _ckBoxZ->GetValue(); } //------------------------------------------------------------------- @@ -497,6 +619,13 @@ bool wxVtkMPR3DViewCntrlPanel::GetVisibleXYZ() return _ckBoxXYZ->GetValue(); } +//------------------------------------------------------------------- +////EED 05Nov2012 +//bool wxVtkMPR3DViewCntrlPanel::Get_BW_Color_Plane() +//{ +// return _ckBox_BW_Color_Plane; +//} + //------------------------------------------------------------------- bool wxVtkMPR3DViewCntrlPanel::GetVisiblePlane() { @@ -506,7 +635,7 @@ bool wxVtkMPR3DViewCntrlPanel::GetVisiblePlane() //------------------------------------------------------------------- void wxVtkMPR3DViewCntrlPanel::SetVisibleX(bool value) { - ckBoxX->SetValue(value); + _ckBoxX->SetValue(value); _wxvtkmpr3Dview->VisibleImageActor(0, value ); _wxvtkmpr3Dview->Refresh(); @@ -518,7 +647,7 @@ void wxVtkMPR3DViewCntrlPanel::SetVisibleX(bool value) //------------------------------------------------------------------- void wxVtkMPR3DViewCntrlPanel::SetVisibleY(bool value) { - ckBoxY->SetValue(value); + _ckBoxY->SetValue(value); _wxvtkmpr3Dview->VisibleImageActor(1, value ); _wxvtkmpr3Dview->Refresh(); @@ -530,7 +659,7 @@ void wxVtkMPR3DViewCntrlPanel::SetVisibleY(bool value) //------------------------------------------------------------------- void wxVtkMPR3DViewCntrlPanel::SetVisibleZ(bool value) { - ckBoxZ->SetValue(value); + _ckBoxZ->SetValue(value); _wxvtkmpr3Dview->VisibleImageActor(2, value ); _wxvtkmpr3Dview->Refresh(); @@ -552,4 +681,38 @@ void wxVtkMPR3DViewCntrlPanel::SetVisiblePlane(bool value) { _ckBoxPlane->SetValue(value); _wxvtkmpr3Dview->VisiblePlaneWidget(value); -} \ No newline at end of file +} + + +//------------------------------------------------------------------- +void wxVtkMPR3DViewCntrlPanel::OnOutline(wxCommandEvent& event) +{ + _wxvtkmpr3Dview->showOutlineActor( _ckBoxOutline->GetValue() ); + _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->Refresh(); + +} + +//------------------------------------------------------------------- +void wxVtkMPR3DViewCntrlPanel::OnBackGroundBlack(wxCommandEvent& event) +{ + if (_ckBoxBackGroundBlack->GetValue()==true) + { + _wxvtkmpr3Dview->SetBackGroundType(0); + } else { + _wxvtkmpr3Dview->SetBackGroundType(1); + } +} + +//------------------------------------------------------------------- +void wxVtkMPR3DViewCntrlPanel::OnInterpolate(wxCommandEvent& event) +{ + _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetInterpolate( _ckBoxInterpolate->GetValue() ); + + _wxvtkmpr3Dview->Refresh(); + + wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh + _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1); + +} + +