]> Creatis software - creaMaracasVisu.git/commitdiff
*** empty log message ***
authorperez <perez>
Mon, 30 Nov 2009 20:52:49 +0000 (20:52 +0000)
committerperez <perez>
Mon, 30 Nov 2009 20:52:49 +0000 (20:52 +0000)
29 files changed:
bbtk/src/bbcreaMaracasVisuCutModule2.cxx
bbtk/src/bbcreaMaracasVisuRenderingViewer.cxx
bbtk/src/bbcreaMaracasVisuRenderingViewer.h
bbtk/src/bbcreaMaracasVisuVolumeRendering.cxx
bbtk/src/bbmaracasvisuViewerNV.cxx
bbtk/src/bbmaracasvisuViewerNV.h
lib/maracasVisuLib/src/interface/wxWindows/CMakeLists.txt
lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkMPR3DDataViewer.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxManualTree_MPRWidget.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasDialog_NViewers.cpp [new file with mode: 0644]
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasDialog_NViewers.h [new file with mode: 0644]
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererPanel.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererView.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageManagementPanel.cpp
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageTransformation.cpp
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.cpp
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRendererView.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRendererView.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingProp3D.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_N_ViewersWidget.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_N_ViewersWidget.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_ViewerWidget.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk3DBaseView.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.h

index 99c947b5d0c32f5655700ab1c4df0432d65d4b43..3934593ad6b22f07c496e4e703b8f0fe846bc0c3 100644 (file)
@@ -5,54 +5,51 @@
 namespace bbcreaMaracasVisu
 {
 
-BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,CutModule2)
-BBTK_BLACK_BOX_IMPLEMENTATION(CutModule2,bbtk::WxBlackBox);
-void CutModule2::Process()
-{
-       vtkImageData* img = bbGetInputIn();
-       vtkRenderWindowInteractor* interactor = bbGetInputInteractor();
-       vtkRenderer* render = bbGetInputRenderer();
-
-       if(img != NULL && interactor != NULL && render != NULL && _mainpanel!=NULL){
-
-               if(_currentimage!=img){
-            _currentimage=img;
-                       _mainpanel->setImageData(img);
-               }
+       BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,CutModule2)
+       BBTK_BLACK_BOX_IMPLEMENTATION(CutModule2,bbtk::WxBlackBox);
+       void CutModule2::Process()
+       {
+               vtkImageData* img = bbGetInputIn();
+               vtkRenderWindowInteractor* interactor = bbGetInputInteractor();
+               vtkRenderer* render = bbGetInputRenderer();
+
+               if(img != NULL && interactor != NULL && render != NULL && _mainpanel!=NULL){
+
+                       if(_currentimage!=img){
+                               _currentimage=img;
+                               _mainpanel->setImageData(img);
+                       }
+                       
+                       _mainpanel->setInteractor(interactor);
+                       _mainpanel->setRenderer(render);
+                       bbSetOutputOut(_mainpanel->GetResultImage());
+               }   
+       }
+       void CutModule2::CreateWidget(wxWindow* parent)
+       {
+
+               std::string path = crea::System::GetDllAppPath("bbcreaMaracasVisu.dll");
+               _mainpanel = CutModel2MainPanel::getInstance(parent, path);
                
-               _mainpanel->setInteractor(interactor);
-               _mainpanel->setRenderer(render);
-               bbSetOutputOut(_mainpanel->GetResultImage());
-
-       }   
-  
-}
-void CutModule2::CreateWidget(wxWindow* parent)
-{
-
-       std::string path = crea::System::GetDllAppPath("bbcreaMaracasVisu.dll");
-       _mainpanel = CutModel2MainPanel::getInstance(parent, path);
-       
-   bbSetOutputWidget( _mainpanel); 
-   Process(); 
-  
-}
-void CutModule2::bbUserSetDefaultValues()
-{      
-       _mainpanel = NULL;
-       _currentimage=NULL;
-}
-void CutModule2::bbUserInitializeProcessing()
-{
-       bbSetInputIn(0);
-       bbSetInputInteractor(0);
-       bbSetInputRenderer(0);  
-}
-void CutModule2::bbUserFinalizeProcessing()
-{
-
-}
+          bbSetOutputWidget( _mainpanel); 
+          Process(); 
+         
+       }
+       void CutModule2::bbUserSetDefaultValues()
+       {       
+               _mainpanel = NULL;
+               _currentimage=NULL;
+       }
+       void CutModule2::bbUserInitializeProcessing()
+       {
+               bbSetInputIn(0);
+               bbSetInputInteractor(0);
+               bbSetInputRenderer(0);  
+       }
+       void CutModule2::bbUserFinalizeProcessing()
+       {
+
+       }
 }
 // EO namespace bbcreaMaracasVisu
 
index 53293741f7e4dcc5c39c5e1b4574bf7033ff350d..3882bc6074542c34a0ae553dc150759c3391af8a 100644 (file)
@@ -16,13 +16,13 @@ void RenderingViewer::Process()
        vtkImageData* _img2 = bbGetInputIn2();
        vtkImageData* _img3 = bbGetInputIn3();
        vtkImageData* _img4 = bbGetInputIn4(); 
+
        vtkRenderer* renderer = bbGetInputRenderer();
-       //vtkRenderer* rendererSA = bbGetInputRendererSA();
-       //vtkRenderer* rendererSB = bbGetInputRendererSB();
-       //vtkRenderer* rendererSC = bbGetInputRendererSC();
 
        if(view != NULL)
        {
+               view->setVtkBaseView( (wxVtk3DBaseView*) bbGetInputwxVtkBaseView() );
+
                if(renderer != NULL && _currentrenderer != renderer)
                {
                        view->setRenderer(renderer);
index cfa444931c8c664dfff134b344ae5ffbde44c1d5..e6451b33a91d91123bd828687b4818b69f6fdcd8 100644 (file)
@@ -5,8 +5,9 @@
 #include "bbtkWxBlackBox.h"
 
 #include "vtkImageData.h"
-//#include "vtkRenderer.h"
 #include "vtkProp3D.h"
+#include "vtkRenderer.h"
+#include "wxVtkBaseView.h"
 
 namespace bbcreaMaracasVisu
 {
@@ -18,9 +19,7 @@ class bbcreaMaracasVisu_EXPORT RenderingViewer
   BBTK_BLACK_BOX_INTERFACE(RenderingViewer,bbtk::WxBlackBox);
   //BBTK_DECLARE_INPUT(Title,std::string); 
   BBTK_DECLARE_INPUT(Renderer,vtkRenderer*);
-  //BBTK_DECLARE_INPUT(RendererSA,vtkRenderer*);
-  //BBTK_DECLARE_INPUT(RendererSB,vtkRenderer*);
-  //BBTK_DECLARE_INPUT(RendererSC,vtkRenderer*);
+  BBTK_DECLARE_INPUT(wxVtkBaseView,wxVtkBaseView*);
   BBTK_DECLARE_INPUT(In1,vtkImageData*);
   BBTK_DECLARE_INPUT(In2,vtkImageData*);
   BBTK_DECLARE_INPUT(In3,vtkImageData*);
@@ -46,6 +45,7 @@ BBTK_DESCRIPTION("Complex box which gathers VolumeRendering and SurfaceRendering
 BBTK_CATEGORY("__CategoryBlackBox__");
 //BBTK_INPUT(RenderingViewer,Title,"Title prepended to the text",std::string,"");
 BBTK_INPUT(RenderingViewer,Renderer,"Renderer to show volume rendering image" ,vtkRenderer*, "");
+BBTK_INPUT(RenderingViewer,wxVtkBaseView,"wxVtkBaseView",wxVtkBaseView*,"");
 //BBTK_INPUT(RenderingViewer,RendererSA,"Renderer to show surface rendering image" ,vtkRenderer*, "");
 //BBTK_INPUT(RenderingViewer,RendererSB,"Renderer to show surface rendering image" ,vtkRenderer*, "");
 //BBTK_INPUT(RenderingViewer,RendererSC,"Renderer to show surface rendering image" ,vtkRenderer*, "");
index dd5d70a07ec3d37ac9eb037e781a22e25498a4d7..f804e323a9192673fb808980c63e5ef0a24de0a4 100644 (file)
@@ -96,3 +96,4 @@ namespace bbcreaMaracasVisu
 }
 // EO namespace bbcreaMaracasVisu
 
+
index dcb478c6fffb92f570b8c12bb185e1f1fd4d76c7..695ef941decee4d56ba3110468a1898fcce59ad4 100644 (file)
@@ -68,7 +68,8 @@ void ViewerNV::Process()
 //     std::cout<<"img "<<img<<std::endl;
 //     std::cout<<"widget "<<mwxwidget<<std::endl;
        
-       if(img != NULL && mwxwidget != NULL){// && !enter){
+//     if(img != NULL && mwxwidget != NULL){// && !enter){
+       if( mwxwidget != NULL){// && !enter){
                
                if(!compareVectors(type, currenttype)){
                        mwxwidget->SetType(&type);
@@ -77,6 +78,10 @@ void ViewerNV::Process()
                        mwxwidget->SetImage(img);
                        //mwxwidget->UpdateLayout(img);
                }
+
+               mwxwidget->ConfigureVTK();
+               mwxwidget->RefreshView();
+
                currenttype = type;
                currentimg = img;
                
@@ -114,6 +119,7 @@ void ViewerNV::Process()
                if(bbGetInputWindowLevel()!=-1){
             mwxwidget->setWindowLevel(bbGetInputWindowLevel());
                }
+
                if(bbGetInputColorLevel()!=-1){
                        if(bbGetInputColorLevel() == 0){
                                std::cout<<"colorlevel "<<bbGetInputColorLevel()<<std::endl;
@@ -122,7 +128,8 @@ void ViewerNV::Process()
                                mwxwidget->setColorLevel(bbGetInputColorLevel());
                        }
                }
-       }       
+
+       }//  mwxwidget != NULL
 }
 
 //-------------------------------------------------------------
index ec3aa26d634009a67debf7079e7e58959920014e..58958b4bdb3bfa17ff6fcd3f20ae73cbe6c48536 100644 (file)
@@ -82,7 +82,7 @@ BBTK_DESCRIPTION("Viewer : N view configuration 2D and 3D");
   BBTK_CATEGORY("viewer");
   BBTK_INPUT(ViewerNV,Title,"Title prepended to the text",std::string,"");
        BBTK_INPUT(ViewerNV,In,"Input image",vtkImageData*,"");
-       BBTK_INPUT(ViewerNV,nTypeView,"vector of viewer types (default 5 0 1 3 ): -1=Z_2DwithOutAxis 0=Z_2D 1=X_2D 2=Y_2D 3=Plane 4=Sphere 5=3D 6=3Dplane",std::vector<int>,"");
+       BBTK_INPUT(ViewerNV,nTypeView,"vector of viewer types (default 5 0 1 3 ): -1=Z_2DwithOutAxis 0=Z_2D 1=X_2D 2=Y_2D 3=Plane 4=Sphere 5=3D 6=3Dplane 7=3D_empty",std::vector<int>,"");
        BBTK_INPUT(ViewerNV,ColorFunction,"Optional: set a different color for the viewers 2D",vtkColorTransferFunction*,"");
        BBTK_INPUT(ViewerNV,WindowLevel,"Optional: set a different Window level by using an other widget",int,"");
        BBTK_INPUT(ViewerNV,ColorLevel,"Optional: set a different Color level by using an other widget",int,"");
index 6ca18f66ead44f02dbfb8cd24ed291aff3db9bf6..29cc1aac33d93b0c3ad1bace90484fc9fa1f4753 100644 (file)
@@ -481,3 +481,5 @@ ENDIF(WIN32)
 SUBDIRS(widgets)
 
 
+
+
index 8c369ffc6a05c636920e149108988607deb0cd9b..3e3642d66ed466ce74f6f86e3ce486c739c58047 100644 (file)
@@ -337,5 +337,4 @@ void vtkMPR3DDataViewer::setColorTransferFunction(vtkColorTransferFunction* colo
        _saggitalColors->SetLookupTable(colortable);
         _coronalColors->SetLookupTable(colortable);
        _axialColors->SetLookupTable(colortable);
-}
-
+}
\ No newline at end of file
index 8143f0e4c2867cb5a01f54e96ecb1ac7f6b879cf..61063ce9c6e61efef087362f5def7d229cf9d7f7 100644 (file)
@@ -3,8 +3,8 @@
   Program:   wxMaracas
   Module:    $RCSfile: wxMPRWidget.cxx,v $
   Language:  C++
-  Date:      $Date: 2009/05/14 13:54:35 $
-  Version:   $Revision: 1.14 $
+  Date:      $Date: 2009/11/30 20:52:50 $
+  Version:   $Revision: 1.15 $
 
   Copyright: (c) 2002, 2003
   License:
@@ -375,7 +375,7 @@ wxPanel* wxMPRWidget::CreateView(int type,wxWindow *parent, vtkMPRBaseData *vtkm
                _wxvtkmpr3Dview_B->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
 
                wxWindow        *window3D                       = _wxvtk3Dbaseview_MPR3D_B->GetWxVTKRenderWindowInteractor();
-               wxPanel         *controlPanel3D         = _wxvtkmpr3Dview_B->CreateControlPanel(panelMPR3D);
+               wxPanel         *controlPanel3D         = _wxvtkmpr3Dview_B->CreateControlPanel(panelMPR3D, false);
 
 //EEDxx2.4
                panelMPR3D      -> SetMinimumPaneSize( 5 );
@@ -404,7 +404,7 @@ wxPanel* wxMPRWidget::CreateView(int type,wxWindow *parent, vtkMPRBaseData *vtkm
                wxWindow        *window3D                                       = _wxvtk3Dbaseview_Clipping3D_BB->GetWxVTKRenderWindowInteractor();
 
                wxPanel                 *panelControl                   = new wxPanel(panelClipping3D,-1);      
-               wxPanel                 *controlPanelMPR3D              = _wxvtkmpr3Dview_BB->CreateControlPanel(panelControl);
+               wxPanel                 *controlPanelMPR3D              = _wxvtkmpr3Dview_BB->CreateControlPanel(panelControl, false);
                wxPanel                 *controlPanelClipping3D = _wxvtkclipping3Dview_BB->CreateControlPanel(panelControl);
                                 _btnCutImageData               = new wxCheckBox(panelControl,-1,_T("Cut Module"));
                Connect(_btnCutImageData->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED  , (wxObjectEventFunction) &wxMPRWidget::OnCutImagaData );
@@ -530,7 +530,7 @@ wxPanel* wxMPRWidget::CreateMPRPanel4View(wxWindow *parent, vtkMPRBaseData *vtkm
        wxWindow        *window3D                               = _wxvtk3Dbaseview_MPRClipping3D->GetWxVTKRenderWindowInteractor();
 
        wxPanel         *panelControl                   = new wxPanel(panelMPR3D,-1);
-       wxPanel         *controlPanelMPR3D              = _wxvtkmpr3Dview->CreateControlPanel(panelControl);
+       wxPanel         *controlPanelMPR3D              = _wxvtkmpr3Dview->CreateControlPanel(panelControl, false);
        wxPanel         *controlPanelClipping3D = _wxvtkclipping3Dview->CreateControlPanel(panelControl);
 
 
index 71279b87fe238898d39ac36ffce5444c0140b85a..d27baa5a5052d1793b0b54d7fc034416f84dddf5 100644 (file)
@@ -3,8 +3,8 @@
   Program:   wxMaracas
   Module:    $RCSfile: wxManualTree_MPRWidget.cxx,v $
   Language:  C++
-  Date:      $Date: 2009/05/14 13:54:35 $
-  Version:   $Revision: 1.2 $
+  Date:      $Date: 2009/11/30 20:55:40 $
+  Version:   $Revision: 1.3 $
 
   Copyright: (c) 2002, 2003
   License:
@@ -99,7 +99,7 @@ wxPanel* wxManualTree_MPRWidget::Create3DViewContour( wxWindow *parent, vtkMPRBa
        wxWindow        *window3D                               = _wxvtk3Dbaseview_Clipping3D_C->GetWxVTKRenderWindowInteractor();
 
        wxPanel         *panelControl                   = new wxPanel(panelClipping3D,-1);      
-       wxPanel         *controlPanelMPR3D              = _wxvtkmpr3Dview_C->CreateControlPanel(panelControl);
+       wxPanel         *controlPanelMPR3D              = _wxvtkmpr3Dview_C->CreateControlPanel(panelControl, false);
        wxPanel         *controlPanelClipping3D = _wxvtkclipping3Dview_C->CreateControlPanel(panelControl);
 
 //     wxBoxSizer  *sizerCtrol             = new wxBoxSizer(wxVERTICAL);
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasDialog_NViewers.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasDialog_NViewers.cpp
new file mode 100644 (file)
index 0000000..586cedc
--- /dev/null
@@ -0,0 +1,58 @@
+#include "wxMaracasDialog_NViewers.h"
+//#include <wx/frame.h> 
+#include <wx/sizer.h> 
+
+
+BEGIN_EVENT_TABLE( wxMaracasDialog_NViewers, wxFrame )
+       EVT_MENU( 12121, wxMaracasDialog_NViewers::OnRefreshView )
+       EVT_MENU( 12122, wxMaracasDialog_NViewers::OnDClickLeft )
+END_EVENT_TABLE( );
+
+/**
+** Class constructor
+**/
+wxMaracasDialog_NViewers::wxMaracasDialog_NViewers(wxWindow* parent, vtkImageData* img, std::vector<int>* type, wxString title)
+: wxFrame(parent, -1, title)
+{
+       viewer = new wxMaracas_N_ViewersWidget(this, img, type);
+       wxFlexGridSizer* sizer = new wxFlexGridSizer(1);
+
+       sizer->Add(viewer, 1, wxGROW);
+       this->SetSizer( sizer, true );          
+       this->SetAutoLayout( true );
+       //viewer->SetSize(wxSizer(wxFIXED_MINSIZE));
+}
+
+/**
+** Class destructor
+**/
+wxMaracasDialog_NViewers::~wxMaracasDialog_NViewers(){ 
+}
+
+/**
+** Adds a new panel to the frame
+**/
+void wxMaracasDialog_NViewers::AddPanel(wxPanel panel)
+{
+       wxFlexGridSizer* sizer = new wxFlexGridSizer(1);
+
+       //this->AddChild(panel);
+       //sizer->Add(panel, wxFIXED_MINSIZE);
+       this->SetSizer( sizer, true );          
+       this->SetAutoLayout( true );
+}
+
+void wxMaracasDialog_NViewers::OnRefreshView(wxCommandEvent & event)
+{
+       point.clear();
+       point.push_back((int)viewer->GetX());
+       point.push_back((int)viewer->GetY());
+       point.push_back((int)viewer->GetZ());
+
+       viewer->OnRefreshView(event);
+}
+
+void wxMaracasDialog_NViewers::OnDClickLeft(wxCommandEvent & event)
+{
+       viewer->OnDClickLeft(event);
+}
\ No newline at end of file
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasDialog_NViewers.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasDialog_NViewers.h
new file mode 100644 (file)
index 0000000..e6f1164
--- /dev/null
@@ -0,0 +1,24 @@
+#include "vtkImageData.h"
+#include "wxMaracas_N_ViewersWidget.h"
+#include <wx/wx.h>
+#include <vector>
+
+/**
+** Class constructor
+**/
+class wxMaracasDialog_NViewers : public wxFrame{
+
+       public:
+               wxMaracasDialog_NViewers(wxWindow* parent, vtkImageData* img, std::vector<int>* type, wxString title);
+               ~wxMaracasDialog_NViewers();
+               void OnRefreshView(wxCommandEvent & event);
+               void OnDClickLeft(wxCommandEvent & event);
+               void AddPanel(wxPanel panel);
+
+       private:
+               wxMaracas_N_ViewersWidget* viewer;
+               std::vector<int> point;
+       
+       DECLARE_EVENT_TABLE( );
+
+};
\ No newline at end of file
index d509fd9f42f8fbb65f60398006d095f494639570..6c7d66f4d19db194a4bbc621b2c8a398b0fe122e 100644 (file)
@@ -1,5 +1,6 @@
 #include "wxMaracasMultipleVolumeRendererPanel.h"
 #include "wxMaracasMultipleVolumeRendererView.h"
+#include "wxMaracasDialog_NViewers.h"
 #include "wxMaracasRendererView.h"
 
 #include <wx/colordlg.h>
@@ -205,26 +206,19 @@ void wxMaracasMultipleVolumeRendererPanel::onColorChange(wxCommandEvent& event){
 **/
 void wxMaracasMultipleVolumeRendererPanel::onViewImage(wxCommandEvent& event)
 {      
-       printf("wxMaracasMultipleVolumeRendererPanel->onViewImage: Test View Image /n");
-       vtkImageData* img = (wxMaracasRendererView::getInstance())->getTabbedPanel(_propid)->getVolImage();
-       /*wxMaracasDialog_NViewers* dialog = new wxMaracasDialog_NViewers(this);
-
-       std::vector<int> type;
-       std::vector<int> point;
-
-       type.push_back(6);
-       dialog->SetImage(  );
-       dialog->SetType(type);
-
-       point.clear();
-       point.push_back((int)dialog->GetX());
-       point.push_back((int)dialog->GetY());
-       point.push_back((int)dialog->GetZ());
-
-       wxVtkBaseView *wvbv1 = dialog->GetwxVtkBaseView(1);
-       wxVtkBaseView *wvbv2 = dialog->GetwxVtkBaseView(2);
-       wxVtkBaseView *wvbv3 = dialog->GetwxVtkBaseView(3);
-       wxVtkBaseView *wvbv4 = dialog->GetwxVtkBaseView(4);*/
+       vtkImageData* img;
+       if(this->isComplexBox){
+               img = (wxMaracasRendererView::getInstance())->getTabbedPanel(_propid)->getVolImage();   
+               std::vector<int> type;
+               type.push_back(6);
+
+               wxMaracasDialog_NViewers* dialog1 = new wxMaracasDialog_NViewers(this, img, &type, wxString(_T("Volume Visualization") ));
+               dialog1->SetSize(wxDefaultSize);
+               dialog1->Show();
+       }
+       else{   
+               //vtkImageData* img = wxMaracasMultipleVolumeRendererView::getInstance()->getVolImage();
+       }
 }
 
 /**
index dc3ee24af95088b0b22099c955a05040fe8a3587..69019df5745457498692e8ad3036959054f7c86b 100644 (file)
@@ -3,8 +3,8 @@
   Program:   wxMaracas
   Module:    $RCSfile: wxMaracasMultipleVolumeRendererView.cxx,v $
   Language:  C++
-  Date:      $Date: 2009/11/20 17:09:05 $
-  Version:   $Revision: 1.9 $
+  Date:      $Date: 2009/11/30 20:52:50 $
+  Version:   $Revision: 1.10 $
 
   Copyright: (c) 2002, 2003
   License:
@@ -23,7 +23,7 @@
 
 
 #include <wx/colordlg.h>
-#include <wx/bmpbuttn.h>
+#include <wx/bmpbuttn.h> 
 
 #include <OpenImage.xpm>
 #include <Color.xpm>
index 99b01109b261483d8a7ef4fe7446302cc4db4139..51cb07eaa799d3d7c4cce058d713d5a2c529397f 100644 (file)
@@ -23,63 +23,63 @@ void wxMaracasRenderImageManagementPanel::createControls()
        wxStaticText* tx = new wxStaticText(this, -1, wxString(_T("  Translate X  ")));
        sliderTranslateX = new wxSlider(this, -1, 0, -200, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
        sliderTranslateX->SetLineSize(1);
-       Connect(sliderTranslateX->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
+       Connect(sliderTranslateX->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
        sizersliders->Add(tx, wxFIXED_MINSIZE);
        sizersliders->Add(sliderTranslateX,wxSizerFlags().Expand().Center());
 
        wxStaticText* ty = new wxStaticText(this, -1, wxString(_T("  Translate Y  ")));
        sliderTranslateY = new wxSlider(this, -1, 0, -200, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
        sliderTranslateY->SetLineSize(1);
-       Connect(sliderTranslateY->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
+       Connect(sliderTranslateY->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
        sizersliders->Add(ty, wxFIXED_MINSIZE);
        sizersliders->Add(sliderTranslateY,wxSizerFlags().Expand().Center());
 
        wxStaticText* tz = new wxStaticText(this, -1, wxString(_T("  Translate Z  ")));
        sliderTranslateZ = new wxSlider(this, -1, 0, -200, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
        sliderTranslateZ->SetLineSize(1);
-       Connect(sliderTranslateZ->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
+       Connect(sliderTranslateZ->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
        sizersliders->Add(tz, wxFIXED_MINSIZE);
        sizersliders->Add(sliderTranslateZ,wxSizerFlags().Expand().Center());
 
        wxStaticText* rx = new wxStaticText(this, -1, wxString(_T("  Rotate X  ")));
        sliderRotateX = new wxSlider(this, -1, 0, -360, 360, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
        sliderRotateX->SetLineSize(1);
-       Connect(sliderRotateX->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
+       Connect(sliderRotateX->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
        sizersliders->Add(rx, wxFIXED_MINSIZE);
        sizersliders->Add(sliderRotateX,wxSizerFlags().Expand().Center());
 
        wxStaticText* ry = new wxStaticText(this, -1, wxString(_T("  Rotate Y  ")));
        sliderRotateY = new wxSlider(this, -1, 0, -360, 360, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
        sliderRotateY->SetLineSize(1);
-       Connect(sliderRotateY->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
+       Connect(sliderRotateY->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
        sizersliders->Add(ry, wxFIXED_MINSIZE);
        sizersliders->Add(sliderRotateY,wxSizerFlags().Expand().Center());
 
        wxStaticText* rz = new wxStaticText(this, -1, wxString(_T("  Rotate Z  ")));
        sliderRotateZ = new wxSlider(this, -1, 0, -360, 360, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
        sliderRotateZ->SetLineSize(1);
-       Connect(sliderRotateZ->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
+       Connect(sliderRotateZ->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
        sizersliders->Add(rz, wxFIXED_MINSIZE);
        sizersliders->Add(sliderRotateZ,wxSizerFlags().Expand().Center());
 
        wxStaticText* sx = new wxStaticText(this, -1, wxString(_T("  Scale X  ")));
        sliderScaleX = new wxSlider(this, -1, 100, 1, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
        sliderScaleX->SetLineSize(1);
-       Connect(sliderScaleX->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
+       Connect(sliderScaleX->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
        sizersliders->Add(sx, wxFIXED_MINSIZE);
        sizersliders->Add(sliderScaleX,wxSizerFlags().Expand().Center());
 
        wxStaticText* sy = new wxStaticText(this, -1, wxString(_T("  Scale Y  ")));
        sliderScaleY = new wxSlider(this, -1, 100, 1, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
        sliderScaleY->SetLineSize(1);
-       Connect(sliderScaleY->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
+       Connect(sliderScaleY->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
        sizersliders->Add(sy, wxFIXED_MINSIZE);
        sizersliders->Add(sliderScaleY,wxSizerFlags().Expand().Center());
 
        wxStaticText* sz = new wxStaticText(this, -1, wxString(_T("  Scale Z  ")));
        sliderScaleZ = new wxSlider(this, -1, 100, 1, 200, wxDefaultPosition, this->GetSize(), wxSL_LABELS);
        sliderScaleZ->SetLineSize(1);
-       Connect(sliderScaleZ->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
+       Connect(sliderScaleZ->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
        sizersliders->Add(sz, wxFIXED_MINSIZE);
        sizersliders->Add(sliderScaleZ,wxSizerFlags().Expand().Center());
        
index 587ace66686c7d1cdcad2e3c1c222427d227b50d..e2dad9083971c7133493d83373ae27261262034b 100644 (file)
@@ -51,25 +51,25 @@ void wxMaracasRenderImageTransformation::Translate(int tx, int ty, int tz, int r
        transformS2->Identity();
        transformS3->Identity();
 
-       transformV->Translate( tx/*volspX*/, ty/*volspY*/, tz/*volspZ*/ );
-       transformS1->Translate( tx/*surfspX*/, ty/*surfspY*/, tz/*surfspZ*/ );
-       transformS2->Translate( tx/*surfspX*/, ty/*surfspY*/, tz/*surfspZ*/ );
-       transformS3->Translate( tx/*surfspX*/, ty/*surfspY*/, tz/*surfspZ*/ );
-
-       transformV->RotateX( rx/*volspX*/ );
-       transformS1->RotateX( rx/*surfspX*/ );
-       transformS2->RotateX( rx/*surfspX*/ );
-       transformS3->RotateX( rx/*surfspX*/ );
-
-       transformV->RotateY( ry/*volspY*/ );
-       transformS1->RotateY( ry/*surfspY*/ );
-       transformS2->RotateY( ry/*surfspY*/ );
-       transformS3->RotateY( ry/*surfspY*/ );
-
-       transformV->RotateZ( rz/*volspZ*/ );
-       transformS1->RotateZ( rz/*surfspZ*/ );
-       transformS2->RotateZ( rz/*surfspZ*/ );
-       transformS3->RotateZ( rz/*surfspZ*/ );
+       transformV->Translate( tx*volspX, ty*volspY, tz*volspZ );
+       transformS1->Translate( tx*surfspX, ty*surfspY, tz*surfspZ );
+       transformS2->Translate( tx*surfspX, ty*surfspY, tz*surfspZ );
+       transformS3->Translate( tx*surfspX, ty*surfspY, tz*surfspZ );
+
+       transformV->RotateX( rx*volspX );
+       transformS1->RotateX( rx*surfspX );
+       transformS2->RotateX( rx*surfspX );
+       transformS3->RotateX( rx*surfspX );
+
+       transformV->RotateY( ry*volspY );
+       transformS1->RotateY( ry*surfspY );
+       transformS2->RotateY( ry*surfspY );
+       transformS3->RotateY( ry*surfspY );
+
+       transformV->RotateZ( rz*volspZ );
+       transformS1->RotateZ( rz*surfspZ );
+       transformS2->RotateZ( rz*surfspZ );
+       transformS3->RotateZ( rz*surfspZ );
 
        transformV->Scale( (sx/100.0), (sy/100.0), (sz/100.0) );
        transformS1->Scale( (sx/100.0), (sy/100.0), (sz/100.0) );
@@ -80,22 +80,6 @@ void wxMaracasRenderImageTransformation::Translate(int tx, int ty, int tz, int r
 }
 
 
-/**
-** Scales a volume by the given value for the X axis
-*
-void wxMaracasRenderImageTransformation::Scale(int x, int y, int z)
-{
-       float resultX = x/100.0;
-       float resultY = y/100.0;
-       float resultZ = z/100.0;
-
-       //printf("wxMaracasRenderImageManagementPanel::Rotate int:scaleX = %d \n",x);
-       //printf("wxMaracasRenderImageManagementPanel::Rotate int:scaleY = %d \n", y);
-       //printf("wxMaracasRenderImageManagementPanel::Rotate int:scaleZ = %d \n", z);
-
-       Refresh();
-}*/
-
 /**
 ** Updates each Matrix
 **/
index 106f2a5d40c61e886a9a4c0754b0884674eae613..414d660457c238c15199755903562a620d53f2c9 100644 (file)
@@ -5,23 +5,26 @@
 #include "wxMaracasSurfaceRenderingPanel.h"
 #include "wxMaracasSurfaceRenderingProp3DMHD.h"
 #include "wxMaracasMultipleVolumeRendererManagerData.h"
+#include "wxMaracasDialog_NViewers.h"
 
 #include <wx/colordlg.h>
 #include <wx/button.h> 
 
 #include <OpenImage.xpm>
 #include "Color.xpm"
+#include "creaSystem.h"
 
 #include <vtkProp3D.h>
+#include "wxVtkMPR3DViewCntrlPanel.h"
 
 /**
 ** Class constructor
 **/
-wxMaracasRenderTabbedPanel::wxMaracasRenderTabbedPanel(wxWindow* parent, int id)
+wxMaracasRenderTabbedPanel::wxMaracasRenderTabbedPanel(wxWindow* parent, int id, wxVtk3DBaseView* _baseView)
 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize)
 {
        _id = id;
-
+       baseView = _baseView;
        dialog = NULL;
 
        volmanager = new wxMaracasMultipleVolumeRendererManager();
@@ -40,6 +43,7 @@ wxMaracasRenderTabbedPanel::~wxMaracasRenderTabbedPanel()
        //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSB(_propid, false);
        //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSC(_propid, false);
        this->deleteVolume(_id);
+       delete dialog;
        delete wxtabs;  
 }
 
@@ -50,7 +54,7 @@ void wxMaracasRenderTabbedPanel::createControls(vtkImageData* inImg, std::string
 {
        wxFlexGridSizer* sizerrenderprop = new wxFlexGridSizer(1);
 
-       wxFlexGridSizer* sizercheck = new wxFlexGridSizer(2);
+       wxFlexGridSizer* sizercheck = new wxFlexGridSizer(3);
        checkboxVol = new  wxCheckBox(this,-1,wxString(_T("Volume Rendering")));
        Connect(checkboxVol->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxVChange);   
        checkboxVol->SetValue(true);    
@@ -61,15 +65,22 @@ void wxMaracasRenderTabbedPanel::createControls(vtkImageData* inImg, std::string
        checkboxSA->SetValue(true);     
        sizercheck->Add(checkboxSA, wxFIXED_MINSIZE);   
 
+       checkboxViewer = new  wxCheckBox(this,-1,wxString(_T("MPR")));
+       Connect(checkboxViewer->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onMPROptions);     
+       checkboxViewer->SetValue(false);
+       sizercheck->Add(checkboxViewer, wxFIXED_MINSIZE);
+
        checkboxSB = new  wxCheckBox(this,-1,wxString(_T("Surface Rendering B")));
        Connect(checkboxSB->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSBChange);   
-       checkboxSB->SetValue(true);     
+       checkboxSB->SetValue(false);    
        sizercheck->Add(checkboxSB, wxFIXED_MINSIZE);
 
        checkboxSC = new  wxCheckBox(this,-1,wxString(_T("Surface Rendering C")));
        Connect(checkboxSC->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSCChange);   
-       checkboxSC->SetValue(true);     
+       checkboxSC->SetValue(false);    
        sizercheck->Add(checkboxSC, wxFIXED_MINSIZE);
+       
+       sizercheck->Add(new wxStaticText(this, -1,_T("")), wxFIXED_MINSIZE);
 
        wxButton* _openParameters = new wxButton(this, -1, wxString(_T("Apply Transformation")));       
        Connect(_openParameters->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onOpenParameters);                  
@@ -94,6 +105,7 @@ void wxMaracasRenderTabbedPanel::createControls(vtkImageData* inImg, std::string
                        addSurface1(img, filename);
                        addSurface2(img, filename);
                        addSurface3(img, filename);     
+                       addMPROptions();
                        volname = (wxString) filename;
                        wxtabs->Refresh();
                }
@@ -189,6 +201,7 @@ void wxMaracasRenderTabbedPanel::addSurface2(vtkImageData* img, std::string data
                        int maxiso = surrendmanager2->getMaxIsoValue(_propidSB);
                        ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSB)->createControls(maxiso);
                        wxtabs->AddPage(controlpanSB, _T("SR B"));
+                       wxtabs->GetPage(2)->Disable();
 
                }
        }
@@ -216,6 +229,7 @@ void wxMaracasRenderTabbedPanel::addSurface3(vtkImageData* img, std::string data
                        int maxiso = surrendmanager3->getMaxIsoValue(_propidSC);
                        ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSC)->createControls(maxiso);
                        wxtabs->AddPage(controlpanSC, _T("SR C"));
+                       wxtabs->GetPage(3)->Disable();
                }
        }
        catch(char* str)
@@ -227,6 +241,99 @@ 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;
+
+       vtkMPRBaseData* mvtkmprbasedata = new vtkMPRBaseData(); 
+       marImageData* marimagedata              = new marImageData( getVolImage() );                    
+       mvtkmprbasedata->SetMarImageData(marimagedata);
+       
+       mwxvtkmpr3Dview                                 = new wxVtkMPR3DView( baseView );
+
+       vtkmpr3Ddataviewer                              = new vtkMPR3DDataViewer();     
+
+       wxPanel         *panelControl           = new wxPanel(wxtabs,-1);       
+       controlPanelMPR3D                               = mwxvtkmpr3Dview->CreateControlPanel(panelControl, true);
+
+       wxFlexGridSizer  *sizerCtrol    = new wxFlexGridSizer(1);
+       sizerCtrol->Add(controlPanelMPR3D, 1, wxALL|wxEXPAND, 2);
+
+       panelControl->SetAutoLayout(true);
+       panelControl->SetSizer(sizerCtrol);
+       panelControl->SetSize(400,350);
+       panelControl->Layout();
+
+
+       if (mvtkmprbasedata!=NULL)
+       {
+               mvtkmprbasedata->Configure();
+               /*x = mvtkmprbasedata   ->      GetMaxPositionX()/2;
+               y = mvtkmprbasedata     ->      GetMaxPositionY()/2;
+               z = mvtkmprbasedata     ->      GetMaxPositionZ()/2;            */      
+               
+               if(mvtkmprbasedata->GetImageData() != NULL)
+               {
+                       mvtkmprbasedata->GetImageData()->GetExtent(ext);
+                       mvtkmprbasedata->GetImageData()->GetOrigin(org);
+                       mvtkmprbasedata->GetImageData()->GetSpacing(spc);
+
+                       x = (ext[0]+ext[1])/2;
+                       y = (ext[2]+ext[3])/2;
+                       z = (ext[4]+ext[5])/2;
+
+                       mvtkmprbasedata->SetX( x );
+                       mvtkmprbasedata->SetY( y );
+                       mvtkmprbasedata->SetZ( z );
+               }
+               else
+               {
+                       mvtkmprbasedata->SetX( 0 );
+                       mvtkmprbasedata->SetY( 0 );
+                       mvtkmprbasedata->SetZ( 0 );
+               }
+       }
+
+       if (baseView!=NULL)     
+               baseView                        ->Configure();  
+
+       if (vtkmpr3Ddataviewer  !=NULL) 
+       {
+               vtkmpr3Ddataviewer      ->SetVtkMPRBaseData(mvtkmprbasedata);
+               vtkmpr3Ddataviewer      ->Configure();
+       }
+       if (mwxvtkmpr3Dview     !=NULL) 
+       { 
+               mwxvtkmpr3Dview         ->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);            
+               mwxvtkmpr3Dview         ->Configure();
+               mwxvtkmpr3Dview         ->ResetCamera(ext,org,spc);
+       }
+
+       wxtabs->AddPage(panelControl, _T("MPR"));
+       wxtabs->GetPage(4)->Disable();
+       mwxvtkmpr3Dview->showOutlineActor(false);
+       mwxvtkmpr3Dview->Refresh();
+                       
+}
+
 /**
 ** Deletes complete volume
 **/
@@ -255,6 +362,7 @@ void wxMaracasRenderTabbedPanel::addRemoveActorV(int id, bool addremove)
 {
        try{
                volmanager->addRemoveActor(id, addremove);
+
        }
        catch(char* str){
                std::cout << "Exception : " << str << '\n';
@@ -312,6 +420,7 @@ void wxMaracasRenderTabbedPanel::addRemoveActorSC(int id, bool addremove)
        }
 }      
 
+
 /**
 ** Sets color points values for the given volume rendering identified by parameter: volumeid
 **/
@@ -462,7 +571,19 @@ void wxMaracasRenderTabbedPanel::changeColorC(int propid, double red, double gre
 void wxMaracasRenderTabbedPanel::onCheckBoxVChange(wxCommandEvent& event)
 {
        try{
-               volmanager->addRemoveActor(this->getPropIdV(), checkboxVol->GetValue());        
+               volmanager->addRemoveActor(this->getPropIdV(), checkboxVol->GetValue());
+
+               int id = 0;
+               wxtabs->SetSelection(id);
+
+               if(checkboxVol->GetValue())
+               {
+                       wxtabs->GetPage(id)->Enable();
+               }
+               else
+               {       
+                       wxtabs->GetPage(id)->Disable();
+               }
        }
        catch(char* str){
                std::cout << "Exception : " << str << '\n';
@@ -479,6 +600,19 @@ void wxMaracasRenderTabbedPanel::onCheckBoxSAChange(wxCommandEvent& event)
 {      
        try{
                surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSA->GetValue());    
+
+               int id = 1;
+               wxtabs->SetSelection(id);
+
+               if(checkboxSA->GetValue())
+               {
+                       wxtabs->GetPage(id)->Enable();
+
+               }
+               else
+               {       
+                       wxtabs->GetPage(id)->Disable();
+               }
        }
        catch(char* str){
                std::cout << "Exception : " << str << '\n';
@@ -495,6 +629,18 @@ void wxMaracasRenderTabbedPanel::onCheckBoxSBChange(wxCommandEvent& event)
 {      
        try{
                surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSB->GetValue());    
+
+               int id = 2;
+               wxtabs->SetSelection(id);
+
+               if(checkboxSB->GetValue())
+               {
+                       wxtabs->GetPage(id)->Enable();
+               }
+               else
+               {       
+                       wxtabs->GetPage(id)->Disable();
+               }
        }
        catch(char* str){
                std::cout << "Exception : " << str << '\n';
@@ -510,7 +656,19 @@ void wxMaracasRenderTabbedPanel::onCheckBoxSBChange(wxCommandEvent& event)
 void wxMaracasRenderTabbedPanel::onCheckBoxSCChange(wxCommandEvent& event)
 {      
        try{
-               surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());    
+               surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
+
+               int id = 3;
+               wxtabs->SetSelection(id);
+
+               if(checkboxSC->GetValue())
+               {
+                       wxtabs->GetPage(id)->Enable();
+               }
+               else
+               {       
+                       wxtabs->GetPage(id)->Disable();
+               }
        }
        catch(char* str){
                std::cout << "Exception : " << str << '\n';
@@ -521,7 +679,47 @@ void wxMaracasRenderTabbedPanel::onCheckBoxSCChange(wxCommandEvent& event)
 }
 
 /**
-**
+** Method called when MPR checkbox status changes: Either shows or hides actors
+**/
+void wxMaracasRenderTabbedPanel::onMPROptions(wxCommandEvent& event)
+{
+       int id = 4;
+       wxtabs->SetSelection(id);
+       if(checkboxViewer->IsChecked())
+       {
+               wxtabs->GetPage(id)->Enable();
+
+               bool valueX = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleX();
+               bool valueY = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleY();
+               bool valueZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleZ();
+
+               mwxvtkmpr3Dview->VisibleImageActor( 0, valueX );
+               mwxvtkmpr3Dview->VisibleImageActor( 1, valueY );
+               mwxvtkmpr3Dview->VisibleImageActor( 2, valueZ );
+               mwxvtkmpr3Dview->showOutlineActor(true);
+               mwxvtkmpr3Dview->Refresh();
+
+               wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
+               mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
+
+       }
+       else
+       {
+               wxtabs->GetPage(id)->Disable();
+
+               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
+               mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
+       }
+}
+
+/**
+** 
 **/
 void wxMaracasRenderTabbedPanel::onOpenParameters(wxCommandEvent& event){      
        if(dialog == NULL)
@@ -536,6 +734,28 @@ void wxMaracasRenderTabbedPanel::onOpenParameters(wxCommandEvent& event){
        }
 }
 
+/**
+**
+**/
+void wxMaracasRenderTabbedPanel::onOpenCutter(wxCommandEvent& event)
+{      
+       vtkImageData* img = getVolImage();      
+       std::vector<int> type;
+       type.push_back(5);
+       type.push_back(0);
+       type.push_back(1);
+       type.push_back(3);
+       
+       wxMaracasDialog_NViewers* dialog1 = new wxMaracasDialog_NViewers(this, img, &type, wxString(_T("Cut Module") ));
+       //dialog1->SetSize(800, 700);
+       
+       std::string path = crea::System::GetDllAppPath("bbcreaMaracasVisu.dll");
+       //cutter = new CutModel2MainPanel(dialog1, path);
+       
+       //dialog1->AddPanel(cutter);
+       dialog1->Show();
+}
+
 /**
 ** Gets volume rendering image asociated to the given ID
 **/
@@ -581,14 +801,6 @@ vtkImageData* wxMaracasRenderTabbedPanel::getSurfCImage()
        return surrendmanager3->getImageData();
 }
 
-/**
-**
-**/
-void wxMaracasRenderTabbedPanel::onOpenCutter(wxCommandEvent& event)
-{      
-       
-}
-
 /**
 **
 **/
index 20159b05157ecc41dcd27955d7b3e5d3ebac07d3..14411e98be7d3376049e9ac5609473b2ca974a52 100644 (file)
@@ -3,18 +3,20 @@
 
 #include <wx/wx.h>
 #include <wx/notebook.h> 
-#include "wxMaracasRenderImageManagementPanel.h"
 
+#include "wxMaracasRenderImageManagementPanel.h"
+//#include "CutModelMainPanel.h"
 #include "wxMaracasMultipleVolumeRendererManager.h"
 #include "wxMaracasSurfaceRenderingManager.h"
-
+#include "wxVtkBaseView.h"
+#include "wxMPRWidget.h"
 
 
 class wxMaracasRenderTabbedPanel : public wxPanel
 {
        
 public:
-       wxMaracasRenderTabbedPanel(wxWindow* parent, int id);
+       wxMaracasRenderTabbedPanel(wxWindow* parent, int id, wxVtk3DBaseView* _baseView);
        ~wxMaracasRenderTabbedPanel();
 
        void createControls(vtkImageData* inImg, std::string pathfile, std::string filename);
@@ -30,6 +32,7 @@ public:
        void addRemoveActorSA(int id, bool addremove);
        void addRemoveActorSB(int id, bool addremove);
        void addRemoveActorSC(int id, bool addremove);
+       void addMPROptions();
 
        // ----- Volume rendering functions ----- //
        void SetValuesColorPointsFunction(int volid, std::vector<double> greylevelcolors,std::vector<double> red,std::vector<double> green,std::vector<double> blue);
@@ -52,6 +55,7 @@ public:
        void onCheckBoxSAChange(wxCommandEvent& event);
        void onCheckBoxSBChange(wxCommandEvent& event);
        void onCheckBoxSCChange(wxCommandEvent& event);
+       void onMPROptions(wxCommandEvent& event);
 
        void onOpenParameters(wxCommandEvent& event);
        void onColorChange(wxCommandEvent& event);
@@ -69,21 +73,26 @@ private:
        wxCheckBox* checkboxSA;
        wxCheckBox* checkboxSB;
        wxCheckBox* checkboxSC;
+       wxCheckBox* checkboxViewer;
        //wxBitmapButton* _viewimage;
 
        wxNotebook* wxtabs;
-       wxMaracasRenderImageManagementPanel* dialog;
+       wxString        volname;
+       
+       wxVtk3DBaseView*        baseView;
+       wxVtkMPR3DView*         mwxvtkmpr3Dview;
+       vtkMPR3DDataViewer* vtkmpr3Ddataviewer;
+       wxPanel*                        controlPanelMPR3D;
 
        bool first;
-
-       wxMaracasMultipleVolumeRendererManager* volmanager;
-       wxMaracasSurfaceRenderingManager* surrendmanager1;
-       wxMaracasSurfaceRenderingManager* surrendmanager2;
-       wxMaracasSurfaceRenderingManager* surrendmanager3;
-
        int _id;
 
-       wxString volname;
+       //CutModel2MainPanel* cutter;
+       wxMaracasRenderImageManagementPanel*    dialog;
+       wxMaracasMultipleVolumeRendererManager* volmanager;
+       wxMaracasSurfaceRenderingManager*               surrendmanager1;
+       wxMaracasSurfaceRenderingManager*               surrendmanager2;
+       wxMaracasSurfaceRenderingManager*               surrendmanager3;
 };
 
 #endif /*wxMaracasMultipleVolumeRendererPanel_H_*/
index a786294da881208d53df4de3ead6388e777df961..8f7c5aaf766cc1acc998b92043f5c8ab65b20721 100644 (file)
@@ -98,6 +98,11 @@ void wxMaracasRendererView::setRenderer(vtkRenderer* renderer)
        _renderer = renderer;
 }
 
+void wxMaracasRendererView::setVtkBaseView(wxVtk3DBaseView* vbv)
+{
+       baseView = vbv;
+}
+
 /**
 ** Called when an image file is opened
 **/
@@ -143,7 +148,7 @@ void wxMaracasRendererView::addPanels(wxMaracasRenderTabbedPanel* wxtabs, vtkIma
 **/
 void wxMaracasRendererView::addVolumes(vtkImageData* img, std::string pathfile, std::string filename)
 {
-       wxMaracasRenderTabbedPanel* wxtabs = new wxMaracasRenderTabbedPanel(this, _idCount);
+       wxMaracasRenderTabbedPanel* wxtabs = new wxMaracasRenderTabbedPanel(this, _idCount, baseView);
        wxtabs->setRenderer(_renderer);
 
        tabsVector.push_back(wxtabs);
index 1031d5f8c9e3b2390cbbfff956cc4ea46d20a70d..fed3eeeb365020db9db4ad3ed5d37cb178fde010 100644 (file)
@@ -15,6 +15,7 @@
 #include <iostream>
 #include "marTypes.h"
 #include "vtkProp3D.h"
+#include "wxVtkBaseView.h"
 
 #include "wxMaracasRendererView.h"
 #include "wxMaracasRenderTabbedPanel.h"
@@ -37,6 +38,7 @@ public:
        wxMaracasRenderTabbedPanel* getTabbedPanel(int id) throw(char*);
 
        void setRenderer(vtkRenderer*  renderer); /* throw(char*), */   // JPR
+       void setVtkBaseView(wxVtk3DBaseView* base);
        void onLoadImageFile();
        void addVolumes(vtkImageData* img, std::string pathfile, std::string filename);
        void addPanels(wxMaracasRenderTabbedPanel* wxtabs, vtkImageData* img, std::string pathfile, std::string filename);
@@ -59,6 +61,7 @@ private:
        wxToolBar * _toolb;
 
        vtkRenderer*  _renderer;
+       wxVtk3DBaseView* baseView;
        std::string _path;
 
        int _idCount;
index efcf931303e7ea0193ca5487668a941c8cf8ac34..a0c99108b6315434a3e8fede3e36737b7203cac2 100644 (file)
@@ -1,4 +1,5 @@
 #include "wxMaracasSurfaceRenderingProp3D.h"
+#include "wxMaracasDialog_NViewers.h"
 
 #include <wx/colordlg.h>
 #include "wxMaracasSurfaceRendering.h"
@@ -159,8 +160,23 @@ void wxMaracasSurfaceRenderingProp3D::onOpacityRelease(wxScrollEvent& event ){
 ** Loads the volume in a separate window
 **/
 void wxMaracasSurfaceRenderingProp3D::onViewImage(wxCommandEvent& event){      
-       printf("wxMaracasSurfaceRenderingProp3D->onViewImage: Test View Image \n");
-       vtkImageData* image = ((wxMaracasRendererView::getInstance())->getTabbedPanel(this->_propid))->getVolImage();
-
+       vtkImageData* img;
+       if(this->isComplexBox){
+               if(this->getPanId() == 1)
+                       img = (wxMaracasRendererView::getInstance())->getTabbedPanel(_propid)->getSurfAImage();
+               if(this->getPanId() == 2)
+                       img = (wxMaracasRendererView::getInstance())->getTabbedPanel(_propid)->getSurfBImage();
+               if(this->getPanId() == 3)
+                       img = (wxMaracasRendererView::getInstance())->getTabbedPanel(_propid)->getSurfCImage();
                
+               std::vector<int> type;
+               type.push_back(6);
+
+               wxMaracasDialog_NViewers* dialog1 = new wxMaracasDialog_NViewers(this, img, &type, wxString(_T("Volume Visualization") ));
+               dialog1->SetSize(730, 700);
+               dialog1->Show();
+       }
+       else{   
+               //vtkImageData* img = wxMaracasMultipleVolumeRendererView::getInstance()->getVolImage();
+       }
 }
\ No newline at end of file
index 1c5c0e55a71aa3f2efd45ee621646bcde7df4ca8..fbaee8e43f7769532d6663eb2065fe1294460365 100644 (file)
@@ -3,8 +3,8 @@
   Program:   wxMaracas
   Module:    $RCSfile: wxMaracas_N_ViewersWidget.cxx,v $
   Language:  C++
-  Date:      $Date: 2009/09/15 11:25:07 $
-  Version:   $Revision: 1.12 $
+  Date:      $Date: 2009/11/30 20:52:51 $
+  Version:   $Revision: 1.13 $
 
   Copyright: (c) 2002, 2003
   License:
 //-----------------------------------------------------------------------------------
  void wxMaracas_N_ViewersWidget::SetImage( vtkImageData *image )
  {
-        if (wxwindow1!=NULL) { 
-                
-               wxwindow1->SetImage(image); 
-       }
+        if (wxwindow1!=NULL) { wxwindow1->SetImage(image); }
         if (wxwindow2!=NULL) { wxwindow2->SetImage(image); } 
         if (wxwindow3!=NULL) { wxwindow3->SetImage(image); }
         if (wxwindow4!=NULL) { wxwindow4->SetImage(image); }
+ }
 
-
+//-----------------------------------------------------------------------------------
+ void wxMaracas_N_ViewersWidget::ConfigureVTK()
+ {
+        if (wxwindow1!=NULL) { wxwindow1->ConfigureVTK(); }
+        if (wxwindow2!=NULL) { wxwindow2->ConfigureVTK(); }
+        if (wxwindow3!=NULL) { wxwindow3->ConfigureVTK(); }
+        if (wxwindow4!=NULL) { wxwindow4->ConfigureVTK(); }
  }
 
 //-----------------------------------------------------------------------------------
index 1907c155b418bdb265eaf42382d460d224257f7e..0a624e7620da2c0aae763504b2e8879d8811b7b9 100644 (file)
@@ -3,8 +3,8 @@
   Program:   wxMaracas
   Module:    $RCSfile: wxMaracas_N_ViewersWidget.h,v $
   Language:  C++
-  Date:      $Date: 2009/09/15 11:25:07 $
-  Version:   $Revision: 1.8 $
+  Date:      $Date: 2009/11/30 20:52:51 $
+  Version:   $Revision: 1.9 $
 
   Copyright: (c) 2002, 2003
   License:
@@ -71,6 +71,7 @@ class creaMaracasVisu_EXPORT wxMaracas_N_ViewersWidget : public wxPanel
        wxVtkBaseView *GetwxVtkBaseView(int iWin);
        virtual void Refresh(bool eraseBackground = true,const wxRect* rect = NULL );
        void SetImage( vtkImageData *image      );
+       void ConfigureVTK();
        void SetType(std::vector<int>* type);
        void UpdateLayout(vtkImageData* imagedata);
 //     double GetZ(int iWin);
index 5ce146c0a516ffb69bdb4e22e990abb273df0fef..ad0572976e277b80db4349fcc4f765a6deab230e 100644 (file)
@@ -3,8 +3,8 @@
   Program:   wxMaracas
   Module:    $RCSfile: wxMaracas_ViewerWidget.cxx,v $
   Language:  C++
-  Date:      $Date: 2009/11/25 16:35:38 $
-  Version:   $Revision: 1.19 $
+  Date:      $Date: 2009/11/30 20:52:51 $
+  Version:   $Revision: 1.20 $
 
   Copyright: (c) 2002, 2003
   License:
                        wxWindow        *window3D                                       = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
 
                        wxPanel                 *panelControl                   = new wxPanel(panelClipping3D,-1);      
-                       wxPanel                 *controlPanelMPR3D              = mwxvtkmpr3Dview->CreateControlPanel(panelControl);
+                       wxPanel                 *controlPanelMPR3D              = mwxvtkmpr3Dview->CreateControlPanel(panelControl, false);
                        wxPanel                 *controlPanelClipping3D = mwxvtkclipping3Dview->CreateControlPanel(panelControl);
        //                               mbtnCutImageData               = new wxCheckBox(panelControl,-1,_T("Cut Module"));
        //              Connect(_btnCutImageData->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED  , (wxObjectEventFunction) &wxMPRWidget::OnCutImagaData );
                        wxWindow        *window3D                                       = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
 
                        wxPanel                 *panelControl                   = new wxPanel(panelClipping3D,-1);      
-                       wxPanel                 *controlPanelMPR3D              = mwxvtkmpr3Dview->CreateControlPanel(panelControl);
+                       wxPanel                 *controlPanelMPR3D              = mwxvtkmpr3Dview->CreateControlPanel(panelControl, false);
 
                        wxFlexGridSizer  *sizerCtrol             = new wxFlexGridSizer(1);
                        sizerCtrol->Add(controlPanelMPR3D               , 1, wxALL|wxEXPAND, 2);
                        
                }
 
+               if (type==7)
+               {
+                       mwxvtk3Dbaseview_Clipping3D                             = new wxVtk3DBaseView( panel );
+                       wxWindow        *window3D                                       = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
+                       wxwindow=window3D;
+
+/*Borrame
+                       wxSplitterWindow        *panelClipping3D        = new wxSplitterWindow( panel , -1);
+                       mwxvtk3Dbaseview_Clipping3D                             = new wxVtk3DBaseView( panelClipping3D );
+                       wxWindow        *window3D                                       = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
+                       panelClipping3D ->SetMinimumPaneSize( 5 );
+                       panelClipping3D ->SplitHorizontally( new wxPanel(panelClipping3D,-1) , window3D , 10  );
+                       wxwindow=panelClipping3D;
+*/
 
+/*Borrame
+                       wxSplitterWindow        *panelClipping3D        = new wxSplitterWindow( panel , -1);
+                       mwxvtk3Dbaseview_Clipping3D                             = new wxVtk3DBaseView( panelClipping3D );
+                       mwxvtkmpr3Dview                                                 = new wxVtkMPR3DView( mwxvtk3Dbaseview_Clipping3D );
+                       vtkmpr3Ddataviewer      = new vtkMPR3DDataViewer();     
+                       wxWindow        *window3D                                       = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
+                       wxPanel                 *panelControl                   = new wxPanel(panelClipping3D,-1);      
+                       wxPanel                 *controlPanelMPR3D              = mwxvtkmpr3Dview->CreateControlPanel(panelControl);
+                       wxFlexGridSizer  *sizerCtrol             = new wxFlexGridSizer(1);
+                       sizerCtrol->Add(controlPanelMPR3D               , 1, wxALL|wxEXPAND, 2);
+                       panelControl->SetAutoLayout(true);
+                       panelControl->SetSizer(sizerCtrol);
+                       panelControl->SetSize(400,350);
+                       panelControl->Layout();
+                       panelClipping3D -> SetMinimumPaneSize( 5 );
+                       panelClipping3D -> SplitHorizontally( panelControl , window3D , 10  );
+                       wxwindow=panelClipping3D;
+                       vtkmpr3Ddataviewer->SetVtkMPRBaseData(mvtkmprbasedata);                 
+                       //vtkmpr3Ddataviewer->Configure();
+                       mwxvtkmpr3Dview->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
+*/
+               }
 
+   
        wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
        sizer->Add( wxwindow , 1, wxGROW);      
        panel->SetSizer(sizer);
                        /*x = mvtkmprbasedata   ->      GetMaxPositionX()/2;
                        y = mvtkmprbasedata     ->      GetMaxPositionY()/2;
                        z = mvtkmprbasedata     ->      GetMaxPositionZ()/2;            */      
-
-                       mvtkmprbasedata->GetImageData()->GetExtent(ext);
-                       mvtkmprbasedata->GetImageData()->GetOrigin(org);
-                       mvtkmprbasedata->GetImageData()->GetSpacing(spc);
-
-                       x = (ext[0]+ext[1])/2;
-                       y = (ext[2]+ext[3])/2;
-                       z = (ext[4]+ext[5])/2;
-
-                       mvtkmprbasedata->SetX( x );
-                       mvtkmprbasedata->SetY( y );
-                       mvtkmprbasedata->SetZ( z );
-
+                       
+                       if(mvtkmprbasedata->GetImageData() != NULL)
+                       {
+                               mvtkmprbasedata->GetImageData()->GetExtent(ext);
+                               mvtkmprbasedata->GetImageData()->GetOrigin(org);
+                               mvtkmprbasedata->GetImageData()->GetSpacing(spc);
+
+                               x = (ext[0]+ext[1])/2;
+                               y = (ext[2]+ext[3])/2;
+                               z = (ext[4]+ext[5])/2;
+
+                               mvtkmprbasedata->SetX( x );
+                               mvtkmprbasedata->SetY( y );
+                               mvtkmprbasedata->SetZ( z );
+                       }
+                       else
+                       {
+                               mvtkmprbasedata->SetX( 0 );
+                               mvtkmprbasedata->SetY( 0 );
+                               mvtkmprbasedata->SetZ( 0 );
+                       }
                }
                
 
                if ( mwidgetMesure                              !=NULL ) { mwidgetMesure                                ->      SetMesureScale( 1 );            }
                if ( mwxsphereview                              !=NULL ) { mwxsphereview                                ->      Configure();                            }
 
-               if (mwxvtk3Dbaseview_Clipping3D !=NULL) { mwxvtk3Dbaseview_Clipping3D   ->      Configure();                            }
+               printf("CPR wxMaracas_ViewerWidget::ConfigureVTK A \n");
+               if (mwxvtk3Dbaseview_Clipping3D !=NULL) { mwxvtk3Dbaseview_Clipping3D   ->      Configure();                            
+               printf("CPR wxMaracas_ViewerWidget::ConfigureVTK B \n");
+/*Borrame
+               mwxvtk3Dbaseview_Clipping3D->GetRenderer()->SetActiveCamera(mwxvtk3Dbaseview_Clipping3D->GetCamera());
+               mwxvtk3Dbaseview_Clipping3D->GetRenderer()->ResetCamera ();     
+               mwxvtk3Dbaseview_Clipping3D->GetCamera()->Dolly(1.5);   
+               mwxvtk3Dbaseview_Clipping3D->GetRenderer()->SetBackground( 0.36 , 0.36 , 0.36 );
+               mwxvtk3Dbaseview_Clipping3D->GetRenWin()->SetSize(400, 400);
+               mwxvtk3Dbaseview_Clipping3D->GetRenderer()->ResetCameraClippingRange();
+*/
+               }
                
                if (vtkmpr3Ddataviewer                  !=NULL) {                       
                        vtkmpr3Ddataviewer->Configure();
 
                if (mwxvtkclipping3Dview                !=NULL) { mwxvtkclipping3Dview                  ->      Configure();                            }
                
-
                
 
                
 
        void wxMaracas_ViewerWidget::SetImage( vtkImageData *image      )
        {
-               marImageData* mar = mvtkmprbasedata->GetMarImageData();
-               mar->removeImageData(0);
-               mar->AddImageData(image);
-
-               ConfigureVTK();
-               RefreshView();
-
-
+               if(mvtkmprbasedata !=NULL)
+               {
+                       marImageData* mar = mvtkmprbasedata->GetMarImageData();
+                       mar->removeImageData(0);
+                       mar->AddImageData(image);
+               }
 
+//EED 26/11/2009
+//             ConfigureVTK();
+//             RefreshView();
        }
 
        double wxMaracas_ViewerWidget :: GetX()
        {
-               return mvtkmprbasedata->GetX();
+               double value = -1;
+               if(mvtkmprbasedata !=NULL)
+               {
+                       value = mvtkmprbasedata->GetX();
+               }
+               return value;
        }
 
        double wxMaracas_ViewerWidget :: GetY()
        {
-               return mvtkmprbasedata->GetY();
+               double value = -1;
+               if(mvtkmprbasedata !=NULL)
+               {
+                       value = mvtkmprbasedata->GetY();
+               }
+               return value;
        }
 
        double wxMaracas_ViewerWidget :: GetZ()
        {
-               return mvtkmprbasedata->GetZ();
+               double value = -1;
+               if(mvtkmprbasedata !=NULL)
+               {
+                       value = mvtkmprbasedata->GetZ();
+               }
+               return value;
 //             return mvtk2Dbaseview->GetVtkBaseData()->GetZ();
        }
 
index 94fe0f7e575d330549851e1d5e73d4d7bf56c42f..3722c50fc2a985278d3031e1a6fa9c57ce0134f8 100644 (file)
@@ -14,6 +14,7 @@ wxVtk3DBaseView::wxVtk3DBaseView(wxWindow *parent)
 //-------------------------------------------------------------------
 wxVtk3DBaseView::~wxVtk3DBaseView()
 {
+
        if (_aCamera!=NULL)     { _aCamera              -> Delete(); _aCamera=NULL;}
        if (_aRenderer!=NULL)   { _aRenderer    -> Delete(); _aRenderer=NULL;}
        if (_renWin!=NULL)      { 
@@ -47,8 +48,10 @@ void wxVtk3DBaseView::Refresh()
 //-------------------------------------------------------------------
 void wxVtk3DBaseView::Configure()
 {
+       printf("EED wxVtk3DBaseView::Configure A\n");
        if (_configure==false)
        {
+       printf("EED wxVtk3DBaseView::Configure B\n");
                _configure=true;
                //wxVtkBaseView::Configure();
                _aRenderer      = vtkRenderer::New();
index d6e88bbe5598dabd95916bf14c98b12135ec3278..1893f326b8bbe9d2e0eaf2f6c93a54ac882c4da4 100644 (file)
@@ -247,9 +247,9 @@ void wxVtkMPR3DView::RefreshView()   // virtual
        _planeWidget->GetPolyData(_vtkplane);
 }
 //-------------------------------------------------------------------
-wxPanel* wxVtkMPR3DView::CreateControlPanel(wxWindow *parent)
+wxPanel* wxVtkMPR3DView::CreateControlPanel(wxWindow *parent, bool align)
 {
-       _wxvtkmpr3DviewCntrlPanel = new wxVtkMPR3DViewCntrlPanel(parent,this);
+       _wxvtkmpr3DviewCntrlPanel = new wxVtkMPR3DViewCntrlPanel(parent,this, align);
        return _wxvtkmpr3DviewCntrlPanel;
 }
 //-------------------------------------------------------------------
@@ -269,6 +269,14 @@ wxVtk3DBaseView* wxVtkMPR3DView::GetWxvtk3Dbaseview() throw (char*)
 
 //-------------------------------------------------------------------
 void wxVtkMPR3DView::VisibleImageActor(int idPosition, bool visible){
+       /*if(visible == false)
+               printf("CPR: wxVtkMPR3DView::VisibleImageActor-> visibleActor == false \n");
+       else
+       {
+               printf("CPR: wxVtkMPR3DView::VisibleImageActor-> visibleActor == true\n");
+               printf("CPR: wxVtkMPR3DView::VisibleImageActor-> idPosition == %d\n", idPosition);
+       }
+       */
        if (visible!=_vtkmpr3Ddataviewer->GetVisiblePosition(idPosition)){
                if (visible==false){
                        _wxvtk3Dbaseview->GetRenderer()->RemoveActor( _vtkmpr3Ddataviewer->GetImageActor(idPosition)  );        
@@ -305,6 +313,20 @@ void wxVtkMPR3DView::VisiblePlaneWidget( bool visible )
        }
 }
 
+//CPR: Method added 30 Nov 2009
+void wxVtkMPR3DView::showOutlineActor(bool value)
+{
+       vtkActor* _outlineActor = _vtkmpr3Ddataviewer->GetOutlineActor();
+       if(value == true)
+       {
+               _wxvtk3Dbaseview->GetRenderer()->AddActor( _outlineActor );     
+       }
+       else
+       {
+               _wxvtk3Dbaseview->GetRenderer()->RemoveActor( _outlineActor );  
+       }
+}
+
 //-------------------------------------------------------------------
 void wxVtkMPR3DView::SetVtkMPR3DDataViewer(vtkMPR3DDataViewer *vtkmpr3Ddataviewer)
 {
index a704ac86dee78013f66c229a27dc74e20d6ac727..9367785ee7b35b939e6baff0e3e1ea0d07e80d1e 100644 (file)
@@ -28,12 +28,13 @@ public:
        virtual void            RefreshView();
        virtual void            Configure();
        void                            SetVtkMPR3DDataViewer( vtkMPR3DDataViewer *vtkmpr3Ddataviewer );
-       wxPanel*                        CreateControlPanel(wxWindow *parent);
+       wxPanel*                        CreateControlPanel(wxWindow *parent, bool align);
 
        vtkMPR3DDataViewer* GetVtkMPR3DDataViewer();
        wxVtk3DBaseView*        GetWxvtk3Dbaseview() throw (char*);
 
        void                            InitOrientationPointWidget(); 
+       void                            showOutlineActor(bool value);
 
        // EED 25 Janvier 2007 testLoic
        void                            TestLoic1();
index 7e8d4a65ff467d24f38d578a976da6b343cee1b6..04ebd6ce39f1485ff7293bd1dce9a942404419b9 100644 (file)
@@ -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,59 +60,88 @@ 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);
+       //EED 28 sep 2006
+       //      wxFlexGridSizer *sizerH6 = new wxFlexGridSizer(10);
+       //      wxFlexGridSizer *sizerH7 = new wxFlexGridSizer(10);
 
-//     sizerH5->Add( ckBoxY            , 1, wxALL|wxEXPAND, 0);
-//     sizerH5->Add( new wxStaticText(panel, -1,"  ")                  , 1, wxALL|wxEXPAND, 0);
-//     sizerH5->Add( _positionY        , 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);
 
-//     sizerH6->Add( ckBoxZ            , 1, wxALL|wxEXPAND, 0);
-//     sizerH6->Add( new wxStaticText(panel, -1,"  ")                  , 1, wxALL|wxEXPAND, 0);
-//     sizerH6->Add( _positionZ        , 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);
 
-//     sizerH7->Add( _ckBoxXYZ         , 1, wxALL|wxEXPAND, 0);
-//     sizerH7->Add( _ckBoxPlane       , 1, wxALL|wxEXPAND, 0);
+       //      sizerH6->Add( ckBoxZ            , 1, wxALL|wxEXPAND, 0);
+       //      sizerH6->Add( new wxStaticText(panel, -1,"  ")                  , 1, wxALL|wxEXPAND, 0);
+       //      sizerH6->Add( _positionZ        , 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);
+       //      sizerH7->Add( _ckBoxXYZ         , 1, wxALL|wxEXPAND, 0);
+       //      sizerH7->Add( _ckBoxPlane       , 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 );
+       //      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);
 
-       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);
+               
+       //      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);
        panel->SetSizer(sizer);
@@ -190,7 +230,7 @@ int wxVtkMPR3DViewCntrlPanel::GetIdTissue()
 //-------------------------------------------------------------------
 void wxVtkMPR3DViewCntrlPanel::OnEditColorTable(wxCommandEvent& event)
 {
-
+       
        vtkColorTransferFunction *ctfun                 = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetvtkColorTransferFunction(); 
        std::vector<double> *ctfunVectorPoint   = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorPoint();
        std::vector<double> *ctfunVectorRed             = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorRed();
@@ -220,7 +260,7 @@ void wxVtkMPR3DViewCntrlPanel::OnEditColorTable(wxCommandEvent& event)
                                double g        = (*ctfunVectorGreen)[i];
                                double b        = (*ctfunVectorBlue)[i];
                        
-hDlg->addColorPoint(gr,(int)(r*255),(int)(g*255),(int)(b*255));
+                               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{
@@ -320,7 +361,7 @@ void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY(wxCommandEvent& event)
        _wxvtkmpr3Dview->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 +378,7 @@ void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ(wxCommandEvent& event)
 //-------------------------------------------------------------------
 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ(wxCommandEvent& event)
 {
+
        _wxvtkmpr3Dview->VisiblePointWidget(event.IsChecked());
 }
 
@@ -352,6 +394,7 @@ 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 +414,21 @@ 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();
+}
\ No newline at end of file
index 4d5c1edb5868d1f223ed4f214b3a9cf77abccd97..d0ba6a2fe64e6cfba91907bcebf4c340770e7b60 100644 (file)
@@ -10,7 +10,7 @@ class wxVtkMPR3DView;
 class wxVtkMPR3DViewCntrlPanel: public wxPanel
 {
 public:
-       wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DView *wxvtkmpr3Dview);
+       wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DView *wxvtkmpr3Dview, bool align);
        ~wxVtkMPR3DViewCntrlPanel();
        void            OnVisibleAxisX(wxCommandEvent& event);
        void            OnVisibleAxisY(wxCommandEvent& event);
@@ -24,6 +24,10 @@ public:
        virtual void Refresh();
        void            UpdateControlPanel();
 
+       bool            GetVisibleX();
+       bool            GetVisibleY();
+       bool            GetVisibleZ();
+
 private:
        wxVtkMPR3DView  *_wxvtkmpr3Dview;
 
@@ -40,6 +44,11 @@ private:
        wxSlider                *_positionX;
        wxSlider                *_positionY;    
        wxSlider                *_positionZ;
+       
+       //CPR: Added 30 nov 2009
+       wxCheckBox              *ckBoxX;
+       wxCheckBox              *ckBoxY;
+       wxCheckBox              *ckBoxZ;
 
        wxCheckBox              *_ckBoxXYZ;
        wxCheckBox              *_ckBoxPlane;