]> Creatis software - creaMaracasVisu.git/blobdiff - lib/GUI/Qt/VolumeRenderer/qtvolumerendererpanel.cxx
Support #1768 CREATIS Licence insertion
[creaMaracasVisu.git] / lib / GUI / Qt / VolumeRenderer / qtvolumerendererpanel.cxx
index e7badc3de3ffac3fe3da00f4fcd57bb197073c74..acd339609a139cf3f5cde4e31fa9fb1778b4b27b 100644 (file)
@@ -1,14 +1,39 @@
+/*# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+#                        pour la Sant�)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+# Previous Authors : Laurent Guigues, Jean-Pierre Roux
+# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+#
+#  This software is governed by the CeCILL-B license under French law and
+#  abiding by the rules of distribution of free software. You can  use,
+#  modify and/ or redistribute the software under the terms of the CeCILL-B
+#  license as circulated by CEA, CNRS and INRIA at the following URL
+#  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+#  or in the file LICENSE.txt.
+#
+#  As a counterpart to the access to the source code and  rights to copy,
+#  modify and redistribute granted by the license, users are provided only
+#  with a limited warranty  and the software's author,  the holder of the
+#  economic rights,  and the successive licensors  have only  limited
+#  liability.
+#
+#  The fact that you are presently reading this means that you have had
+#  knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------ */
+
 #include "qtvolumerendererpanel.h"
 #include "ui_qtvolumerendererpanel.h"
+#include "qmessagebox.h"
+
+using namespace std;
 
 QtVolumeRendererPanel::QtVolumeRendererPanel(QWidget *parent) :
     QWidget(parent),
     ui(new Ui::QtVolumeRendererPanel)
 {
-    ui->setupUi(this);
-    m_volrenddata = 0;
-    m_ImageData = 0;
-    m_Render = 0;
+    ui->setupUi(this);    
 }
 
 QtVolumeRendererPanel::~QtVolumeRendererPanel()
@@ -17,30 +42,89 @@ QtVolumeRendererPanel::~QtVolumeRendererPanel()
 }
 
 void QtVolumeRendererPanel::on_checkBoxShowVolume_clicked(bool checked)
+{
+    try{
+        ShowVolume(checked);
+        //JCP 27/09/12
+        //on_opacitySlider_valueChanged(this->ui->opacitySlider->value());
+    }catch(char * e){
+        cout<<e<<endl;
+        QMessageBox::critical(this, tr("Volume Rendering"), tr(e), QMessageBox::Ok);
+    }catch(exception e){
+        cout<<e.what()<<endl;
+        QMessageBox::critical(this, tr("Volume Rendering"), tr(e.what()), QMessageBox::Ok);
+    }
+}
+
+
+void QtVolumeRendererPanel::on_opacitySlider_valueChanged(int value)
+{
+    try{        
+        this->ui->lineEditOpacity->setText(QString::number(value));        
+
+        double* range = ImageData->GetScalarRange();
+        vector<double> greylevel;
+        greylevel.push_back(0);  //first grey level
+        //greylevel.push_back(1);
+        greylevel.push_back(10);
+        greylevel.push_back(20);
+        greylevel.push_back(range[1]);
+
+        vector<double> vectvalue;
+        vectvalue.push_back(0);  //first opacity value
+        //vectvalue.push_back(value/100.0);
+        vectvalue.push_back(0);
+        vectvalue.push_back(value/100.0);
+        vectvalue.push_back(value/100.0);
+
+        OpacityChanged(greylevel, vectvalue);
+    }catch(char * e){
+        cout<<e<<endl;
+        QMessageBox::critical(this, tr("Volume Rendering"), tr(e), QMessageBox::Ok);
+    }
+}
+
+void QtVolumeRendererPanel::on_checkBoxBoundingBox_clicked(bool checked)
+{
+    try{
+        BoundingBoxChanged(checked);
+    }catch(char * e){
+        cout<<e<<endl;
+        QMessageBox::critical(this, tr("Volume Rendering"), tr(e), QMessageBox::Ok);
+    }
+}
+
+void QtVolumeRendererPanel::on_radioButtonMIP_clicked(bool checked)
 {
     if(checked){
-        invariant();
-        m_volrenddata = new VolumeRendererManagerData(m_ImageData, m_Render);
-    }else{
-        delete m_volrenddata;
-        m_volrenddata = 0;
+        this->changeCompositeMIPFunction(1);
     }
 }
 
-void QtVolumeRendererPanel::invariant(){
-    if(!m_ImageData){
-        cout<<"Image data not set"<<endl;
-        throw "Image data not set";
+void QtVolumeRendererPanel::on_radioButtonComposite_clicked(bool checked)
+{
+    if(checked){
+        this->changeCompositeMIPFunction(0);
     }
-    if(!m_Render){
-        cout<<"renderer not initialized"<<endl;
-        throw "renderer not initialized";
+}
+
+void QtVolumeRendererPanel::on_radioButtonLinear_clicked(bool checked)
+{
+    if(checked){
+        this->changeInterpolationType(0);
     }
 }
 
-void QtVolumeRendererPanel::on_opacitySlider_valueChanged(int value)
+void QtVolumeRendererPanel::on_radioButtonNearest_clicked(bool checked)
 {
-    if(m_volrenddata){
+    if(checked){
+        this->changeInterpolationType(1);
+    }
+}
 
+void QtVolumeRendererPanel::on_radioButtonMinIP_clicked(bool checked)
+{
+    if(checked){
+        this->changeCompositeMIPFunction(2);
     }
 }