]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/kernel/volume.cxx
remove home-made 'uint', 'uchar', 'ushort', etc replace by uint32_t, uint8_t, uint16_t
[creaMaracasVisu.git] / lib / maracasVisuLib / src / kernel / volume.cxx
index 43d1364b3b8af6d52fda922c8d512433405cecb3..7fbe85cc1276d06e2b598a3bb3a4cfdf977d50bf 100644 (file)
@@ -3,8 +3,8 @@
   Program:   wxMaracas
   Module:    $RCSfile: volume.cxx,v $
   Language:  C++
-  Date:      $Date: 2010/04/20 14:42:44 $
-  Version:   $Revision: 1.7 $
+  Date:      $Date: 2010/04/20 16:11:40 $
+  Version:   $Revision: 1.8 $
 
   Copyright: (c) 2002, 2003
   License:
@@ -44,8 +44,8 @@ const void* kVolume::BLANK   = ( void* ) 0;
 const void* kVolume::NOALLOC = ( void* )-1;
 const int kVolume::SIZETypes[] = { sizeof( char ), sizeof( float ), 
                                   sizeof( double ), sizeof( int ),
-                                  sizeof( short ), sizeof( uchar ),
-                                  sizeof( uint ), sizeof( ushort ) };
+                                  sizeof( short ), sizeof( uint8_t ),
+                                  sizeof( uint32_t ), sizeof( uint16_t ) };
 
 // ---------------------------------------------------------------------------
 template< class FROM, class TO >
@@ -108,7 +108,7 @@ kVolume::kVolume( )
 
 // -------------------------------------------------------------------------
 kVolume::kVolume( Type type,
-                 uint xdim, uint ydim, uint zdim,
+                 uint32_t xdim, uint32_t ydim, uint32_t zdim,
                  double xsize, double ysize, double zsize,
                  void* data )
     : _type( type ), 
@@ -136,7 +136,7 @@ kVolume::kVolume( Type type,
 
 // -------------------------------------------------------------------------
 kVolume::kVolume( Type type,
-                 const uint *dims,
+                 const uint32_t *dims,
                  const double *sizes,
                  void* data )
     : _type( type ), 
@@ -149,7 +149,7 @@ kVolume::kVolume( Type type,
 #endif // KGFO_USE_VTK      
       
 {
-    memcpy( _dims, dims, 3 * sizeof( uint ) );
+    memcpy( _dims, dims, 3 * sizeof( uint32_t ) );
     memcpy( _sizes, sizes, 3 * sizeof( double ) );
     if( data != NOALLOC ) {
        
@@ -194,7 +194,7 @@ void kVolume::copyFrom( const kVolume& org )
     _columns = 0;
     _images = 0;
 
-    memcpy( _dims, org._dims, 3 * sizeof( uint ) );
+    memcpy( _dims, org._dims, 3 * sizeof( uint32_t ) );
     memcpy( _sizes, org._sizes, 3 * sizeof( double ) );
     if( org._raw ) {
 
@@ -214,20 +214,20 @@ bool kVolume::sameDimension( const kVolume& comp )
 }
 
 // -------------------------------------------------------------------------
-double kVolume::getPixel( uint x, uint y, uint z ) const
+double kVolume::getPixel( uint32_t x, uint32_t y, uint32_t z ) const
 {
     double p;
 
     switch( _type ) {
                
-    case CHAR:   p = ( double )( ( char*** )_images )[ z ][ y ][ x ]; break;
+    case CHAR:   p = ( double )( ( int8_t*** )_images )[ z ][ y ][ x ]; break;
     case FLOAT:  p = ( double )( ( float*** )_images )[ z ][ y ][ x ]; break;
     case DOUBLE: p = ( double )( ( double*** )_images )[ z ][ y ][ x ]; break;
-    case INT:    p = ( double )( ( int*** )_images )[ z ][ y ][ x ]; break;
-    case SHORT:  p = ( double )( ( short*** )_images )[ z ][ y ][ x ]; break;
-    case UCHAR:  p = ( double )( ( uchar*** )_images )[ z ][ y ][ x ]; break;
-    case UINT:   p = ( double )( ( uint*** )_images )[ z ][ y ][ x ]; break;
-    case USHORT: p = ( double )( ( ushort*** )_images )[ z ][ y ][ x ]; break;
+    case INT:    p = ( double )( ( int32_t*** )_images )[ z ][ y ][ x ]; break;
+    case SHORT:  p = ( double )( ( int16_t*** )_images )[ z ][ y ][ x ]; break;
+    case UCHAR:  p = ( double )( ( uint8_t*** )_images )[ z ][ y ][ x ]; break;
+    case UINT:   p = ( double )( ( uint32_t*** )_images )[ z ][ y ][ x ]; break;
+    case USHORT: p = ( double )( ( uint16_t*** )_images )[ z ][ y ][ x ]; break;
     default: p = 0.0; break;
 
     } // fswitch
@@ -236,19 +236,19 @@ double kVolume::getPixel( uint x, uint y, uint z ) const
 }
 
 // -------------------------------------------------------------------------
-void kVolume::setPixel( double v, uint x, uint y, uint z )
+void kVolume::setPixel( double v, uint32_t x, uint32_t y, uint32_t z )
 {
 
     switch( _type ) {
                
-    case CHAR:     ( ( char*** )_images )[ z ][ y ][ x ] = ( char )v; break;
-    case FLOAT:   ( ( float*** )_images )[ z ][ y ][ x ] = ( float )v; break;
-    case DOUBLE: ( ( double*** )_images )[ z ][ y ][ x ] = ( double )v; break;
-    case INT:       ( ( int*** )_images )[ z ][ y ][ x ] = ( int )v; break;
-    case SHORT:   ( ( short*** )_images )[ z ][ y ][ x ] = ( short )v; break;
-    case UCHAR:   ( ( uchar*** )_images )[ z ][ y ][ x ] = ( uchar )v; break;
-    case UINT:     ( ( uint*** )_images )[ z ][ y ][ x ] = ( uint )v; break;
-    case USHORT: ( ( ushort*** )_images )[ z ][ y ][ x ] = ( ushort )v; break;
+    case CHAR:        ( ( int8_t*** )_images )[ z ][ y ][ x ] = ( int8_t )v;   break;
+    case FLOAT:        ( ( float*** )_images )[ z ][ y ][ x ] = ( float )v;    break;
+    case DOUBLE:      ( ( double*** )_images )[ z ][ y ][ x ] = ( double )v;   break;
+    case INT:        ( ( int32_t*** )_images )[ z ][ y ][ x ] = ( int32_t )v;  break;
+    case SHORT:      ( ( int16_t*** )_images )[ z ][ y ][ x ] = ( int16_t )v;  break;
+    case UCHAR:      ( ( uint8_t*** )_images )[ z ][ y ][ x ] = ( uint8_t )v;  break;
+    case UINT:      ( ( uint32_t*** )_images )[ z ][ y ][ x ] = ( uint32_t )v; break;
+    case USHORT:    ( ( uint16_t*** )_images )[ z ][ y ][ x ] = ( uint16_t )v; break;
     default: break;
 
     } // fswitch
@@ -262,20 +262,20 @@ void kVolume::convertCast( Type type )
        void* buffer;
        ulong size = getRawSize( );
 
-       buffer = ( void* )new uchar[ size * SIZETypes[ type ] ];
+       buffer = ( void* )new uint8_t[ size * SIZETypes[ type ] ];
 
        switch( _type ) {
 
        case CHAR:
            switch( type ) {
 
-           case SHORT:  convertCastT( ( char* )_raw, ( short* )buffer, size ); break;
-           case INT:    convertCastT( ( char* )_raw, ( int* )buffer, size ); break;
-           case USHORT: convertCastT( ( char* )_raw, ( ushort* )buffer, size ); break;
-           case UINT:   convertCastT( ( char* )_raw, ( uint* )buffer, size ); break;
+           case SHORT:  convertCastT( ( char* )_raw, ( int16_t* )buffer, size ); break;
+           case INT:    convertCastT( ( char* )_raw, ( int32_t* )buffer, size ); break;
+           case USHORT: convertCastT( ( char* )_raw, ( uint16_t* )buffer, size ); break;
+           case UINT:   convertCastT( ( char* )_raw, ( uint32_t* )buffer, size ); break;
            case FLOAT:  convertCastT( ( char* )_raw, ( float* )buffer, size ); break;
            case DOUBLE: convertCastT( ( char* )_raw, ( double* )buffer, size ); break;
-           case UCHAR:  convertCastT( ( char* )_raw, ( uchar* )buffer, size ); break;
+           case UCHAR:  convertCastT( ( char* )_raw, ( uint8_t* )buffer, size ); break;
            default : break;
 
            } // fswitch
@@ -284,13 +284,13 @@ void kVolume::convertCast( Type type )
        case SHORT:
            switch( type ) {
 
-           case CHAR:   convertCastT( ( short* )_raw, ( char* )buffer, size ); break;
-           case INT:    convertCastT( ( short* )_raw, ( int* )buffer, size ); break;
-           case USHORT: convertCastT( ( short* )_raw, ( ushort* )buffer, size ); break;
-           case UINT:   convertCastT( ( short* )_raw, ( uint* )buffer, size ); break;
-           case FLOAT:  convertCastT( ( short* )_raw, ( float* )buffer, size ); break;
-           case DOUBLE: convertCastT( ( short* )_raw, ( double* )buffer, size ); break;
-           case UCHAR:  convertCastT( ( short* )_raw, ( uchar* )buffer, size ); break;
+           case CHAR:   convertCastT( ( int16_t* )_raw, ( uint8_t* )buffer, size ); break;
+           case INT:    convertCastT( ( int16_t* )_raw, ( int32_t* )buffer, size ); break;
+           case USHORT: convertCastT( ( int16_t* )_raw, ( uint16_t* )buffer, size ); break;
+           case UINT:   convertCastT( ( int16_t* )_raw, ( uint32_t* )buffer, size ); break;
+           case FLOAT:  convertCastT( ( int16_t* )_raw, ( float* )buffer, size ); break;
+           case DOUBLE: convertCastT( ( int16_t* )_raw, ( double* )buffer, size ); break;
+           case UCHAR:  convertCastT( ( int16_t* )_raw, ( uint8_t* )buffer, size ); break;
            default : break;
            } // fswitch
            break;
@@ -298,13 +298,13 @@ void kVolume::convertCast( Type type )
        case INT:
            switch( type ) {
 
-           case CHAR:   convertCastT( ( int* )_raw, ( char* )buffer, size ); break;
-           case SHORT:  convertCastT( ( int* )_raw, ( short* )buffer, size ); break;
-           case USHORT: convertCastT( ( int* )_raw, ( ushort* )buffer, size ); break;
-           case UINT:   convertCastT( ( int* )_raw, ( uint* )buffer, size ); break;
-           case FLOAT:  convertCastT( ( int* )_raw, ( float* )buffer, size ); break;
-           case DOUBLE: convertCastT( ( int* )_raw, ( double* )buffer, size ); break;
-           case UCHAR:  convertCastT( ( int* )_raw, ( uchar* )buffer, size ); break;
+           case CHAR:   convertCastT( ( int32_t* )_raw, ( int8_t* )buffer, size ); break;
+           case SHORT:  convertCastT( ( int32_t* )_raw, ( int16_t* )buffer, size ); break;
+           case USHORT: convertCastT( ( int32_t* )_raw, ( uint16_t* )buffer, size ); break;
+           case UINT:   convertCastT( ( int32_t* )_raw, ( uint32_t* )buffer, size ); break;
+           case FLOAT:  convertCastT( ( int32_t* )_raw, ( float* )buffer, size ); break;
+           case DOUBLE: convertCastT( ( int32_t* )_raw, ( double* )buffer, size ); break;
+           case UCHAR:  convertCastT( ( int32_t* )_raw, ( uint8_t* )buffer, size ); break;
            default : break;
            } // fswitch
            break;
@@ -312,13 +312,13 @@ void kVolume::convertCast( Type type )
        case USHORT:
            switch( type ) {
 
-           case CHAR:   convertCastT( ( ushort* )_raw, ( char* )buffer, size ); break;
-           case SHORT:  convertCastT( ( ushort* )_raw, ( short* )buffer, size ); break;
-           case INT:    convertCastT( ( ushort* )_raw, ( int* )buffer, size ); break;
-           case UINT:   convertCastT( ( ushort* )_raw, ( uint* )buffer, size ); break;
-           case FLOAT:  convertCastT( ( ushort* )_raw, ( float* )buffer, size ); break;
-           case DOUBLE: convertCastT( ( ushort* )_raw, ( double* )buffer, size ); break;
-           case UCHAR:  convertCastT( ( ushort* )_raw, ( uchar* )buffer, size ); break;
+           case CHAR:   convertCastT( ( uint16_t* )_raw, ( int8_t* )buffer, size ); break;
+           case SHORT:  convertCastT( ( uint16_t* )_raw, ( int16_t* )buffer, size ); break;
+           case INT:    convertCastT( ( uint16_t* )_raw, ( int32_t* )buffer, size ); break;
+           case UINT:   convertCastT( ( uint16_t* )_raw, ( uint32_t* )buffer, size ); break;
+           case FLOAT:  convertCastT( ( uint16_t* )_raw, ( float* )buffer, size ); break;
+           case DOUBLE: convertCastT( ( uint16_t* )_raw, ( double* )buffer, size ); break;
+           case UCHAR:  convertCastT( ( uint16_t* )_raw, ( uint8_t* )buffer, size ); break;
            default : break;
            } // fswitch
            break;
@@ -326,13 +326,13 @@ void kVolume::convertCast( Type type )
        case UINT:
            switch( type ) {
 
-           case CHAR:   convertCastT( ( uint* )_raw, ( char* )buffer, size ); break;
-           case SHORT:  convertCastT( ( uint* )_raw, ( short* )buffer, size ); break;
-           case INT:    convertCastT( ( uint* )_raw, ( int* )buffer, size ); break;
-           case USHORT: convertCastT( ( uint* )_raw, ( ushort* )buffer, size ); break;
-           case FLOAT:  convertCastT( ( uint* )_raw, ( float* )buffer, size ); break;
-           case DOUBLE: convertCastT( ( uint* )_raw, ( double* )buffer, size ); break;
-           case UCHAR:  convertCastT( ( uint* )_raw, ( uchar* )buffer, size ); break;
+           case CHAR:   convertCastT( ( uint32_t* )_raw, ( int8_t* )buffer, size ); break;
+           case SHORT:  convertCastT( ( uint32_t* )_raw, ( int16_t* )buffer, size ); break;
+           case INT:    convertCastT( ( uint32_t* )_raw, ( int32_t* )buffer, size ); break;
+           case USHORT: convertCastT( ( uint32_t* )_raw, ( uint16_t* )buffer, size ); break;
+           case FLOAT:  convertCastT( ( uint32_t* )_raw, ( float* )buffer, size ); break;
+           case DOUBLE: convertCastT( ( uint32_t* )_raw, ( double* )buffer, size ); break;
+           case UCHAR:  convertCastT( ( uint32_t* )_raw, ( uint8_t* )buffer, size ); break;
            default : break;
            } // fswitch
            break;
@@ -340,13 +340,13 @@ void kVolume::convertCast( Type type )
        case FLOAT:
            switch( type ) {
 
-           case CHAR:   convertCastT( ( float* )_raw, ( char* )buffer, size ); break;
-           case SHORT:  convertCastT( ( float* )_raw, ( short* )buffer, size ); break;
-           case INT:    convertCastT( ( float* )_raw, ( int* )buffer, size ); break;
-           case USHORT: convertCastT( ( float* )_raw, ( ushort* )buffer, size ); break;
-           case UINT:   convertCastT( ( float* )_raw, ( uint* )buffer, size ); break;
+           case CHAR:   convertCastT( ( float* )_raw, ( int8_t* )buffer, size ); break;
+           case SHORT:  convertCastT( ( float* )_raw, ( int16_t* )buffer, size ); break;
+           case INT:    convertCastT( ( float* )_raw, ( int32_t* )buffer, size ); break;
+           case USHORT: convertCastT( ( float* )_raw, ( uint16_t* )buffer, size ); break;
+           case UINT:   convertCastT( ( float* )_raw, ( uint32_t* )buffer, size ); break;
            case DOUBLE: convertCastT( ( float* )_raw, ( double* )buffer, size ); break;
-           case UCHAR:  convertCastT( ( float* )_raw, ( uchar* )buffer, size ); break;
+           case UCHAR:  convertCastT( ( float* )_raw, ( uint8_t* )buffer, size ); break;
            default : break;
            } // fswitch
            break;
@@ -354,13 +354,13 @@ void kVolume::convertCast( Type type )
        case DOUBLE:
            switch( type ) {
 
-           case CHAR:   convertCastT( ( double* )_raw, ( char* )buffer, size ); break;
-           case SHORT:  convertCastT( ( double* )_raw, ( short* )buffer, size ); break;
-           case INT:    convertCastT( ( double* )_raw, ( int* )buffer, size ); break;
-           case USHORT: convertCastT( ( double* )_raw, ( ushort* )buffer, size ); break;
-           case UINT:   convertCastT( ( double* )_raw, ( uint* )buffer, size ); break;
+           case CHAR:   convertCastT( ( double* )_raw, ( int8_t* )buffer, size ); break;
+           case SHORT:  convertCastT( ( double* )_raw, ( int16_t* )buffer, size ); break;
+           case INT:    convertCastT( ( double* )_raw, ( int32_t* )buffer, size ); break;
+           case USHORT: convertCastT( ( double* )_raw, ( uint16_t* )buffer, size ); break;
+           case UINT:   convertCastT( ( double* )_raw, ( uint32_t* )buffer, size ); break;
            case FLOAT:  convertCastT( ( double* )_raw, ( float* )buffer, size ); break;
-           case UCHAR:  convertCastT( ( double* )_raw, ( uchar* )buffer, size ); break;
+           case UCHAR:  convertCastT( ( double* )_raw, ( uint8_t* )buffer, size ); break;
            default : break;
            } // fswitch
            break;
@@ -368,13 +368,13 @@ void kVolume::convertCast( Type type )
        case UCHAR:
            switch( type ) {
 
-           case CHAR:   convertCastT( ( uchar* )_raw, ( char* )buffer, size ); break;
-           case SHORT:  convertCastT( ( uchar* )_raw, ( short* )buffer, size ); break;
-           case INT:    convertCastT( ( uchar* )_raw, ( int* )buffer, size ); break;
-           case USHORT: convertCastT( ( uchar* )_raw, ( ushort* )buffer, size ); break;
-           case UINT:   convertCastT( ( uchar* )_raw, ( uint* )buffer, size ); break;
-           case FLOAT:  convertCastT( ( uchar* )_raw, ( float* )buffer, size ); break;
-           case DOUBLE: convertCastT( ( uchar* )_raw, ( double* )buffer, size ); break;
+           case CHAR:   convertCastT( ( uint8_t* )_raw, ( int8_t* )buffer, size ); break;
+           case SHORT:  convertCastT( ( uint8_t* )_raw, ( int16_t* )buffer, size ); break;
+           case INT:    convertCastT( ( uint8_t* )_raw, ( int32_t* )buffer, size ); break;
+           case USHORT: convertCastT( ( uint8_t* )_raw, ( uint16_t* )buffer, size ); break;
+           case UINT:   convertCastT( ( uint8_t* )_raw, ( uint32_t* )buffer, size ); break;
+           case FLOAT:  convertCastT( ( uint8_t* )_raw, ( float* )buffer, size ); break;
+           case DOUBLE: convertCastT( ( uint8_t* )_raw, ( double* )buffer, size ); break;
            default : break;
            } // fswitch
            break;
@@ -408,119 +408,119 @@ void kVolume::convertScale( Type type, double min, double max )
     void* buffer;
     ulong size = getRawSize( );
 
-    buffer = ( void* )new uchar[ size * SIZETypes[ type ] ];
+    buffer = ( void* )new uint8_t[ size * SIZETypes[ type ] ];
 
     switch( _type ) {
 
     case CHAR:
        switch( type ) {
 
-       case CHAR:   convertScaleT( ( char* )_raw, ( char* )buffer, size, smin, tmin, a ); break;
-       case SHORT:  convertScaleT( ( char* )_raw, ( short* )buffer, size, smin, tmin, a ); break;
-       case INT:    convertScaleT( ( char* )_raw, ( int* )buffer, size, smin, tmin, a ); break;
-       case USHORT: convertScaleT( ( char* )_raw, ( ushort* )buffer, size, smin, tmin, a ); break;
-       case UINT:   convertScaleT( ( char* )_raw, ( uint* )buffer, size, smin, tmin, a ); break;
-       case FLOAT:  convertScaleT( ( char* )_raw, ( float* )buffer, size, smin, tmin, a ); break;
-       case DOUBLE: convertScaleT( ( char* )_raw, ( double* )buffer, size, smin, tmin, a ); break;
-       case UCHAR:  convertScaleT( ( char* )_raw, ( uchar* )buffer, size, smin, tmin, a ); break;
+       case CHAR:   convertScaleT( ( int8_t* )_raw, ( int8_t* )buffer,   size, smin, tmin, a ); break;
+       case SHORT:  convertScaleT( ( int8_t* )_raw, ( int16_t* )buffer,  size, smin, tmin, a ); break;
+       case INT:    convertScaleT( ( int8_t* )_raw, ( int32_t* )buffer,  size, smin, tmin, a ); break;
+       case USHORT: convertScaleT( ( int8_t* )_raw, ( uint16_t* )buffer, size, smin, tmin, a ); break;
+       case UINT:   convertScaleT( ( int8_t* )_raw, ( uint32_t* )buffer, size, smin, tmin, a ); break;
+       case FLOAT:  convertScaleT( ( int8_t* )_raw, ( float* )buffer,    size, smin, tmin, a ); break;
+       case DOUBLE: convertScaleT( ( int8_t* )_raw, ( double* )buffer,   size, smin, tmin, a ); break;
+       case UCHAR:  convertScaleT( ( int8_t* )_raw, ( uint8_t* )buffer,  size, smin, tmin, a ); break;
 
        } // fswitch
        break;
     case SHORT:
        switch( type ) {
 
-       case CHAR:   convertScaleT( ( short* )_raw, ( char* )buffer, size, smin, tmin, a ); break;
-       case SHORT:  convertScaleT( ( short* )_raw, ( short* )buffer, size, smin, tmin, a ); break;
-       case INT:    convertScaleT( ( short* )_raw, ( int* )buffer, size, smin, tmin, a ); break;
-       case USHORT: convertScaleT( ( short* )_raw, ( ushort* )buffer, size, smin, tmin, a ); break;
-       case UINT:   convertScaleT( ( short* )_raw, ( uint* )buffer, size, smin, tmin, a ); break;
-       case FLOAT:  convertScaleT( ( short* )_raw, ( float* )buffer, size, smin, tmin, a ); break;
-       case DOUBLE: convertScaleT( ( short* )_raw, ( double* )buffer, size, smin, tmin, a ); break;
-       case UCHAR:  convertScaleT( ( short* )_raw, ( uchar* )buffer, size, smin, tmin, a ); break;
+       case CHAR:   convertScaleT( ( int16_t* )_raw, ( int8_t* )buffer,   size, smin, tmin, a ); break;
+       case SHORT:  convertScaleT( ( int16_t* )_raw, ( int16_t* )buffer,  size, smin, tmin, a ); break;
+       case INT:    convertScaleT( ( int16_t* )_raw, ( int32_t* )buffer,  size, smin, tmin, a ); break;
+       case USHORT: convertScaleT( ( int16_t* )_raw, ( uint16_t* )buffer, size, smin, tmin, a ); break;
+       case UINT:   convertScaleT( ( int16_t* )_raw, ( uint32_t* )buffer, size, smin, tmin, a ); break;
+       case FLOAT:  convertScaleT( ( int16_t* )_raw, ( float* )buffer,    size, smin, tmin, a ); break;
+       case DOUBLE: convertScaleT( ( int16_t* )_raw, ( double* )buffer,   size, smin, tmin, a ); break;
+       case UCHAR:  convertScaleT( ( int16_t* )_raw, ( uint8_t* )buffer,  size, smin, tmin, a ); break;
 
        } // fswitch
        break;
     case INT:
        switch( type ) {
 
-       case CHAR:   convertScaleT( ( int* )_raw, ( char* )buffer, size, smin, tmin, a ); break;
-       case SHORT:  convertScaleT( ( int* )_raw, ( short* )buffer, size, smin, tmin, a ); break;
-       case INT:    convertScaleT( ( int* )_raw, ( int* )buffer, size, smin, tmin, a ); break;
-       case USHORT: convertScaleT( ( int* )_raw, ( ushort* )buffer, size, smin, tmin, a ); break;
-       case UINT:   convertScaleT( ( int* )_raw, ( uint* )buffer, size, smin, tmin, a ); break;
-       case FLOAT:  convertScaleT( ( int* )_raw, ( float* )buffer, size, smin, tmin, a ); break;
-       case DOUBLE: convertScaleT( ( int* )_raw, ( double* )buffer, size, smin, tmin, a ); break;
-       case UCHAR:  convertScaleT( ( int* )_raw, ( uchar* )buffer, size, smin, tmin, a ); break;
+       case CHAR:   convertScaleT( ( int32_t* )_raw, ( int8_t* )buffer,   size, smin, tmin, a ); break;
+       case SHORT:  convertScaleT( ( int32_t* )_raw, ( int16_t* )buffer,  size, smin, tmin, a ); break;
+       case INT:    convertScaleT( ( int32_t* )_raw, ( int32_t* )buffer,  size, smin, tmin, a ); break;
+       case USHORT: convertScaleT( ( int32_t* )_raw, ( uint16_t* )buffer, size, smin, tmin, a ); break;
+       case UINT:   convertScaleT( ( int32_t* )_raw, ( uint32_t* )buffer, size, smin, tmin, a ); break;
+       case FLOAT:  convertScaleT( ( int32_t* )_raw, ( float* )buffer,    size, smin, tmin, a ); break;
+       case DOUBLE: convertScaleT( ( int32_t* )_raw, ( double* )buffer,   size, smin, tmin, a ); break;
+       case UCHAR:  convertScaleT( ( int32_t* )_raw, ( uint8_t* )buffer,  size, smin, tmin, a ); break;
 
        } // fswitch
        break;
     case USHORT:
        switch( type ) {
 
-       case CHAR:   convertScaleT( ( ushort* )_raw, ( char* )buffer, size, smin, tmin, a ); break;
-       case SHORT:  convertScaleT( ( ushort* )_raw, ( short* )buffer, size, smin, tmin, a ); break;
-       case INT:    convertScaleT( ( ushort* )_raw, ( int* )buffer, size, smin, tmin, a ); break;
-       case USHORT: convertScaleT( ( ushort* )_raw, ( ushort* )buffer, size, smin, tmin, a ); break;
-       case UINT:   convertScaleT( ( ushort* )_raw, ( uint* )buffer, size, smin, tmin, a ); break;
-       case FLOAT:  convertScaleT( ( ushort* )_raw, ( float* )buffer, size, smin, tmin, a ); break;
-       case DOUBLE: convertScaleT( ( ushort* )_raw, ( double* )buffer, size, smin, tmin, a ); break;
-       case UCHAR:  convertScaleT( ( ushort* )_raw, ( uchar* )buffer, size, smin, tmin, a ); break;
+       case CHAR:   convertScaleT( ( uint16_t* )_raw, ( int8_t* )buffer,   size, smin, tmin, a ); break;
+       case SHORT:  convertScaleT( ( uint16_t* )_raw, ( int16_t* )buffer,  size, smin, tmin, a ); break;
+       case INT:    convertScaleT( ( uint16_t* )_raw, ( int32_t* )buffer,  size, smin, tmin, a ); break;
+       case USHORT: convertScaleT( ( uint16_t* )_raw, ( uint16_t* )buffer, size, smin, tmin, a ); break;
+       case UINT:   convertScaleT( ( uint16_t* )_raw, ( uint32_t* )buffer, size, smin, tmin, a ); break;
+       case FLOAT:  convertScaleT( ( uint16_t* )_raw, ( float* )buffer,    size, smin, tmin, a ); break;
+       case DOUBLE: convertScaleT( ( uint16_t* )_raw, ( double* )buffer,   size, smin, tmin, a ); break;
+       case UCHAR:  convertScaleT( ( uint16_t* )_raw, ( uint8_t* )buffer,  size, smin, tmin, a ); break;
 
        } // fswitch
        break;
     case UINT:
        switch( type ) {
 
-       case CHAR:   convertScaleT( ( uint* )_raw, ( char* )buffer, size, smin, tmin, a ); break;
-       case SHORT:  convertScaleT( ( uint* )_raw, ( short* )buffer, size, smin, tmin, a ); break;
-       case INT:    convertScaleT( ( uint* )_raw, ( int* )buffer, size, smin, tmin, a ); break;
-       case USHORT: convertScaleT( ( uint* )_raw, ( ushort* )buffer, size, smin, tmin, a ); break;
-       case UINT:   convertScaleT( ( uint* )_raw, ( uint* )buffer, size, smin, tmin, a ); break;
-       case FLOAT:  convertScaleT( ( uint* )_raw, ( float* )buffer, size, smin, tmin, a ); break;
-       case DOUBLE: convertScaleT( ( uint* )_raw, ( double* )buffer, size, smin, tmin, a ); break;
-       case UCHAR:  convertScaleT( ( uint* )_raw, ( uchar* )buffer, size, smin, tmin, a ); break;
+       case CHAR:   convertScaleT( ( uint32_t* )_raw, ( int8_t* )buffer,   size, smin, tmin, a ); break;
+       case SHORT:  convertScaleT( ( uint32_t* )_raw, ( int16_t* )buffer,  size, smin, tmin, a ); break;
+       case INT:    convertScaleT( ( uint32_t* )_raw, ( int32_t* )buffer,  size, smin, tmin, a ); break;
+       case USHORT: convertScaleT( ( uint32_t* )_raw, ( uint16_t* )buffer, size, smin, tmin, a ); break;
+       case UINT:   convertScaleT( ( uint32_t* )_raw, ( uint32_t* )buffer, size, smin, tmin, a ); break;
+       case FLOAT:  convertScaleT( ( uint32_t* )_raw, ( float* )buffer,    size, smin, tmin, a ); break;
+       case DOUBLE: convertScaleT( ( uint32_t* )_raw, ( double* )buffer,   size, smin, tmin, a ); break;
+       case UCHAR:  convertScaleT( ( uint32_t* )_raw, ( uint8_t* )buffer,  size, smin, tmin, a ); break;
 
        } // fswitch
        break;
     case UCHAR:
        switch( type ) {
 
-       case CHAR:   convertScaleT( ( uchar* )_raw, ( char* )buffer, size, smin, tmin, a ); break;
-       case SHORT:  convertScaleT( ( uchar* )_raw, ( short* )buffer, size, smin, tmin, a ); break;
-       case INT:    convertScaleT( ( uchar* )_raw, ( int* )buffer, size, smin, tmin, a ); break;
-       case USHORT: convertScaleT( ( uchar* )_raw, ( ushort* )buffer, size, smin, tmin, a ); break;
-       case UINT:   convertScaleT( ( uchar* )_raw, ( uint* )buffer, size, smin, tmin, a ); break;
-       case FLOAT:  convertScaleT( ( uchar* )_raw, ( float* )buffer, size, smin, tmin, a ); break;
-       case DOUBLE: convertScaleT( ( uchar* )_raw, ( double* )buffer, size, smin, tmin, a ); break;
-       case UCHAR:  convertScaleT( ( uchar* )_raw, ( uchar* )buffer, size, smin, tmin, a ); break;
+       case CHAR:   convertScaleT( ( uint8_t* )_raw, ( int8_t* )buffer,  size, smin, tmin, a ); break;
+       case SHORT:  convertScaleT( ( uint8_t* )_raw, ( int16_t* )buffer,  size, smin, tmin, a ); break;
+       case INT:    convertScaleT( ( uint8_t* )_raw, ( int32_t* )buffer,  size, smin, tmin, a ); break;
+       case USHORT: convertScaleT( ( uint8_t* )_raw, ( uint16_t* )buffer, size, smin, tmin, a ); break;
+       case UINT:   convertScaleT( ( uint8_t* )_raw, ( uint32_t* )buffer, size, smin, tmin, a ); break;
+       case FLOAT:  convertScaleT( ( uint8_t* )_raw, ( float* )buffer,    size, smin, tmin, a ); break;
+       case DOUBLE: convertScaleT( ( uint8_t* )_raw, ( double* )buffer,   size, smin, tmin, a ); break;
+       case UCHAR:  convertScaleT( ( uint8_t* )_raw, ( uint8_t* )buffer,  size, smin, tmin, a ); break;
 
        } // fswitch
        break;
     case DOUBLE:
        switch( type ) {
 
-       case CHAR:   convertScaleT( ( double* )_raw, ( char* )buffer, size, smin, tmin, a ); break;
-       case SHORT:  convertScaleT( ( double* )_raw, ( short* )buffer, size, smin, tmin, a ); break;
-       case INT:    convertScaleT( ( double* )_raw, ( int* )buffer, size, smin, tmin, a ); break;
-       case USHORT: convertScaleT( ( double* )_raw, ( ushort* )buffer, size, smin, tmin, a ); break;
-       case UINT:   convertScaleT( ( double* )_raw, ( uint* )buffer, size, smin, tmin, a ); break;
-       case FLOAT:  convertScaleT( ( double* )_raw, ( float* )buffer, size, smin, tmin, a ); break;
-       case DOUBLE: convertScaleT( ( double* )_raw, ( double* )buffer, size, smin, tmin, a ); break;
-       case UCHAR:  convertScaleT( ( uchar* )_raw, ( double* )buffer, size, smin, tmin, a ); break;
+       case CHAR:   convertScaleT( ( double* )_raw, ( int8_t* )buffer,   size, smin, tmin, a ); break;
+       case SHORT:  convertScaleT( ( double* )_raw, ( int16_t* )buffer,  size, smin, tmin, a ); break;
+       case INT:    convertScaleT( ( double* )_raw, ( int32_t* )buffer,  size, smin, tmin, a ); break;
+       case USHORT: convertScaleT( ( double* )_raw, ( uint16_t* )buffer, size, smin, tmin, a ); break;
+       case UINT:   convertScaleT( ( double* )_raw, ( uint32_t* )buffer, size, smin, tmin, a ); break;
+       case FLOAT:  convertScaleT( ( double* )_raw, ( float* )buffer,    size, smin, tmin, a ); break;
+       case DOUBLE: convertScaleT( ( double* )_raw, ( double* )buffer,   size, smin, tmin, a ); break;
+       case UCHAR:  convertScaleT( ( double* )_raw, ( uint8_t* )buffer,  size, smin, tmin, a ); break;
 
        } // fswitch
        break;
     case FLOAT:
        switch( type ) {
 
-       case CHAR:   convertScaleT( ( float* )_raw, ( char* )buffer, size, smin, tmin, a ); break;
-       case SHORT:  convertScaleT( ( float* )_raw, ( short* )buffer, size, smin, tmin, a ); break;
-       case INT:    convertScaleT( ( float* )_raw, ( int* )buffer, size, smin, tmin, a ); break;
-       case USHORT: convertScaleT( ( float* )_raw, ( ushort* )buffer, size, smin, tmin, a ); break;
-       case UINT:   convertScaleT( ( float* )_raw, ( uint* )buffer, size, smin, tmin, a ); break;
+       case CHAR:   convertScaleT( ( float* )_raw, ( int8_t* )buffer, size, smin, tmin, a ); break;
+       case SHORT:  convertScaleT( ( float* )_raw, ( int16_t* )buffer, size, smin, tmin, a ); break;
+       case INT:    convertScaleT( ( float* )_raw, ( int32_t* )buffer, size, smin, tmin, a ); break;
+       case USHORT: convertScaleT( ( float* )_raw, ( uint16_t* )buffer, size, smin, tmin, a ); break;
+       case UINT:   convertScaleT( ( float* )_raw, ( uint32_t* )buffer, size, smin, tmin, a ); break;
        case FLOAT:  convertScaleT( ( float* )_raw, ( float* )buffer, size, smin, tmin, a ); break;
        case DOUBLE: convertScaleT( ( float* )_raw, ( double* )buffer, size, smin, tmin, a ); break;
-       case UCHAR:  convertScaleT( ( float* )_raw, ( double* )buffer, size, smin, tmin, a ); break;
+       case UCHAR:  convertScaleT( ( float* )_raw, ( uint8_t* )buffer, size, smin, tmin, a ); break;
 
        } // fswitch
        break;
@@ -541,14 +541,14 @@ void kVolume::getMinMax( double& min, double& max ) const
 
     switch( _type ) {
                
-    case CHAR:   getMinMaxT( ( char* )_raw, size, min, max ); break;
-    case FLOAT:  getMinMaxT( ( float* )_raw, size, min, max ); break;
-    case DOUBLE: getMinMaxT( ( double* )_raw, size, min, max ); break;
-    case INT:    getMinMaxT( ( int* )_raw, size, min, max ); break;
-    case SHORT:  getMinMaxT( ( short* )_raw, size, min, max ); break;
-    case UCHAR:  getMinMaxT( ( uchar* )_raw, size, min, max ); break;
-    case UINT:   getMinMaxT( ( uint* )_raw, size, min, max ); break;
-    case USHORT: getMinMaxT( ( ushort* )_raw, size, min, max ); break;
+    case CHAR:   getMinMaxT( ( int8_t* )_raw,   size, min, max ); break;
+    case FLOAT:  getMinMaxT( ( float* )_raw,    size, min, max ); break;
+    case DOUBLE: getMinMaxT( ( double* )_raw,   size, min, max ); break;
+    case INT:    getMinMaxT( ( int32_t* )_raw,  size, min, max ); break;
+    case SHORT:  getMinMaxT( ( int16_t* )_raw,  size, min, max ); break;
+    case UCHAR:  getMinMaxT( ( uint8_t* )_raw,  size, min, max ); break;
+    case UINT:   getMinMaxT( ( uint32_t* )_raw, size, min, max ); break;
+    case USHORT: getMinMaxT( ( uint16_t* )_raw, size, min, max ); break;
 
     } // fswitch
 }
@@ -600,7 +600,7 @@ double kVolume::getMax( ) const
       for( v( 1 ) = minY; v( 1 ) <= maxY; v( 1 )++ )
         for( v( 2 ) = minZ; v( 2 ) <= maxZ; v( 2 )++ )
           if( ( v - vP ).norm2( ) <= r ) {
-            tmp = this->getPixel( ( uint )v(0), ( uint )v(1), ( uint )v(2));
+            tmp = this->getPixel( ( uint32_t )v(0), ( uint32_t )v(1), ( uint32_t )v(2));
             maxint = ( tmp > maxint || start )? tmp: maxint;
             start = false;
           } // fi
@@ -664,7 +664,7 @@ void kVolume::allocate( )
 
     if( _creator == SELF ) {
 
-       _raw = ( void* )new uchar[ size ];
+       _raw = ( void* )new uint8_t[ size ];
        memset( _raw, 0, size );
 
     } // fi
@@ -675,24 +675,24 @@ void kVolume::buildIndex( )
 {
     ulong size;
 
-    size = ( _dims[ CZ ] * sizeof( uchar** ) ) +
+    size = ( _dims[ CZ ] * sizeof( uint8_t** ) ) +
        ( _dims[ CZ ] * _dims[ CY ] * sizeof( void* ) );
                
-       _images = ( void*** )new uchar[ size ];
+       _images = ( void*** )new uint8_t[ size ];
                
        _columns = ( void** )( _images + _dims[ CZ ] );
        void** plane = _columns;
-       for( uint z = 0; z < _dims[ CZ ]; z++ ) {
+       for( uint32_t z = 0; z < _dims[ CZ ]; z++ ) {
                        
            _images[ z ] = plane;
            plane += _dims[ CY ];
                        
        } // rof
        void* line = _raw;
-       for( uint y = 0; y < _dims[ CZ ] * _dims[ CY ]; y++ ) {
+       for( uint32_t y = 0; y < _dims[ CZ ] * _dims[ CY ]; y++ ) {
                        
            _columns[ y ] = line;
-           line = ( void* )( ( uchar* ) line +
+           line = ( void* )( ( uint8_t* ) line +
                              _dims[ CX ] * SIZETypes[ _type ] );
                        
        } // rof
@@ -730,7 +730,7 @@ void kVolume::buildIndex( )
        case UCHAR:
            ucarray = vtkUnsignedCharArray::New( );
            ucarray->SetNumberOfComponents( 1 );
-           ucarray->SetArray( ( uchar* )( _raw ), size, 1 );
+           ucarray->SetArray( ( uint8_t* )( _raw ), size, 1 );
            _vtk->SetScalarType( VTK_UNSIGNED_CHAR );
            _vtk->GetPointData( )->SetScalars( ucarray );
            ucarray->Delete( );
@@ -739,7 +739,7 @@ void kVolume::buildIndex( )
        case SHORT:
            sarray = vtkShortArray::New( );
            sarray->SetNumberOfComponents( 1 );
-           sarray->SetArray( ( short* )( _raw ), size, 1 );
+           sarray->SetArray( ( int16_t* )( _raw ), size, 1 );
            _vtk->SetScalarType( VTK_SHORT );
            _vtk->GetPointData( )->SetScalars( sarray );
            sarray->Delete( );
@@ -748,7 +748,7 @@ void kVolume::buildIndex( )
        case INT:
            iarray = vtkIntArray::New( );
            iarray->SetNumberOfComponents( 1 );
-           iarray->SetArray( ( int* )( _raw ), size, 1 );
+           iarray->SetArray( ( int32_t* )( _raw ), size, 1 );
            _vtk->SetScalarType( VTK_INT );
            _vtk->GetPointData( )->SetScalars( iarray );
            iarray->Delete( );
@@ -757,7 +757,7 @@ void kVolume::buildIndex( )
        case USHORT:
            usarray = vtkUnsignedShortArray::New( );
            usarray->SetNumberOfComponents( 1 );
-           usarray->SetArray( ( ushort* )( _raw ), size, 1 );
+           usarray->SetArray( ( uint16_t* )( _raw ), size, 1 );
            _vtk->SetScalarType( VTK_UNSIGNED_SHORT );
            _vtk->GetPointData( )->SetScalars( usarray );
            usarray->Delete( );
@@ -766,7 +766,7 @@ void kVolume::buildIndex( )
        case UINT:
            uiarray = vtkUnsignedIntArray::New( );
            uiarray->SetNumberOfComponents( 1 );
-           uiarray->SetArray( ( uint* )( _raw ), size, 1 );
+           uiarray->SetArray( ( uint32_t* )( _raw ), size, 1 );
            _vtk->SetScalarType( VTK_UNSIGNED_INT );
            _vtk->GetPointData( )->SetScalars( uiarray );
            uiarray->Delete( );
@@ -804,11 +804,11 @@ void kVolume::deallocate( )
     if( _vtk ) _vtk->Delete();
     _vtk = NULL;
 #endif // KGFO_USE_VTK
-    delete[] ( uchar* )_images;
+    delete[] ( uint8_t* )_images;
     if( _raw && _creator == SELF )
 
 //EED purify 12/sept/2006
-//     delete[] ( uchar* )_raw;
+//     delete[] ( uint8_t* )_raw;
 
     free ( _raw );
 
@@ -849,9 +849,9 @@ kVolume::kVolume( vtkImageData* org )
     } // fswitch
        
     org->GetDimensions( itmp );
-    _dims[ CX ] = ( uint )itmp[ 0 ];
-    _dims[ CY ] = ( uint )itmp[ 1 ];
-    _dims[ CZ ] = ( uint )itmp[ 2 ];
+    _dims[ CX ] = ( uint32_t )itmp[ 0 ];
+    _dims[ CY ] = ( uint32_t )itmp[ 1 ];
+    _dims[ CZ ] = ( uint32_t )itmp[ 2 ];
     org->GetSpacing( ftmp );
     _sizes[ CX ] = ( double )ftmp[ 0 ];
     _sizes[ CY ] = ( double )ftmp[ 1 ];
@@ -909,9 +909,9 @@ void kVolume::copyFrom( vtkImageData* org )
     } // fswitch
        
     org->GetDimensions( itmp );
-    _dims[ CX ] = ( uint )itmp[ 0 ];
-    _dims[ CY ] = ( uint )itmp[ 1 ];
-    _dims[ CZ ] = ( uint )itmp[ 2 ];
+    _dims[ CX ] = ( uint32_t )itmp[ 0 ];
+    _dims[ CY ] = ( uint32_t )itmp[ 1 ];
+    _dims[ CZ ] = ( uint32_t )itmp[ 2 ];
     org->GetSpacing( ftmp );
     _sizes[ CX ] = ( double )ftmp[ 0 ];
     _sizes[ CY ] = ( double )ftmp[ 1 ];