]> Creatis software - creaVtk.git/blobdiff - bbtk_creaVtk_PKG/src/bbcreaVtkLinearExtrusionFilter.cxx
#3513 CleanMeshWithPatch
[creaVtk.git] / bbtk_creaVtk_PKG / src / bbcreaVtkLinearExtrusionFilter.cxx
index f254fc431b509508fe0e8644ffef076e2c12dbe8..678efe5f3a63f556834ca75a5819605f5487e8d0 100644 (file)
@@ -45,6 +45,8 @@ void LinearExtrusionFilter::Process()
         std::vector<double>     dir             = bbGetInputDirection();
                                 extrude         = vtkLinearExtrusionFilter::New();
                                 triangleFilter  = vtkTriangleFilter::New();
+
+                
         extrude->SetInputData( bbGetInputIn() );
         extrude->SetExtrusionTypeToNormalExtrusion();
         if (dir.size()==3)
@@ -53,11 +55,23 @@ void LinearExtrusionFilter::Process()
         } else {
             extrude->SetVector(1, 0, 0);
         }
-        extrude->SetScaleFactor( bbGetInputScalarFactor() * (-1) );
+        //        extrude->SetScaleFactor( bbGetInputScalarFactor() * (-1) );
+        extrude->SetScaleFactor( bbGetInputScalarFactor()  );
         extrude->Update();
         triangleFilter->SetInputData( extrude->GetOutput() );
         triangleFilter->Update( );
-        bbSetOutputOut( triangleFilter->GetOutput() );
+        
+        vtkPolyData *outputPolydata = triangleFilter->GetOutput();
+        if (bbGetInputScalarFactor()>1 )
+        {
+            vtkReverseSense * reverseSense = vtkReverseSense::New();
+            reverseSense->SetInputData( triangleFilter->GetOutput() );
+            reverseSense->ReverseNormalsOff();
+            reverseSense->ReverseCellsOn();
+            reverseSense->Update();
+            outputPolydata=reverseSense->GetOutput();
+        }
+        bbSetOutputOut( outputPolydata );
     } else {
         bbSetOutputOut( NULL );
     }// if bbGetInputIn