]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/kernel/volume.cxx
#3418 creaMaracasVisu Feature New Normal - ManualPaint_model with openmp
[creaMaracasVisu.git] / lib / maracasVisuLib / src / kernel / volume.cxx
index 698133ad22050a11860cf4b24f73b7d534702a6a..9bdafc34c38ec2b639d2de885b3466a2c0a93f28 100644 (file)
@@ -1,10 +1,35 @@
+/*# ---------------------------------------------------------------------
+#
+# 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: volume.cxx,v $
   Language:  C++
-  Date:      $Date: 2010/04/29 16:05:37 $
-  Version:   $Revision: 1.9 $
+  Date:      $Date: 2012/11/15 14:16:13 $
+  Version:   $Revision: 1.10 $
 
   Copyright: (c) 2002, 2003
   License:
@@ -699,14 +724,14 @@ void kVolume::buildIndex( )
        
 #ifdef KGFO_USE_VTK
        
-    vtkCharArraycarray;
-    vtkDoubleArraydarray;
-    vtkFloatArrayfarray;
-    vtkIntArrayiarray;
-    vtkShortArraysarray;
-    vtkUnsignedCharArrayucarray;
-    vtkUnsignedIntArrayuiarray;
-    vtkUnsignedShortArrayusarray;
+    vtkCharArray                       *carray;
+    vtkDoubleArray                     *darray;
+    vtkFloatArray                      *farray;
+    vtkIntArray                                *iarray;
+    vtkShortArray                      *sarray;
+    vtkUnsignedCharArray       *ucarray;
+    vtkUnsignedIntArray                *uiarray;
+    vtkUnsignedShortArray      *usarray;
        
     size = _dims[ CX ] * _dims[ CY ] * _dims[ CZ ];
 
@@ -716,82 +741,279 @@ void kVolume::buildIndex( )
        _vtk->SetDimensions( _dims[ CX ], _dims[ CY ], _dims[ CZ ] );
        _vtk->SetSpacing( _sizes[ CX ], _sizes[ CY ], _sizes[ CZ ] );
 
+       if (_type==CHAR)
+       {
+           carray = vtkCharArray::New( );
+           carray->SetArray( ( char* )( _raw ), size, 1 );
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+           carray->SetNumberOfComponents( 1 );
+           _vtk->SetScalarType( VTK_CHAR );
+#else
+               vtkInformation* infoC=_vtk->GetInformation();
+               vtkDataObject::SetPointDataActiveScalarInfo(infoC, VTK_CHAR, 1);
+#endif
+           _vtk->GetPointData( )->SetScalars( carray );
+           carray->Delete( );
+       }
+
+       if (_type==UCHAR)
+       {
+           ucarray = vtkUnsignedCharArray::New( );
+           ucarray->SetArray( ( uint8_t* )( _raw ), size, 1 );
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+           ucarray->SetNumberOfComponents( 1 );
+           _vtk->SetScalarType( VTK_UNSIGNED_CHAR );
+#else
+               vtkInformation* infoUC=_vtk->GetInformation();
+               vtkDataObject::SetPointDataActiveScalarInfo(infoUC, VTK_UNSIGNED_CHAR, 1);
+#endif
+           _vtk->GetPointData( )->SetScalars( ucarray );
+           ucarray->Delete( );
+       }
+
+
+
+
+
+       if (_type==SHORT)
+       {
+           sarray = vtkShortArray::New( );
+           sarray->SetArray( ( int16_t* )( _raw ), size, 1 );
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+           sarray->SetNumberOfComponents( 1 );
+           _vtk->SetScalarType( VTK_SHORT );
+#else
+               vtkInformation* infoS=_vtk->GetInformation();
+               vtkDataObject::SetPointDataActiveScalarInfo(infoS, VTK_SHORT, 1);
+#endif
+           _vtk->GetPointData( )->SetScalars( sarray );
+           sarray->Delete( );
+}
+
+       if (_type==INT)
+       {
+           iarray = vtkIntArray::New( );
+           iarray->SetArray( ( int32_t* )( _raw ), size, 1 );
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+           iarray->SetNumberOfComponents( 1 );
+           _vtk->SetScalarType( VTK_INT );
+#else
+               vtkInformation* infoI=_vtk->GetInformation();
+               vtkDataObject::SetPointDataActiveScalarInfo(infoI, VTK_INT, 1);
+#endif
+           _vtk->GetPointData( )->SetScalars( iarray );
+           iarray->Delete( );
+       }
+
+
+       if (_type==USHORT)
+       {
+           usarray = vtkUnsignedShortArray::New( );
+           usarray->SetArray( ( uint16_t* )( _raw ), size, 1 );
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+           usarray->SetNumberOfComponents( 1 );
+           _vtk->SetScalarType( VTK_UNSIGNED_SHORT );
+#else
+               vtkInformation* infoUS=_vtk->GetInformation();
+               vtkDataObject::SetPointDataActiveScalarInfo(infoUS, VTK_UNSIGNED_SHORT, 1);
+#endif
+           _vtk->GetPointData( )->SetScalars( usarray );
+           usarray->Delete( );
+       }
+
+
+       if (_type==UINT)
+       {
+           uiarray = vtkUnsignedIntArray::New( );
+           uiarray->SetArray( ( uint32_t* )( _raw ), size, 1 );
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+           uiarray->SetNumberOfComponents( 1 );
+           _vtk->SetScalarType( VTK_UNSIGNED_INT );
+#else
+               vtkInformation* infoUI=_vtk->GetInformation();
+               vtkDataObject::SetPointDataActiveScalarInfo(infoUI, VTK_UNSIGNED_INT, 1);
+#endif
+           _vtk->GetPointData( )->SetScalars( uiarray );
+           uiarray->Delete( );
+       }
+
+
+       if (_type==FLOAT)
+       {
+           farray = vtkFloatArray::New( );
+           farray->SetArray( ( float* )( _raw ), size, 1 );
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+           farray->SetNumberOfComponents( 1 );
+           _vtk->SetScalarType( VTK_FLOAT );
+#else
+               vtkInformation* infoF=_vtk->GetInformation();
+               vtkDataObject::SetPointDataActiveScalarInfo(infoF, VTK_FLOAT, 1);
+#endif
+           _vtk->GetPointData( )->SetScalars( farray );
+           farray->Delete( );
+       }
+
+                 
+       if (_type==DOUBLE)
+       {
+           darray = vtkDoubleArray::New( );
+           darray->SetArray( ( double* )( _raw ), size, 1 );
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+           darray->SetNumberOfComponents( 1 );
+           _vtk->SetScalarType( VTK_DOUBLE );
+#else
+               vtkInformation* infoD=_vtk->GetInformation();
+               vtkDataObject::SetPointDataActiveScalarInfo(infoD, VTK_DOUBLE, 1);
+#endif
+
+
+           _vtk->GetPointData( )->SetScalars( darray );
+           darray->Delete( );
+       }
+
+
+
+
+
+
+/*
        switch( _type ) {
 
        case CHAR:
            carray = vtkCharArray::New( );
-           carray->SetNumberOfComponents( 1 );
            carray->SetArray( ( char* )( _raw ), size, 1 );
+
+//EED 2017-01-01 Migration VTK7
+//#if VTK_MAJOR_VERSION <= 5
+           carray->SetNumberOfComponents( 1 );
            _vtk->SetScalarType( VTK_CHAR );
+#else
+               vtkInformation* infoC=_vtk->GetInformation();
+               vtkDataObject::SetPointDataActiveScalarInfo(infoC, VTK_CHAR, 1);
+#endif
+
            _vtk->GetPointData( )->SetScalars( carray );
            carray->Delete( );
            break;
 
        case UCHAR:
            ucarray = vtkUnsignedCharArray::New( );
-           ucarray->SetNumberOfComponents( 1 );
            ucarray->SetArray( ( uint8_t* )( _raw ), size, 1 );
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+           ucarray->SetNumberOfComponents( 1 );
            _vtk->SetScalarType( VTK_UNSIGNED_CHAR );
+#else
+               vtkInformation* infoUC=_vtk->GetInformation();
+               vtkDataObject::SetPointDataActiveScalarInfo(infoUC, VTK_UNSIGNED_CHAR, 1);
+#endif
            _vtk->GetPointData( )->SetScalars( ucarray );
            ucarray->Delete( );
            break;
 
        case SHORT:
            sarray = vtkShortArray::New( );
-           sarray->SetNumberOfComponents( 1 );
            sarray->SetArray( ( int16_t* )( _raw ), size, 1 );
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+           sarray->SetNumberOfComponents( 1 );
            _vtk->SetScalarType( VTK_SHORT );
+#else
+               vtkInformation* infoS=_vtk->GetInformation();
+               vtkDataObject::SetPointDataActiveScalarInfo(infoS, VTK_SHORT, 1);
+#endif
            _vtk->GetPointData( )->SetScalars( sarray );
            sarray->Delete( );
            break;
 
        case INT:
            iarray = vtkIntArray::New( );
-           iarray->SetNumberOfComponents( 1 );
            iarray->SetArray( ( int32_t* )( _raw ), size, 1 );
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+           iarray->SetNumberOfComponents( 1 );
            _vtk->SetScalarType( VTK_INT );
+#else
+               vtkInformation* infoI=_vtk->GetInformation();
+               vtkDataObject::SetPointDataActiveScalarInfo(infoI, VTK_INT, 1);
+#endif
            _vtk->GetPointData( )->SetScalars( iarray );
            iarray->Delete( );
            break;
 
        case USHORT:
            usarray = vtkUnsignedShortArray::New( );
-           usarray->SetNumberOfComponents( 1 );
            usarray->SetArray( ( uint16_t* )( _raw ), size, 1 );
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+           usarray->SetNumberOfComponents( 1 );
            _vtk->SetScalarType( VTK_UNSIGNED_SHORT );
+#else
+               vtkInformation* infoUS=_vtk->GetInformation();
+               vtkDataObject::SetPointDataActiveScalarInfo(infoUS, VTK_UNSIGNED_SHORT, 1);
+#endif
            _vtk->GetPointData( )->SetScalars( usarray );
            usarray->Delete( );
            break;
 
        case UINT:
            uiarray = vtkUnsignedIntArray::New( );
-           uiarray->SetNumberOfComponents( 1 );
            uiarray->SetArray( ( uint32_t* )( _raw ), size, 1 );
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+           uiarray->SetNumberOfComponents( 1 );
            _vtk->SetScalarType( VTK_UNSIGNED_INT );
+#else
+               vtkInformation* infoUI=_vtk->GetInformation();
+               vtkDataObject::SetPointDataActiveScalarInfo(infoUI, VTK_UNSIGNED_INT, 1);
+#endif
            _vtk->GetPointData( )->SetScalars( uiarray );
            uiarray->Delete( );
            break;
 
        case FLOAT:
            farray = vtkFloatArray::New( );
-           farray->SetNumberOfComponents( 1 );
            farray->SetArray( ( float* )( _raw ), size, 1 );
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+           farray->SetNumberOfComponents( 1 );
            _vtk->SetScalarType( VTK_FLOAT );
+#else
+               vtkInformation* infoF=_vtk->GetInformation();
+               vtkDataObject::SetPointDataActiveScalarInfo(infoF, VTK_FLOAT, 1);
+#endif
            _vtk->GetPointData( )->SetScalars( farray );
            farray->Delete( );
            break;
                  
        case DOUBLE:
            darray = vtkDoubleArray::New( );
-           darray->SetNumberOfComponents( 1 );
            darray->SetArray( ( double* )( _raw ), size, 1 );
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+           darray->SetNumberOfComponents( 1 );
            _vtk->SetScalarType( VTK_DOUBLE );
+#else
+               vtkInformation* infoD=_vtk->GetInformation();
+               vtkDataObject::SetPointDataActiveScalarInfo(infoD, VTK_DOUBLE, 1);
+#endif
+
+
            _vtk->GetPointData( )->SetScalars( darray );
            darray->Delete( );
            break;
                  
        } // fswitch
-         
+*/  
+
     } // fi
 
 #endif // KGFO_USE_VTK