X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fitkvtk%2Fsrc%2FbbitkvtkGeodesicMeshDeformation.cxx;h=98559509fcff7fbd279be8b342c6a87be2b9c03e;hb=296a644550aec58bcab0a7c55e486da19eef78f1;hp=a589a47453ba17e6fc4202b533ae8447acc32e59;hpb=377c6e2f638055c2c03f544c986204d3736b0f27;p=bbtk.git diff --git a/packages/itkvtk/src/bbitkvtkGeodesicMeshDeformation.cxx b/packages/itkvtk/src/bbitkvtkGeodesicMeshDeformation.cxx index a589a47..9855950 100644 --- a/packages/itkvtk/src/bbitkvtkGeodesicMeshDeformation.cxx +++ b/packages/itkvtk/src/bbitkvtkGeodesicMeshDeformation.cxx @@ -14,7 +14,6 @@ BBTK_BLACK_BOX_IMPLEMENTATION(GeodesicMeshDeformation,bbtk::AtomicBlackBox); //===== void GeodesicMeshDeformation::Process() { -printf("PG GeodesicMeshDeformation::Process START \n"); // THE MAIN PROCESSING METHOD BODY // Here we simply set the input 'In' value to the output 'Out' // And print out the output value @@ -27,10 +26,13 @@ printf("PG GeodesicMeshDeformation::Process START \n"); // * TYPE is the C++ type of the input/output // (the one provided in the attribute 'type' of the tag 'input') std::vector lstCenter = bbGetInputCenter(); - double s = bbGetInputS(); - bool ok = false; - bool pdChanged = false; - using MeshType = itk::QuadEdgeMesh; + double s = bbGetInputS(); + bool ok = false; + bool pdChanged = false; + using MeshType = itk::QuadEdgeMesh; + std::vector deformInfo; + bbSetOutputOut(deformInfo); + //std::vector displacementVector; //Set up QuadEdge and filter every time polydata changes if ((bbGetInputIn() != polydata) && (bbGetInputActive()==true) && (bbGetInputIn() != NULL)) @@ -125,10 +127,10 @@ printf("PG GeodesicMeshDeformation::Process START \n"); double p[3]; // point double pb[3]; // point base double np[3]; // new point - double sx,sy,sz; - sx = s*2; - sy = sx; - sz = sy; +// double sx,sy,sz; +// sx = s*2; +// sy = s*2; +// sz = s*2; double displcement_x = 0; double displcement_y = 0; @@ -141,7 +143,7 @@ printf("PG GeodesicMeshDeformation::Process START \n"); displcement_z = bbGetInputDirection()[2]; } // if TypeIn 0 Direction - printf(" EED GeodesicMeshDeformation::Process %ld %ld - %f %f %f \n", EdgeIdBack, bbGetInputEdgeId() , lstCenter[0],lstCenter[1],lstCenter[2] ); + //printf(" EED GeodesicMeshDeformation::Process %ld %ld - %f %f %f \n", EdgeIdBack, bbGetInputEdgeId() , lstCenter[0],lstCenter[1],lstCenter[2] ); if (bbGetInputTypeIn()==1) // Center { @@ -185,7 +187,7 @@ printf("PG GeodesicMeshDeformation::Process START \n"); using CriterionType = itk::FastMarchingThresholdStoppingCriterion; auto criterion = CriterionType::New(); sCurrent = s; - criterion->SetThreshold(s*2); + criterion->SetThreshold(s*4); fmmFilter->SetStoppingCriterion(criterion); } fmmFilter->Update(); @@ -215,12 +217,16 @@ printf("PG GeodesicMeshDeformation::Process START \n"); } ++BegProcessedIt; } + //double directionMoved[3] = {lstCenter[0]-displcement_x, lstCenter[1]-displcement_y, lstCenter[2]-displcement_z}; + //vtkMath::Normalize(directionMoved); + std::vector info{lstCenter[0],lstCenter[1],lstCenter[2], bbGetInputDirection()[0] , bbGetInputDirection()[1], bbGetInputDirection()[2],(double) bbGetInputEdgeId(), s}; + bbSetOutputOut(info); + cout << "info updated" << endl; points->Modified(); - bbGetInputIn()->Modified(); + bbGetInputIn()->Modified(); }// if ffmFilter != NULL } // if distance_x y z != 0 } // In != NULL ok active - printf("PG GeodesicMeshDeformation::Process END \n"); } //===== // 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) @@ -241,6 +247,8 @@ void GeodesicMeshDeformation::bbUserSetDefaultValues() EdgeIdBack=-1; bbSetInputEdgeId(EdgeIdBack); bbSetInputS(10); + std::vector OutputVect; + bbSetOutputOut(OutputVect); backLstCenter.push_back(0); backLstCenter.push_back(0);