X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=bbtk_creaVtk_PKG%2Fsrc%2FbbcreaVtkBooleanOperationPolyDataFilter.cxx;h=c1d7192e642d0df74cb1a40c03fdec9d38341661;hb=1b751726e6e277dc63258520d3c243f705d1b929;hp=9017e5bdcb66b9ef2683d8d05139f6fe920a18d1;hpb=b146797e0ad985788de697dcb3e6a48f4a2a488a;p=creaVtk.git diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkBooleanOperationPolyDataFilter.cxx b/bbtk_creaVtk_PKG/src/bbcreaVtkBooleanOperationPolyDataFilter.cxx index 9017e5b..c1d7192 100644 --- a/bbtk_creaVtk_PKG/src/bbcreaVtkBooleanOperationPolyDataFilter.cxx +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkBooleanOperationPolyDataFilter.cxx @@ -4,7 +4,10 @@ #include "bbcreaVtkBooleanOperationPolyDataFilter.h" #include "bbcreaVtkPackage.h" -#include "vtkBooleanOperationPolyDataFilter.h" +// #include "vtkBooleanOperationPolyDataFilter.h" +#include "vtkPolyDataBooleanFilter.h" +#include "vtkPoints.h" + #include "vtkCleanPolyData.h" #include "vtkTriangleFilter.h" @@ -33,9 +36,19 @@ void BooleanOperationPolyDataFilter::Process() // bbSetOutputOut( bbGetInputIn() ); // std::cout << "Output value = " <GetPoints(); + vtkPoints *points2 = bbGetInputIn2()->GetPoints(); + printf("EED BooleanOperationPolyDataFilter::Process Number of points 1 %ld\n", points1->GetNumberOfPoints() ); + printf("EED BooleanOperationPolyDataFilter::Process Number of points 2 %ld\n", points2->GetNumberOfPoints() ); + + printf("EED Warnning BooleanOperationPolyDataFilter::Process Put this code at the end of CreateMesh.. or create 2 new boxes\n"); printf("EED Warnning BooleanOperationPolyDataFilter::Process Put this code at the end of CreateMesh.. or create 2 new boxes\n"); printf("EED Warnning BooleanOperationPolyDataFilter::Process Put this code at the end of CreateMesh.. or create 2 new boxes\n"); @@ -57,67 +70,93 @@ printf("EED Warnning BooleanOperationPolyDataFilter::Process Put this code at t triangle1->Update(); triangle2->Update(); + vtkPolyDataBooleanFilter *booleanOperation = vtkPolyDataBooleanFilter::New(); + booleanOperation->SetInputData(0, triangle1->GetOutput() ); + booleanOperation->SetInputData(1, triangle2->GetOutput() ); + if (bbGetInputOperation()==0 ) + { + booleanOperation->SetOperModeToUnion(); + } + if (bbGetInputOperation()==1 ) + { + booleanOperation->SetOperModeToIntersection(); + } + if (bbGetInputOperation()==2 ) + { + booleanOperation->SetOperModeToDifference(); + } + +/* vtkBooleanOperationPolyDataFilter *booleanOperation = vtkBooleanOperationPolyDataFilter::New(); booleanOperation->SetInputData(0, triangle1->GetOutput() ); booleanOperation->SetInputData(1, triangle2->GetOutput() ); - if (bbGetInputOperation()==0 ) { booleanOperation->SetOperationToUnion(); } if (bbGetInputOperation()==1 ) { - booleanOperation->SetOperationToIntersection(); + booleanOperation->SetOperationToIntersection(); } if (bbGetInputOperation()==2 ) { - booleanOperation->SetOperationToDifference(); - } - booleanOperation->Update(); - bbSetOutputOut( booleanOperation->GetOutput() ); + booleanOperation->SetOperationToDifference(); + booleanOperation->SetReorientDifferenceCells( bbGetInputReorientDifferenceCells() ); + } + */ + + booleanOperation->Update(); + vtkPoints *points = booleanOperation->GetOutput()->GetPoints(); + if (points!=NULL) + { + bbSetOutputOut( booleanOperation->GetOutput() ); + } else { + bbSetOutputOut( NULL ); + } // if points!=NULL } else { + bbSetOutputOut( NULL ); printf("EED Warnning! BooleanOperationPolyDataFilter::Process vtkPolyData In1 or In2 is EMPTY\n"); } // if In1 In2 != NULL + + printf("EED BooleanOperationPolyDataFilter::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) //===== void BooleanOperationPolyDataFilter::bbUserSetDefaultValues() { - // SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX // Here we initialize the input 'In' to 0 bbSetInputIn1(NULL); bbSetInputIn2(NULL); bbSetInputOperation(0); - + bbSetInputReorientDifferenceCells(true); + bbSetOutputOut(NULL); } + //===== // 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 BooleanOperationPolyDataFilter::bbUserInitializeProcessing() { - // THE INITIALIZATION METHOD BODY : // Here does nothing // but this is where you should allocate the internal/output pointers -// if any - - +// if any } + //===== // 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 BooleanOperationPolyDataFilter::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