+/*# ---------------------------------------------------------------------
+#
+# 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 <wx/combobox.h>
wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DView *wxvtkmpr3Dview, bool align )
: wxPanel(parent, -1)
{
-
wxPanel *panel = this;
_wxvtkmpr3Dview = wxvtkmpr3Dview;
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
/*
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(300,40), wxSL_HORIZONTAL | wxSL_LABELS);
- ckBoxY = new wxCheckBox(panel,-1,_T("Y "));
- _positionY = new wxSlider(panel,-1,maxY/2,0,maxY, wxDefaultPosition, wxSize(300,40), wxSL_HORIZONTAL | wxSL_LABELS);
- ckBoxZ = new wxCheckBox(panel,-1,_T("Z "));
- _positionZ = new wxSlider(panel,-1,maxZ/2,0,maxZ, wxDefaultPosition, wxSize(300,40), wxSL_HORIZONTAL | wxSL_LABELS);
- wxButton *btnColorTable = new wxButton (panel, -1, _T("Color Table") );
-
- _ckBoxXYZ = new wxCheckBox(panel,-1,_T("Show XYZ axis "));
- _ckBoxPlane = new wxCheckBox(panel,-1,_T("Show Planes"));
-
- _ckFreePlaneX= new wxCheckBox(panel,-1,_T("free X"));;
- _ckFreePlaneY= new wxCheckBox(panel,-1,_T("free Y"));;
- _ckFreePlaneZ= new wxCheckBox(panel,-1,_T("free Z"));;
- _ckFreePlaneInteraction= new wxCheckBox(panel,-1,_T("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;
wxFlexGridSizer *sizerH4;
wxFlexGridSizer *sizerH5;
wxFlexGridSizer *sizerH6;
+
if(align)
{
- sizer = new wxFlexGridSizer(3);
-
- 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);
sizerH6 = new wxFlexGridSizer(1);
- sizerH6->Add( _ckFreePlaneX , 1, wxALL|wxEXPAND , 0);
- sizerH6->Add( _ckFreePlaneY , 1, wxALL|wxEXPAND , 0);
- sizerH6->Add( _ckFreePlaneZ , 1, wxALL|wxEXPAND , 0);
- sizerH6->Add( _ckFreePlaneInteraction , 1, wxALL|wxEXPAND , 0);
+ 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);
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( _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);
}
-
+
//EED 28 sep 2006
// wxFlexGridSizer *sizerH6 = new wxFlexGridSizer(10);
// 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);
panel->Layout();
panel->SetEventHandler((wxEvtHandler*)this);
-
+
//this->UpdateControlPanel();
+
}
-void wxVtkMPR3DViewCntrlPanel::UpdateControlPanel()
-{
+//-------------------------------------------------------------------
+void wxVtkMPR3DViewCntrlPanel::UpdateControlPanel(bool firsttime)
+{
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();*/
-
- //std::cout<<"wxVtkMPR3DViewCntrlPanel::UpdateControlPanel() maxX="<<maxX<<" maxY="<<maxY<<" maxZ="<<maxZ<<std::endl;
- /*_positionX->SetRange(0,maxX);
- _positionY->SetRange(0,maxY);
- _positionZ->SetRange(0,maxZ);*/
- _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);
-
- _positionX->Update();
- _positionY->Update();
- _positionZ->Update();
- this->Update();
- }
+ if(img)
+ {
+ img->GetExtent(x0,x1,y0,y1,z0,z1);
+ _positionX->SetRange(x0,x1);
+ _positionY->SetRange(y0,y1);
+ _positionZ->SetRange(z0,z1);
+
+ if (firsttime==true)
+ {
+ _positionX->SetValue((x0+x1)/2);
+ _positionY->SetValue((y0+y1)/2);
+ _positionZ->SetValue((z0+z1)/2);
+ } // if firsttime
+
+//EED 12April2012 This make a floting window in MacOs and Linux with for windows
+// _positionX->Update();
+// _positionY->Update();
+// _positionZ->Update();
+// this->Update();
+ }//img
+
+ }//basedata
}
+
//-------------------------------------------------------------------
wxVtkMPR3DViewCntrlPanel::~wxVtkMPR3DViewCntrlPanel()
{
}
+
//-------------------------------------------------------------------
void wxVtkMPR3DViewCntrlPanel::Refresh()
{
_positionY->SetValue( (int)(_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetY( )) );
_positionZ->SetValue( (int)(_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetZ( )) );
}
+
/*
//-------------------------------------------------------------------
int wxVtkMPR3DViewCntrlPanel::GetIdTissue()
}
*/
+//-------------------------------------------------------------------
+//void wxVtkMPR3DViewCntrlPanel::On_BW_Color_Plane(wxCommandEvent& event)
+//{
+// printf ("EED wxVtkMPR3DViewCntrlPanel::On_BW_Color_Plane ...... NOT Implemented\n ");
+//}
+
+
//-------------------------------------------------------------------
void wxVtkMPR3DViewCntrlPanel::OnEditColorTable(wxCommandEvent& event)
{
+ vtkImageData *imagedata = this->_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<double> *ctfunVectorPoint = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorPoint();
std::vector<double> *ctfunVectorRed = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorRed();
int i=0,xi,r,g,b;
- vtkImageData *imagedata = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
-
HistogramDialog* hDlg=new HistogramDialog(NULL,_T("Color table"),imagedata,2);
_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();
_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();
}
//-------------------------------------------------------------------
return _ckBoxXYZ->GetValue();
}
+//-------------------------------------------------------------------
+////EED 05Nov2012
+//bool wxVtkMPR3DViewCntrlPanel::Get_BW_Color_Plane()
+//{
+// return _ckBox_BW_Color_Plane;
+//}
+
//-------------------------------------------------------------------
bool wxVtkMPR3DViewCntrlPanel::GetVisiblePlane()
{
//-------------------------------------------------------------------
void wxVtkMPR3DViewCntrlPanel::SetVisibleX(bool value)
{
- ckBoxX->SetValue(value);
+ _ckBoxX->SetValue(value);
_wxvtkmpr3Dview->VisibleImageActor(0, value );
_wxvtkmpr3Dview->Refresh();
//-------------------------------------------------------------------
void wxVtkMPR3DViewCntrlPanel::SetVisibleY(bool value)
{
- ckBoxY->SetValue(value);
+ _ckBoxY->SetValue(value);
_wxvtkmpr3Dview->VisibleImageActor(1, value );
_wxvtkmpr3Dview->Refresh();
//-------------------------------------------------------------------
void wxVtkMPR3DViewCntrlPanel::SetVisibleZ(bool value)
{
- ckBoxZ->SetValue(value);
+ _ckBoxZ->SetValue(value);
_wxvtkmpr3Dview->VisibleImageActor(2, value );
_wxvtkmpr3Dview->Refresh();
_ckBoxPlane->SetValue(value);
_wxvtkmpr3Dview->VisiblePlaneWidget(value);
}
+
+
+//-------------------------------------------------------------------
+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);
+
+}
+
+