X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk_creaVtk_PKG%2Fsrc%2FbbcreaVtkBooleanOperationPolyDataFilter.cxx;h=7a2d9567050dfcb69e8f565d3edc8e0aa1597a20;hb=4d71ce834efd16b6e7c23ee82134cb421defe8d0;hp=6cb69d57990c780c5a9780163efb5624f72ba075;hpb=ccd9515764b83d719668120ccf8496a8fc6e804b;p=creaVtk.git diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkBooleanOperationPolyDataFilter.cxx b/bbtk_creaVtk_PKG/src/bbcreaVtkBooleanOperationPolyDataFilter.cxx index 6cb69d5..7a2d956 100644 --- a/bbtk_creaVtk_PKG/src/bbcreaVtkBooleanOperationPolyDataFilter.cxx +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkBooleanOperationPolyDataFilter.cxx @@ -6,9 +6,11 @@ // #include "vtkBooleanOperationPolyDataFilter.h" #include "vtkPolyDataBooleanFilter.h" +#include "vtkPoints.h" #include "vtkCleanPolyData.h" #include "vtkTriangleFilter.h" +#include "vtkFillHolesFilter.h" namespace bbcreaVtk @@ -38,7 +40,7 @@ void BooleanOperationPolyDataFilter::Process() if ((bbGetInputIn1()!=NULL) && (bbGetInputIn2()!=NULL) ) { - + 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"); @@ -47,7 +49,8 @@ printf("EED Warnning BooleanOperationPolyDataFilter::Process Put this code at t 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"); - vtkCleanPolyData *clean1 = vtkCleanPolyData::New(); + + vtkCleanPolyData *clean1 = vtkCleanPolyData::New(); vtkCleanPolyData *clean2 = vtkCleanPolyData::New(); clean1->SetInputData( bbGetInputIn1() ); clean2->SetInputData( bbGetInputIn2() ); @@ -60,9 +63,17 @@ printf("EED Warnning BooleanOperationPolyDataFilter::Process Put this code at t triangle1->Update(); triangle2->Update(); +// vtkPolyDataBooleanFilter is not a vtk filter (this one yes: vtkBooleanOperationPolyDataFilter ) +// https://github.com/zippy84/vtkbool + // vtkPolyDataBooleanFilter is a local code creaVtk lib vtkPolyDataBooleanFilter *booleanOperation = vtkPolyDataBooleanFilter::New(); + booleanOperation->SetInputData(0, triangle1->GetOutput() ); booleanOperation->SetInputData(1, triangle2->GetOutput() ); + +// booleanOperation->SetInputData(0, bbGetInputIn1() ); +// booleanOperation->SetInputData(1, bbGetInputIn2() ); + if (bbGetInputOperation()==0 ) { booleanOperation->SetOperModeToUnion(); @@ -95,52 +106,63 @@ printf("EED Warnning BooleanOperationPolyDataFilter::Process Put this code at t } */ - booleanOperation->Update(); - bbSetOutputOut( booleanOperation->GetOutput() ); + booleanOperation->Update(); + + vtkPoints *points = booleanOperation->GetOutput()->GetPoints(); + if (points!=NULL) + { +// vtkFillHolesFilter *fillHolesFilter = vtkFillHolesFilter::New(); +// fillHolesFilter->SetInputData( booleanOperation->GetOutput() ); +// fillHolesFilter->SetHoleSize(100000.0); +// fillHolesFilter->Update(); +// bbSetOutputOut( fillHolesFilter->GetOutput() ); + 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 } + //===== // 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