]> Creatis software - bbtk.git/blobdiff - packages/vtk/src/bbvtkImageVtkProperties.cxx
#3167 BBTK Feature New Normal - box vtk ImageProperties GetOrientation
[bbtk.git] / packages / vtk / src / bbvtkImageVtkProperties.cxx
index f9d8b7d1c958362386a3b0471ae5ed9537e621a1..2057727a9a88ada2d54699fd003f226efafa8840 100644 (file)
@@ -40,43 +40,41 @@ 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();
                bbGetInputIn()->Update();
-               
                bbGetInputIn()->GetWholeExtent(ext);
                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
@@ -102,13 +100,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)