]> Creatis software - creaVtk.git/blobdiff - bbtk_creaVtk_PKG/src/bbcreaVtkMeshDeformation.cxx
#3526 Active option in HausdorffDistancePointSetFilter box
[creaVtk.git] / bbtk_creaVtk_PKG / src / bbcreaVtkMeshDeformation.cxx
index cddffce77d323569eb3dca165ccfe964adc6124c..b737afbf935b36cdb643ca437477bd8b259cd056 100644 (file)
@@ -13,7 +13,6 @@ BBTK_BLACK_BOX_IMPLEMENTATION(MeshDeformation,bbtk::AtomicBlackBox);
 //===== 
 void MeshDeformation::Process()
 {
-
 // THE MAIN PROCESSING METHOD BODY
 //   Here we simply set the input 'In' value to the output 'Out'
 //   And print out the output value
@@ -29,14 +28,13 @@ void MeshDeformation::Process()
 //    std::cout << "Output value = " <<bbGetOutputOut() << std::endl;
 
     std::vector<double> lstCenter = bbGetInputCenter();
-
-    double s = bbGetInputS();
-    bool ok=false;
+    double  s   = bbGetInputS();
+    bool    ok  = false;
     if (bbGetInputTypeIn()==0) // direction
     {
         if (bbGetInputDirection().size()==3)
         {
-                ok = !( (bbGetInputDirection()[0]==0) && (bbGetInputDirection()[1]==0) && (bbGetInputDirection()[2]==0) );
+            ok = !( (bbGetInputDirection()[0]==0) && (bbGetInputDirection()[1]==0) && (bbGetInputDirection()[2]==0) );
         }
     } // if TypeIn 0
     
@@ -53,9 +51,9 @@ void MeshDeformation::Process()
         double  pb[3]; // point base
         double  np[3]; // new point
         double  sx,sy,sz;
-        sx = s*2;
-        sy = sx;
-        sz = sy;
+        sx = s*4;
+        sy = s*4;
+        sz = s*4;
 
         double displcement_x = 0;
         double displcement_y = 0;
@@ -67,37 +65,40 @@ void MeshDeformation::Process()
             displcement_y = bbGetInputDirection()[1];
             displcement_z = bbGetInputDirection()[2];
         } // if TypeIn 0 Direction
-        
+               
+               printf(" EED MeshDeformation::Process   %ld   %ld  -   %f %f %f \n", EdgeIdBack, bbGetInputEdgeId() , lstCenter[0],lstCenter[1],lstCenter[2] );
+               
         if (bbGetInputTypeIn()==1) // Center
         {
             if (EdgeIdBack==bbGetInputEdgeId() )
             {
-                displcement_x   = (lstCenter[0]-backLstCenter[0])/1.0;
-                displcement_y   = (lstCenter[1]-backLstCenter[1])/1.0;
-                displcement_z   = (lstCenter[2]-backLstCenter[2])/1.0;
+                displcement_x = (lstCenter[0]-backLstCenter[0])/1.0;
+                displcement_y = (lstCenter[1]-backLstCenter[1])/1.0;
+                displcement_z = (lstCenter[2]-backLstCenter[2])/1.0;
             } // if EdgeIdBack!=bbGetInputEdgeId()
-            backLstCenter[0]= lstCenter[0];
-            backLstCenter[1]= lstCenter[1];
-            backLstCenter[2]= lstCenter[2];
+            backLstCenter[0] = lstCenter[0];
+            backLstCenter[1] = lstCenter[1];
+            backLstCenter[2] = lstCenter[2];
         } // if TypeIn 1 Center
-
-        
-            points->GetPoint( bbGetInputEdgeId() , pb );
-            if (EdgeIdBack!=bbGetInputEdgeId() )
+        points->GetPoint( bbGetInputEdgeId() , pb );
+        if (EdgeIdBack!=bbGetInputEdgeId() )
+        {
+            EdgeIdBack = bbGetInputEdgeId();
+            voiIdPoints.clear();
+            for ( i=0 ; i<size ; i++)
             {
-                EdgeIdBack = bbGetInputEdgeId();
-                voiIdPoints.clear();
-                for ( i=0 ; i<size ; i++)
+                points->GetPoint(i,p);
+                if ( (p[0]>(pb[0]-sx)) && (p[0]<(pb[0]+sx)) &&
+                     (p[1]>(pb[1]-sy)) && (p[1]<(pb[1]+sy)) &&
+                     (p[2]>(pb[2]-sz)) && (p[2]<(pb[2]+sz)) )
                 {
-                    points->GetPoint(i,p);
-                    if ( (p[0]>(pb[0]-sx)) && (p[0]<(pb[0]+sx)) &&
-                         (p[1]>(pb[1]-sy)) && (p[1]<(pb[1]+sy)) &&
-                         (p[2]>(pb[2]-sz)) && (p[2]<(pb[2]+sz)) )
-                    {
-                        voiIdPoints.push_back( i );
-                    } // if
-                } // for i
-            } // back
+                    voiIdPoints.push_back( i );
+                } // if
+            } // for i
+                       backLstCenter[0] = lstCenter[0];
+                       backLstCenter[1] = lstCenter[1];
+                       backLstCenter[2] = lstCenter[2];
+        } // if EdgeIdBack
 
         if ( !((displcement_x==0) &&(displcement_y==0) && (displcement_z==0)) )
         {
@@ -125,7 +126,7 @@ void MeshDeformation::Process()
             points->Modified();
             bbGetInputIn()->Modified();
         } // if distance_x y z  != 0
-    } // In != NULL    ok    active
+    } // In != NULL    ok    active    
 }
 //===== 
 // 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)
@@ -151,6 +152,7 @@ void MeshDeformation::bbUserSetDefaultValues()
     backLstCenter.push_back(0);
     backLstCenter.push_back(0);
 }
+
 //===== 
 // 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)
 //===== 
@@ -164,19 +166,18 @@ void MeshDeformation::bbUserInitializeProcessing()
 
   
 }
+
 //===== 
 // 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)
 //===== 
 void MeshDeformation::bbUserFinalizeProcessing()
 {
-
 //  THE FINALIZATION METHOD BODY :
 //    Here does nothing 
 //    but this is where you should desallocate the internal/output pointers 
 //    if any
-  
-}
 }
-// EO namespace bbcreaVtk
+
+}// EO namespace bbcreaVtk