]> Creatis software - bbtk.git/blobdiff - packages/vtk/src/bbvtkImageVtkProperties.cxx
#3212 BBTK Feature New Normal - vtk8itk4wx3-mingw64
[bbtk.git] / packages / vtk / src / bbvtkImageVtkProperties.cxx
index 50506435bc6026d0c686b66b98c97fd684551874..a065023d1f2d8d09bd310d200bea42574d90890f 100644 (file)
@@ -40,20 +40,21 @@ BBTK_BLACK_BOX_IMPLEMENTATION(ImageVtkProperties,bbtk::AtomicBlackBox);
 //===== 
 void ImageVtkProperties::Process()
 {
-       unsigned int dim;
-       int ext[6];
-       double spc[3];
-       double range[2];
-       std::string nametype;
-       int numberoOfComponents;
-       std::vector<int> vsize;
-       std::vector<float> vspacing;
-       std::vector<float> vrange;
+       unsigned int            dim;
+       int                             ext[6];
+       double                          spc[3];
+       double                          range[2];
+       double                          origin[3];
+       std::string             nametype;
+       int                             numberoOfComponents;
+       std::vector<int>        vsize;
+       std::vector<double> vspacing;
+       std::vector<double> vrange;
+       std::vector<double> vorigin;
 
        if ( bbGetInputIn() )
        {
                bbGetInputIn()->Modified();
-               
 //EED 2017-01-01 Migration VTK7
 #if (VTK_MAJOR_VERSION <= 5) 
                bbGetInputIn()->Update();
@@ -66,24 +67,21 @@ void ImageVtkProperties::Process()
                vsize.push_back(ext[1]-ext[0]+1);
                vsize.push_back(ext[3]-ext[2]+1);
                vsize.push_back(ext[5]-ext[4]+1);
-               
                dim = 0;
                if (vsize[0]>1) dim++;
                if (vsize[1]>1) dim++;
                if (vsize[2]>1) dim++;
-               
                bbGetInputIn()->GetScalarRange(range);
+               bbGetInputIn()->GetOrigin(origin);
                numberoOfComponents=bbGetInputIn()->GetNumberOfScalarComponents();
-       
                bbGetInputIn()->GetSpacing(spc);
                for (unsigned int i=0;i<dim;++i) 
                {
-                       vspacing.push_back((float)spc[i]);
+                       vspacing.push_back( (double)spc[i] );
+                       vorigin.push_back( (double)origin[i] );
                }
-
-               vrange.push_back((float)range[0]);
-               vrange.push_back((float)range[1]);
-
+               vrange.push_back((double)range[0]);
+               vrange.push_back((double)range[1]);
                if (bbGetInputIn()->GetScalarType()==VTK_BIT)                           nametype="VTK_BIT";                     // 1
                if (bbGetInputIn()->GetScalarType()==VTK_CHAR)                          nametype="VTK_CHAR";                    // 2
                if (bbGetInputIn()->GetScalarType()==VTK_SIGNED_CHAR)           nametype="VTK_SIGNED_CHAR";     // 15
@@ -109,13 +107,13 @@ void ImageVtkProperties::Process()
                vrange.push_back(0);
                nametype                        = "VOID";                               
        }       
-       bbSetOutputDimension( dim );
-       bbSetOutputSize( vsize );
-       bbSetOutputSpacing( vspacing );
-       bbSetOutputMinMax( vrange );
-       bbSetOutputTypeName( nametype );
-       bbSetOutputComponents( numberoOfComponents );
-       
+       bbSetOutputDimension    ( dim );
+       bbSetOutputOrigin               ( vorigin );
+       bbSetOutputSize                 ( vsize );
+       bbSetOutputSpacing              ( vspacing );
+       bbSetOutputMinMax               ( vrange );
+       bbSetOutputTypeName             ( nametype );
+       bbSetOutputComponents   ( numberoOfComponents );
 }
 //===== 
 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)