Program: wxMaracas
Module: $RCSfile: wxMaracas_N_ViewersWidget.cxx,v $
Language: C++
- Date: $Date: 2009/04/01 16:16:59 $
- Version: $Revision: 1.5 $
+ Date: $Date: 2009/06/05 06:07:39 $
+ Version: $Revision: 1.10 $
Copyright: (c) 2002, 2003
License:
wxMaracas_N_ViewersWidget::wxMaracas_N_ViewersWidget(wxWindow *parent, vtkImageData* imagedata, std::vector<int> *nTypeView)
: wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL)
{
- wxwindow1 = NULL;
- wxwindow2 = NULL;
- wxwindow3 = NULL;
- wxwindow4 = NULL;
- currentwxwindow = NULL;
-
+ wxwindow1 = NULL;
+ wxwindow2 = NULL;
+ wxwindow3 = NULL;
+ wxwindow4 = NULL;
+ _currentwxw = NULL;
+ mvtkmprbasedata = NULL;
+
wxSizer *sizer = new wxBoxSizer(wxVERTICAL);
this->SetSizer(sizer);
this->SetAutoLayout(true);
wxMaracas_N_ViewersWidget::~wxMaracas_N_ViewersWidget()
{
-
+ if (mvtkmprbasedata!=NULL)
+ {
+ delete mvtkmprbasedata;
+ }
+
}
//------------------------------------------------------------------------------------------------------------
// Methods
}
void wxMaracas_N_ViewersWidget::RefreshView()
- {
+ {
if (wxwindow1!=NULL) {wxwindow1->RefreshView(); }
if (wxwindow2!=NULL) {wxwindow2->RefreshView(); }
if (wxwindow3!=NULL) {wxwindow3->RefreshView(); }
}
//-------------------------------------------------------------------------
- void wxMaracas_N_ViewersWidget::Refresh(bool eraseBackground, const wxRect* rect )
- {
- wxPanel::Refresh(false);
- }
+ void wxMaracas_N_ViewersWidget::Refresh(bool eraseBackground, const wxRect* rect )
+ {
+ wxPanel::Refresh(false);
+ }
- void wxMaracas_N_ViewersWidget::UpdateLayout(vtkImageData* imagedata){
+ //-------------------------------------------------------------------------
+ void wxMaracas_N_ViewersWidget::UpdateLayout(vtkImageData* imagedata)
+ {
wxWindow *wxwindow = NULL;
- wxSizer *sizer = this->GetSizer();
-
- if(currentwxwindow!=NULL){
- currentwxwindow->Show(false);
+ wxSizer *sizer = this->GetSizer();
+
+ if (mvtkmprbasedata!=NULL)
+ {
+ delete mvtkmprbasedata;
+ }
+
+ marImageData *marimagedata = new marImageData( imagedata );
+ mvtkmprbasedata = new vtkMPRBaseData();
+ mvtkmprbasedata->SetMarImageData(marimagedata);
+
+ if(_currentwxw != NULL){
+ _currentwxw->Show(false);
+ delete _currentwxw;
//sizer->Remove(currentwxwindow);
//delete currentwxwindow;
}
//std::cout<<"size "<<nTypeView->size()<<std::endl;
if (nTypeView->size()==1)
{
+ wxwindow1 = new wxMaracas_ViewerWidget(this, imagedata, (*nTypeView)[0],mvtkmprbasedata);
- std::cout<<"type "<<(*nTypeView)[0]<<std::endl;
- wxwindow1 = new wxMaracas_ViewerWidget(this, imagedata, (*nTypeView)[0]);
wxwindow1->ConfigureVTK();
wxwindow = wxwindow1;
}else if (nTypeView->size()==2) {
-
-
wxSplitterWindow *spliter = new wxSplitterWindow( this , -1);
- wxwindow1 = new wxMaracas_ViewerWidget(spliter, imagedata, (*nTypeView)[0]);
- wxwindow2 = new wxMaracas_ViewerWidget(spliter, imagedata, (*nTypeView)[1]);
+ spliter->SetMinimumPaneSize(1);
+ wxwindow1 = new wxMaracas_ViewerWidget(spliter, imagedata, (*nTypeView)[0],mvtkmprbasedata);
+ wxwindow2 = new wxMaracas_ViewerWidget(spliter, imagedata, (*nTypeView)[1],mvtkmprbasedata);
wxwindow1->ConfigureVTK();
wxwindow2->ConfigureVTK();
spliter -> SplitVertically( wxwindow1 , wxwindow2 );
{
wxSplitterWindow *spliter = new wxSplitterWindow( this , -1);
wxSplitterWindow *spliterA = new wxSplitterWindow( spliter , -1);
- wxwindow1 = new wxMaracas_ViewerWidget(spliter , imagedata, (*nTypeView)[0]);
- wxwindow2 = new wxMaracas_ViewerWidget(spliterA, imagedata, (*nTypeView)[1]);
- wxwindow3 = new wxMaracas_ViewerWidget(spliterA, imagedata, (*nTypeView)[2]);
+ spliter->SetMinimumPaneSize(1);
+ spliterA->SetMinimumPaneSize(1);
+ wxwindow1 = new wxMaracas_ViewerWidget(spliter , imagedata, (*nTypeView)[0],mvtkmprbasedata);
+ wxwindow2 = new wxMaracas_ViewerWidget(spliterA, imagedata, (*nTypeView)[1],mvtkmprbasedata);
+ wxwindow3 = new wxMaracas_ViewerWidget(spliterA, imagedata, (*nTypeView)[2],mvtkmprbasedata);
wxwindow1->ConfigureVTK();
wxwindow2->ConfigureVTK();
wxwindow3->ConfigureVTK();
wxSplitterWindow *spliter = new wxSplitterWindow( this , -1);
wxSplitterWindow *spliterA = new wxSplitterWindow( spliter , -1);
wxSplitterWindow *spliterB = new wxSplitterWindow( spliter , -1);
- wxwindow1 = new wxMaracas_ViewerWidget(spliterA, imagedata, (*nTypeView)[0]);
- wxwindow2 = new wxMaracas_ViewerWidget(spliterA, imagedata, (*nTypeView)[1]);
- wxwindow3 = new wxMaracas_ViewerWidget(spliterB, imagedata, (*nTypeView)[2]);
- wxwindow4 = new wxMaracas_ViewerWidget(spliterB, imagedata, (*nTypeView)[3]);
+ spliter->SetMinimumPaneSize(1);
+ spliterA->SetMinimumPaneSize(1);
+ spliterB->SetMinimumPaneSize(1);
+ wxwindow1 = new wxMaracas_ViewerWidget(spliterA, imagedata, (*nTypeView)[0],mvtkmprbasedata);
+ wxwindow2 = new wxMaracas_ViewerWidget(spliterA, imagedata, (*nTypeView)[1],mvtkmprbasedata);
+ wxwindow3 = new wxMaracas_ViewerWidget(spliterB, imagedata, (*nTypeView)[2],mvtkmprbasedata);
+ wxwindow4 = new wxMaracas_ViewerWidget(spliterB, imagedata, (*nTypeView)[3],mvtkmprbasedata);
wxwindow1->ConfigureVTK();
wxwindow2->ConfigureVTK();
wxwindow3->ConfigureVTK();
//panel->SetDimension()
sizer->Add( wxwindow , 1, wxEXPAND);
sizer->Layout();
- currentwxwindow = wxwindow;
- currentwxwindow->Show(true);
+ _currentwxw = wxwindow;
+ _currentwxw->Show(true);
this->Layout();
this->Refresh();
}
+
+//-----------------------------------------------------------------------------------
void wxMaracas_N_ViewersWidget::SetType(std::vector<int>* type){
nTypeView = type;
}
+
+
+
+//-----------------------------------------------------------------------------------
void wxMaracas_N_ViewersWidget::SetImage( vtkImageData *image )
{
if (wxwindow1!=NULL) {
}
-
+//-----------------------------------------------------------------------------------
double wxMaracas_N_ViewersWidget :: GetX()
{
- return wxwindow1->GetX();
+ return mvtkmprbasedata->GetX();
+// return wxwindow1->GetX();
}
+//-----------------------------------------------------------------------------------
double wxMaracas_N_ViewersWidget :: GetY()
{
- return wxwindow1->GetY();
+ return mvtkmprbasedata->GetY();
+// return wxwindow1->GetY();
}
+//-----------------------------------------------------------------------------------
double wxMaracas_N_ViewersWidget :: GetZ()
{
- return wxwindow1->GetZ();
+ return mvtkmprbasedata->GetZ();
+// return wxwindow1->GetZ();
}
-/*
-double wxMaracas_N_ViewersWidget :: GetZ(int iWin)
- {
- double answerVal = 0.0;
- if (iWin==1)
- {
- answerVal = wxwindow1->GetZ();
- }
- if (iWin==2)
- {
- answerVal = wxwindow2->GetZ();
- }
- if (iWin==3)
- {
- answerVal = wxwindow3->GetZ();
- }
- if (iWin==4)
- {
- answerVal = wxwindow4->GetZ();
- }
- return answerVal;
- }
-*/