+/*# ---------------------------------------------------------------------
+#
+# 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.
+# ------------------------------------------------------------------------ */
+
/*=========================================================================
Program: wxMaracas
Module: $RCSfile: wxMaracas_N_ViewersWidget.cxx,v $
Language: C++
- Date: $Date: 2010/10/23 12:01:32 $
- Version: $Revision: 1.20 $
+ Date: $Date: 2012/11/15 14:14:35 $
+ Version: $Revision: 1.24 $
Copyright: (c) 2002, 2003
License:
wxwindow4 = NULL;
_currentwxw = NULL;
mvtkmprbasedata = NULL;
-
wxSizer *sizer = new wxBoxSizer(wxVERTICAL);
this->SetSizer(sizer);
this->SetAutoLayout(true);
-
-
- if(imagedata!=NULL && nTypeView!=NULL ){
+ if(imagedata!=NULL && nTypeView!=NULL )
+ {
this->SetType(nTypeView);
this->UpdateLayout(imagedata);
}
-
-
}
/**
* @pre A wxWindow* object must be provided as a parent for the viewer and the type of layout for the viewer
void wxMaracas_N_ViewersWidget::RefreshView()
{
-
if (wxwindow1!=NULL) {wxwindow1->RefreshView(); }
if (wxwindow2!=NULL) {wxwindow2->RefreshView(); }
if (wxwindow3!=NULL) {wxwindow3->RefreshView(); }
}else if (nTypeView->size()==2) {
wxSplitterWindow *spliter = new wxSplitterWindow( this , -1);
spliter->SetMinimumPaneSize(1);
+ //RaC Nov2012 Correctly resize internal panels with the window resize event
+ spliter->SetSashGravity(0.5);
wxwindow1 = new wxMaracas_ViewerWidget(spliter, imagedata, (*nTypeView)[0], mvtkmprbasedata);
wxwindow2 = new wxMaracas_ViewerWidget(spliter, imagedata, (*nTypeView)[1], mvtkmprbasedata);
- spliter -> SplitVertically( wxwindow1 , wxwindow2 );
+ spliter -> SplitHorizontally( wxwindow1 , wxwindow2 );
wxwindow = spliter;
}else if (nTypeView->size()==3)
{
wxSplitterWindow *spliterA = new wxSplitterWindow( spliter , -1);
spliter->SetMinimumPaneSize(1);
spliterA->SetMinimumPaneSize(1);
+ //RaC Nov2012 Correctly resize internal panels with the window resize event
+ spliter->SetSashGravity(0.5);
+ spliterA->SetSashGravity(0.5);
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);
spliter->SetMinimumPaneSize(1);
spliterA->SetMinimumPaneSize(1);
spliterB->SetMinimumPaneSize(1);
+ //RaC Nov2012 Correctly resize internal panels with the window resize event
+ spliter->SetSashGravity(0.5);
+ spliterA->SetSashGravity(0.5);
+ spliterB->SetSashGravity(0.5);
spliter -> SplitVertically( spliterA , spliterB );
- wxwindow1 = new wxMaracas_ViewerWidget(spliterA, imagedata, (*nTypeView)[0], mvtkmprbasedata);
- wxwindow2 = new wxMaracas_ViewerWidget(spliterA, imagedata, (*nTypeView)[1], mvtkmprbasedata);
- spliterA-> SplitHorizontally( wxwindow1 , wxwindow2 );
- wxwindow3 = new wxMaracas_ViewerWidget(spliterB, imagedata, (*nTypeView)[2], mvtkmprbasedata);
- wxwindow4 = new wxMaracas_ViewerWidget(spliterB, imagedata, (*nTypeView)[3], mvtkmprbasedata);
- spliterB-> SplitHorizontally( wxwindow3 , wxwindow4 );
+
+
+//EED 21 mars 2012 FLIP probleme ..PLOP..
+// 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);
+// spliterA-> SplitHorizontally( wxwindow1 , wxwindow2 );
+// spliterB-> SplitHorizontally( wxwindow3 , wxwindow4 );
+
+ wxwindow1 = new wxMaracas_ViewerWidget(spliterB, imagedata, (*nTypeView)[0], mvtkmprbasedata);
+ wxwindow2 = new wxMaracas_ViewerWidget(spliterB, imagedata, (*nTypeView)[1], mvtkmprbasedata);
+ wxwindow3 = new wxMaracas_ViewerWidget(spliterA, imagedata, (*nTypeView)[2], mvtkmprbasedata);
+ wxwindow4 = new wxMaracas_ViewerWidget(spliterA, imagedata, (*nTypeView)[3], mvtkmprbasedata);
+ spliterA-> SplitHorizontally( wxwindow3 , wxwindow4 );
+ spliterB-> SplitHorizontally( wxwindow2 , wxwindow1 );
+
wxwindow = spliter;
}
//this->Layout();
//this->Refresh();
-
// I don't undestand how this works and not the opposite ...
if (wxwindow4!=NULL) {wxwindow4->ConfigureVTK(); }
if (wxwindow3!=NULL) {wxwindow3->ConfigureVTK(); }
if (wxwindow2!=NULL) { wxwindow2->SetImage(image); }
if (wxwindow3!=NULL) { wxwindow3->SetImage(image); }
if (wxwindow4!=NULL) { wxwindow4->SetImage(image); }
- ConfigureVTK();
-
+// ConfigureVTK();
}
+
//-----------------------------------------------------------------------------------
void wxMaracas_N_ViewersWidget::ConfigureVTK()
{
// return wxwindow1->GetZ();
}
-void wxMaracas_N_ViewersWidget :: invariant(){
- if(mvtkmprbasedata == 0){
+//-----------------------------------------------------------------------------------
+void wxMaracas_N_ViewersWidget :: invariant()
+{
+ if(mvtkmprbasedata == 0)
+ {
throw "The image has not been set in the viewer";
}
}
-void wxMaracas_N_ViewersWidget::setColorTransferFunction(vtkColorTransferFunction* colortable){
- if (wxwindow1!=NULL) {
+//-----------------------------------------------------------------------------------
+void wxMaracas_N_ViewersWidget::setColorTransferFunction(vtkColorTransferFunction* colortable)
+{
+ if (wxwindow1!=NULL)
+ {
wxwindow1->setColorTransferFunction(colortable);
}
- if (wxwindow2!=NULL) {
+
+ if (wxwindow2!=NULL)
+ {
wxwindow2->setColorTransferFunction(colortable);
}
- if (wxwindow3!=NULL) {
+
+ if (wxwindow3!=NULL)
+ {
wxwindow3->setColorTransferFunction(colortable);
}
- if (wxwindow4!=NULL) {
+
+ if (wxwindow4!=NULL)
+ {
wxwindow4->setColorTransferFunction(colortable);
}
}
-void wxMaracas_N_ViewersWidget::setWindowLevel(double level){
- if (wxwindow1!=NULL) {
- wxwindow1->setWindowLevel(level);
+//-----------------------------------------------------------------------------------
+void wxMaracas_N_ViewersWidget::SetColorWindowLevel(double colorWindow, double colorLevel)
+{
+ if (wxwindow1!=NULL)
+ {
+ wxwindow1->SetColorWindowLevel(colorWindow, colorLevel);
}
- if (wxwindow2!=NULL) {
- wxwindow2->setWindowLevel(level);
+
+ if (wxwindow2!=NULL)
+ {
+ wxwindow2->SetColorWindowLevel(colorWindow, colorLevel);
}
- if (wxwindow3!=NULL) {
- wxwindow3->setWindowLevel(level);
+
+ if (wxwindow3!=NULL)
+ {
+ wxwindow3->SetColorWindowLevel(colorWindow, colorLevel);
}
- if (wxwindow4!=NULL) {
- wxwindow4->setWindowLevel(level);
+
+ if (wxwindow4!=NULL)
+ {
+ wxwindow4->SetColorWindowLevel(colorWindow, colorLevel);
}
+ RefreshView();
}
-void wxMaracas_N_ViewersWidget::setColorLevel(double level){
- if (wxwindow1!=NULL) {
- wxwindow1->setColorLevel(level);
- }
- if (wxwindow2!=NULL) {
- wxwindow2->setColorLevel(level);
- }
- if (wxwindow3!=NULL) {
- wxwindow3->setColorLevel(level);
- }
- if (wxwindow4!=NULL) {
- wxwindow4->setColorLevel(level);
- }
+
+//-----------------------------------------------------------------------------------
+void wxMaracas_N_ViewersWidget::SetInterpolate(bool interpolate)
+{
+ mvtkmprbasedata->SetInterpolate(interpolate);
+ RefreshView();
}
+
+