X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Fkernel%2Fvolume.cxx;fp=lib%2FmaracasVisuLib%2Fsrc%2Fkernel%2Fvolume.cxx;h=ee35a73f46be30fc79056dd5748e2b322e3bbdd8;hb=475dadaa467cfef96bb7fa7203ad3bb1bb02990a;hp=13257d29f6c86f3fd67b344d3ce3fbd01d818c31;hpb=0bf8b92f3838aaf8b2a1df82d83dab99c166eec0;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/kernel/volume.cxx b/lib/maracasVisuLib/src/kernel/volume.cxx index 13257d2..ee35a73 100644 --- a/lib/maracasVisuLib/src/kernel/volume.cxx +++ b/lib/maracasVisuLib/src/kernel/volume.cxx @@ -3,8 +3,8 @@ Program: wxMaracas Module: $RCSfile: volume.cxx,v $ Language: C++ - Date: $Date: 2008/11/14 15:57:12 $ - Version: $Revision: 1.2 $ + Date: $Date: 2008/11/21 18:13:38 $ + Version: $Revision: 1.3 $ Copyright: (c) 2002, 2003 License: @@ -39,14 +39,14 @@ const vtkIdType kVolume::VTKTypes[] = { VTK_CHAR, VTK_FLOAT, VTK_DOUBLE, #endif // KGFO_USE_VTK -#ifdef KGFO_USE_IDO +//#ifdef KGFO_USE_IDO // ------------------------------------------------------------------------- -const int kVolume::IDOTypes[] = { VOL_CHAR, VOL_FLOAT, VOL_DOUBLE, VOL_LONG, - VOL_SHORT, VOL_UCHAR, VOL_ULONG, - VOL_USHORT }; +//const int kVolume::IDOTypes[] = { VOL_CHAR, VOL_FLOAT, VOL_DOUBLE, VOL_LONG, +// VOL_SHORT, VOL_UCHAR, VOL_ULONG, +// VOL_USHORT }; -#endif // KGFO_USE_IDO +//#endif // KGFO_USE_IDO // ------------------------------------------------------------------------- const void* kVolume::BLANK = ( void* ) 0; @@ -103,9 +103,9 @@ kVolume::kVolume( ) #ifdef KGFO_USE_VTK _vtk( NULL ), #endif // KGFO_USE_VTK -#ifdef KGFO_USE_IDO - _privateIdo( NULL ), -#endif // KGFO_USE_IDO +//#ifdef KGFO_USE_IDO +// _privateIdo( NULL ), +//#endif // KGFO_USE_IDO _raw( NULL ), _columns( NULL ), _images( NULL ) { @@ -124,9 +124,9 @@ kVolume::kVolume( Type type, #ifdef KGFO_USE_VTK _vtk( NULL ), #endif // KGFO_USE_VTK -#ifdef KGFO_USE_IDO - _privateIdo( NULL ), -#endif // KGFO_USE_IDO +//#ifdef KGFO_USE_IDO +// _privateIdo( NULL ), +//#endif // KGFO_USE_IDO _raw( NULL ), _columns( NULL ), _images( NULL ) { @@ -152,9 +152,9 @@ kVolume::kVolume( Type type, #ifdef KGFO_USE_VTK _vtk( NULL ), #endif // KGFO_USE_VTK -#ifdef KGFO_USE_IDO - _privateIdo( NULL ), -#endif // KGFO_USE_IDO +//#ifdef KGFO_USE_IDO +// _privateIdo( NULL ), +//#endif // KGFO_USE_IDO _raw( NULL ), _columns( NULL ), _images( NULL ) { @@ -177,9 +177,9 @@ kVolume::kVolume( const kVolume& org ) #ifdef KGFO_USE_VTK _vtk( NULL ), #endif // KGFO_USE_VTK -#ifdef KGFO_USE_IDO - _privateIdo( NULL ), -#endif // KGFO_USE_IDO +//#ifdef KGFO_USE_IDO +// _privateIdo( NULL ), +//#endif // KGFO_USE_IDO _raw( NULL ), _columns( NULL ), _images( NULL ) { @@ -684,33 +684,9 @@ void kVolume::buildIndex( ) size = ( _dims[ CZ ] * sizeof( uchar** ) ) + ( _dims[ CZ ] * _dims[ CY ] * sizeof( void* ) ); - -#ifdef KGFO_USE_IDO - - if( _creator == SELF || _creator == VTK ) { - - size += sizeof( PRIVATE_VOLUME ); - - _privateIdo = ( PRIVATE_VOLUME* ) new uchar[ size ]; - _privateIdo->UsedNbZ = 0; // Warning, I don't really know - _privateIdo->UsedNbY = 0; // the reason to use these three - _privateIdo->UsedNbX = 0; // fields. - lflorez - _privateIdo->subObject = 1; - _privateIdo->DimX = _dims[ CX ]; - _privateIdo->DimY = _dims[ CY ]; - _privateIdo->DimZ = _dims[ CZ ]; - _privateIdo->_message = 0; - _privateIdo->_fichier = 0; - _privateIdo->Type = IDOTypes[ _type ]; - - _images = ( void*** ) &( _privateIdo[ 1 ] ); - -#else _images = ( void*** )new uchar[ size ]; -#endif // KGFO_USE_IDO - _columns = ( void** )( _images + _dims[ CZ ] ); void** plane = _columns; for( uint z = 0; z < _dims[ CZ ]; z++ ) { @@ -727,13 +703,6 @@ void kVolume::buildIndex( ) _dims[ CX ] * SIZETypes[ _type ] ); } // rof - -#ifdef KGFO_USE_IDO - - } else - _images = ( void*** )( &_privateIdo[ 1 ] ); - -#endif // KGFO_USE_IDO #ifdef KGFO_USE_VTK @@ -845,20 +814,20 @@ void kVolume::deallocate( ) #endif // KGFO_USE_VTK -#ifdef KGFO_USE_IDO +//#ifdef KGFO_USE_IDO - if( _creator == SELF || _creator == VTK ) { +// if( _creator == SELF || _creator == VTK ) { - delete[] _privateIdo; - _privateIdo = NULL; +// delete[] _privateIdo; +// _privateIdo = NULL; - } // fi +// } // fi -#else +//#else delete[] ( uchar* )_images; -#endif // KGFO_USE_IDO +//#endif // KGFO_USE_IDO if( _raw && _creator == SELF ) @@ -879,9 +848,9 @@ void kVolume::deallocate( ) kVolume::kVolume( vtkImageData* org ) : _raw( 0 ), _columns( 0 ), _images( 0 ), _creator( VTK ), -#ifdef KGFO_USE_IDO - _privateIdo( NULL ), -#endif // KGFO_USE_IDO +//#ifdef KGFO_USE_IDO +// _privateIdo( NULL ), +//#endif // KGFO_USE_IDO _vtk( 0 ) { //int i, j, k, y; @@ -937,11 +906,11 @@ void kVolume::copyFrom( vtkImageData* org ) deallocate( ); -#ifdef KGFO_USE_IDO +//#ifdef KGFO_USE_IDO - _privateIdo = NULL; +// _privateIdo = NULL; -#endif // KGFO_USE_IDO +//#endif // KGFO_USE_IDO _vtk = NULL; _raw = NULL; @@ -978,110 +947,16 @@ void kVolume::copyFrom( vtkImageData* org ) // This avoids vtk extent crap conversion... org->GetExtent( ext ); for( i = ext[ 0 ]; i <= ext[ 1 ]; i++ ) { - for( j = ext[ 2 ]; j <= ext[ 3 ]; j++ ) { - - for( k = ext[ 4 ]; k <= ext[ 5 ]; k++ ) { - + for( k = ext[ 4 ]; k <= ext[ 5 ]; k++ ) { v = org->GetScalarComponentAsDouble( i, j, k, 0 ); - setPixel( v, i - ext[ 0 ], j - ext[ 2 ], k - ext[ 4 ] ); - + setPixel( v, i - ext[ 0 ], j - ext[ 2 ], k - ext[ 4 ] ); } // rof - } // rof - } // rof } #endif // KGFO_USE_VTK -#ifdef KGFO_USE_IDO - -// ------------------------------------------------------------------------- -kVolume::kVolume( PPPVOLUME org ) - : _raw( 0 ), _columns( 0 ), _images( 0 ), - _creator( IDO ), -#ifdef KGFO_USE_VTK - _vtk( 0 ), -#endif // KGFO_USE_VTK - _privateIdo( 0 ) -{ - switch( IdVolType( org ) ) { - - case VOL_UCHAR: _type = UCHAR; break; - case VOL_CHAR: _type = CHAR; break; - case VOL_FLOAT: _type = FLOAT; break; - case VOL_DOUBLE: _type = DOUBLE; break; - case VOL_SHORT: _type = SHORT; break; - case VOL_USHORT: _type = USHORT; break; - case VOL_LONG: _type = INT; break; - case VOL_ULONG: _type = UINT; break; - default: break; - - } // fswitch - - _dims[ CX ] = IdVolDimX( org ); - _dims[ CY ] = IdVolDimY( org ); - _dims[ CZ ] = IdVolDimZ( org ); - _sizes[ CX ] = 1; - _sizes[ CY ] = 1; - _sizes[ CZ ] = 1; - - _privateIdo = _IdVolPrivate( org ); - _raw = ( ( void*** ) &( _privateIdo[ 1 ] ) )[ 0 ][ 0 ]; - buildIndex( ); -} - -// ------------------------------------------------------------------------- -kVolume& kVolume::operator=( PPPVOLUME org ) -{ - copyFrom( org ); - return( *this ); -} - -// ------------------------------------------------------------------------- -void kVolume::copyFrom( PPPVOLUME org ) -{ - void* buffer; - - deallocate( ); - - _raw = NULL; - _columns = NULL; - _images = NULL; - _creator = SELF; -#ifdef KGFO_USE_VTK - _vtk = NULL; -#endif // KGFO_USE_VTK - _privateIdo = NULL; - - switch( IdVolType( org ) ) { - - case VOL_UCHAR: _type = UCHAR; break; - case VOL_CHAR: _type = CHAR; break; - case VOL_FLOAT: _type = FLOAT; break; - case VOL_DOUBLE: _type = DOUBLE; break; - case VOL_SHORT: _type = SHORT; break; - case VOL_USHORT: _type = USHORT; break; - case VOL_LONG: _type = INT; break; - case VOL_ULONG: _type = UINT; break; - default: break; - - } // fswitch - - _dims[ CX ] = IdVolDimX( org ); - _dims[ CY ] = IdVolDimY( org ); - _dims[ CZ ] = IdVolDimZ( org ); - _sizes[ CX ] = 1; - _sizes[ CY ] = 1; - _sizes[ CZ ] = 1; - - allocate( ); - buildIndex( ); - buffer = ( ( void*** ) &( org[ 1 ] ) )[ 0 ][ 0 ]; - memcpy( _raw, buffer, getRawSizeInBytes( ) ); -} - -#endif // KGFO_USE_IDO // eof - volume.cxx