X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxMaracasRenderTabbedPanel.cpp;h=68db204e99233335b6324a97b1d43d853e487539;hb=547be998e10b62d3b548146513607c227a9829cd;hp=80eb7e54a1aedd06abdbb6ea08b32833ab45f7f9;hpb=d7d3ec17199e6b725bd375fdfe1085eeb35b34cc;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.cpp index 80eb7e5..68db204 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.cpp @@ -1,33 +1,64 @@ +/*# --------------------------------------------------------------------- +# +# 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 "wxMaracasRenderTabbedPanel.h" -#include "HistogramDialogComboBox.h" +#include "HistogramDialogComboBox.h" #include "wxMaracasMultipleVolumeRendererPanel.h" #include "wxMaracasSurfaceRenderingPanel.h" #include "wxMaracasSurfaceRenderingProp3DMHD.h" -#include "wxMaracasMultipleVolumeRendererManagerData.h" +#include "volumerenderermanagerdata.h" #include "wxMaracasDialog_NViewers.h" +#include "wxVtkMPR3DViewCntrlPanel.h" #include #include - +#include #include + #include "Color.xpm" -#include "creaSystem.h" +//#include "creaSystem.h" -#include -#include "wxVtkMPR3DViewCntrlPanel.h" +#include "creaWx.h" + + BEGIN_EVENT_TABLE( wxMaracasRenderTabbedPanel, wxPanel ) + EVT_MENU( 12121, wxMaracasRenderTabbedPanel::OnRefreshView ) + //EVT_MENU( 12122, wxMaracasRenderTabbedPanel::OnDClickLeft ) + END_EVENT_TABLE( ); /** ** Class constructor **/ wxMaracasRenderTabbedPanel::wxMaracasRenderTabbedPanel(wxWindow* parent, int id, wxVtk3DBaseView* _baseView) -: wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize) + : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize) { _id = id; baseView = _baseView; dialog = NULL; - volmanager = new wxMaracasMultipleVolumeRendererManager(); + volmanager = new VolumeRendererManager(); surrendmanager1 = new wxMaracasSurfaceRenderingManager(); surrendmanager2 = new wxMaracasSurfaceRenderingManager(); surrendmanager3 = new wxMaracasSurfaceRenderingManager(); @@ -42,12 +73,13 @@ 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; } + addRemoveActorMPR(false); + if( vtkmpr3Ddataviewer ) { delete vtkmpr3Ddataviewer; } + if( mwxvtkmpr3Dview ) { delete mwxvtkmpr3Dview; } this->deleteVolume(_id); delete dialog; - delete wxtabs; + delete wxtabs; } /** @@ -104,12 +136,12 @@ void wxMaracasRenderTabbedPanel::createControls(vtkImageData* inImg, std::string //vtkImageData* img3 = surrendmanager3->getImageData(pathfile); if(img!=NULL /*&& img1!=NULL && img2!=NULL && img3!=NULL*/) { - addVolume(img, filename); + addVolume(img, filename); addSurface1(img, filename); addSurface2(img, filename); addSurface3(img, filename); addMPROptions(); - volname = (wxString) filename; + volname = crea::std2wx(filename); wxtabs->Refresh(); } } @@ -259,23 +291,7 @@ void wxMaracasRenderTabbedPanel::addSurface3(vtkImageData* img, std::string data **/ void wxMaracasRenderTabbedPanel::addMPROptions() { - int x = 0,y = 0,z = 0; - int ext[6]; - ext[0] = 0; - ext[1] = 0; - ext[2] = 0; - ext[3] = 0; - ext[4] = 0; - ext[5] = 0; - - double org[3],spc[3]; - org[0] = 0; - org[1] = 0; - org[2] = 0; - spc[0] = 0; - spc[1] = 0; - spc[2] = 0; - + //Panel Construction vtkMPRBaseData* mvtkmprbasedata = new vtkMPRBaseData(); marImageData* marimagedata = new marImageData( getVolImage() ); mvtkmprbasedata ->SetMarImageData(marimagedata); @@ -295,6 +311,24 @@ void wxMaracasRenderTabbedPanel::addMPROptions() panelControl->SetSize(400,350); panelControl->Layout(); + //Configure MPR + int x = 0,y = 0,z = 0; + int ext[6]; + ext[0] = 0; + ext[1] = 0; + ext[2] = 0; + ext[3] = 0; + ext[4] = 0; + ext[5] = 0; + + double org[3],spc[3]; + org[0] = 0; + org[1] = 0; + org[2] = 0; + spc[0] = 0; + spc[1] = 0; + spc[2] = 0; + if (mvtkmprbasedata!=NULL) { mvtkmprbasedata->Configure(); @@ -325,7 +359,9 @@ void wxMaracasRenderTabbedPanel::addMPROptions() } if (baseView!=NULL) + { baseView ->Configure(); + } if (vtkmpr3Ddataviewer !=NULL) { @@ -336,7 +372,10 @@ void wxMaracasRenderTabbedPanel::addMPROptions() { mwxvtkmpr3Dview ->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer); mwxvtkmpr3Dview ->Configure(); - mwxvtkmpr3Dview ->ResetCamera(ext,org,spc); +//EED 27/05/2013 + mwxvtkmpr3Dview ->GetWxvtk3Dbaseview()->ResetCamera(ext ,spc); + vtkInteractorStyleBaseView* vtkInteractorBV = (vtkInteractorStyleBaseView*)mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetInteractorStyleBaseView(); + vtkInteractorBV->AddParentToReport(this); } int id = 4; @@ -435,7 +474,45 @@ void wxMaracasRenderTabbedPanel::addRemoveActorSC(int id, bool addremove) diag->ShowModal(); delete diag; } -} +} + +void wxMaracasRenderTabbedPanel::addRemoveActorMPR(bool addremove) +{ + int id = 4; + wxtabs->SetSelection(id); + if(addremove) + { + wxtabs->GetPage(id)->Enable(); + 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(); + } else { + wxtabs->GetPage(id)->Disable(); + mwxvtkmpr3Dview->VisiblePointWidget(false); + mwxvtkmpr3Dview->VisiblePlaneWidget(false); + mwxvtkmpr3Dview->VisibleImageActor(0, false ); + mwxvtkmpr3Dview->VisibleImageActor(1, false ); + mwxvtkmpr3Dview->VisibleImageActor(2, false ); + mwxvtkmpr3Dview->showOutlineActor(false); + mwxvtkmpr3Dview->Refresh(); + wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh +//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0 +#if wxMAJOR_VERSION <= 2 + mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1); +#else + mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessWindowEvent(newevent1); +#endif + } // if +} /** @@ -461,7 +538,6 @@ void wxMaracasRenderTabbedPanel::SetValuesPointsFunction(int volid, std::vector< diag->ShowModal(); delete diag; } - } /** @@ -700,10 +776,13 @@ void wxMaracasRenderTabbedPanel::onCheckBoxSCChange(wxCommandEvent& event) **/ void wxMaracasRenderTabbedPanel::onMPROptions(wxCommandEvent& event) { + addRemoveActorMPR(checkboxViewer->IsChecked()); + /* int id = 4; wxtabs->SetSelection(id); if(checkboxViewer->IsChecked()) { + wxtabs->GetPage(id)->Enable(); bool valueX = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleX(); @@ -721,8 +800,6 @@ void wxMaracasRenderTabbedPanel::onMPROptions(wxCommandEvent& event) mwxvtkmpr3Dview->Refresh(); - wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh - mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1); } else @@ -739,7 +816,21 @@ void wxMaracasRenderTabbedPanel::onMPROptions(wxCommandEvent& event) wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1); - } + }*/ +} + + +void wxMaracasRenderTabbedPanel::OnRefreshView(wxCommandEvent & event) +{ + printf("CPR wxMaracasRenderTabbedPanel::OnRefreshView \n"); + mwxvtkmpr3Dview->RefreshView(); + wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh +//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0 +#if wxMAJOR_VERSION <= 2 + mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1); +#else + mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessWindowEvent(newevent1); +#endif } /** @@ -766,20 +857,20 @@ void wxMaracasRenderTabbedPanel::onOpenCutter(wxCommandEvent& event) vtkImageData* img = getVolImage(); std::vector type; type.push_back(5); - type.push_back(0); type.push_back(1); - type.push_back(3); + type.push_back(2); + type.push_back(0); 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 = CutModel2MainPanel::getInstance(dialog1->getinternalPanel(), path); + /**std::string path = crea::System::GetDllAppPath("bbcreaMaracasVisu.dll"); + cutter = CutModelMainPanel::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(); } @@ -834,4 +925,4 @@ vtkImageData* wxMaracasRenderTabbedPanel::getSurfCImage() int wxMaracasRenderTabbedPanel::getPropIdV() { return _id; -} \ No newline at end of file +}