// #include "vtkBooleanOperationPolyDataFilter.h"
#include "vtkPolyDataBooleanFilter.h"
+#include "vtkPoints.h"
#include "vtkCleanPolyData.h"
#include "vtkTriangleFilter.h"
+#include "vtkFillHolesFilter.h"
namespace bbcreaVtk
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");
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() );
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();
}
*/
- 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
}