#include "vtkCleanPolyData.h"
#include "vtkTriangleFilter.h"
+#include "vtkFillHolesFilter.h"
+
namespace bbcreaVtk
{
// bbSetOutputOut( bbGetInputIn() );
// std::cout << "Output value = " <<bbGetOutputOut() << std::endl;
- printf("EED BooleanOperationPolyDataFilter::Process Start In1=%p In2=%p\n", bbGetInputIn1(), bbGetInputIn2() );
-
-
-
if ((bbGetInputIn1()!=NULL) && (bbGetInputIn2()!=NULL) )
{
+ //TRIANGLE FILTER NOT NEEDED, this can handle non triangle meshes.
+
- vtkPoints *points1 = bbGetInputIn1()->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() );
+// 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();
-
-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");
-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 *clean2 = vtkCleanPolyData::New();
- clean1->SetInputData( bbGetInputIn1() );
- clean2->SetInputData( bbGetInputIn2() );
- clean1->Update();
- clean2->Update();
- vtkTriangleFilter *triangle1 = vtkTriangleFilter::New();
- vtkTriangleFilter *triangle2 = vtkTriangleFilter::New();
- triangle1->SetInputData( clean1->GetOutput() );
- triangle2->SetInputData( clean2->GetOutput() );
- triangle1->Update();
- triangle2->Update();
+// booleanOperation->SetInputData(0, triangle1->GetOutput() );
+// booleanOperation->SetInputData(1, triangle2->GetOutput() );
+
+ booleanOperation->SetInputData(0, bbGetInputIn1() );
+ booleanOperation->SetInputData(1, bbGetInputIn2() );
- vtkPolyDataBooleanFilter *booleanOperation = vtkPolyDataBooleanFilter::New();
- booleanOperation->SetInputData(0, triangle1->GetOutput() );
- booleanOperation->SetInputData(1, triangle2->GetOutput() );
if (bbGetInputOperation()==0 )
{
booleanOperation->SetOperModeToUnion();
*/
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() );
+
+ /*
+ *Added boxes(triangleFilter and CleanPolyData) to handle this outside the box
+ *
+ vtkTriangleFilter *triangleEnd = vtkTriangleFilter::New();
+ vtkCleanPolyData *cleanEnd = vtkCleanPolyData::New();
+ bbSetOutputOut( cleanEnd->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
-
- printf("EED BooleanOperationPolyDataFilter::Process End \n" );
}
//=====