#include "bbcreaVtkBooleanOperationPolyDataFilter.h"
#include "bbcreaVtkPackage.h"
-#include "vtkBooleanOperationPolyDataFilter.h"
+// #include "vtkBooleanOperationPolyDataFilter.h"
+#include "vtkPolyDataBooleanFilter.h"
+#include "vtkPoints.h"
+
#include "vtkCleanPolyData.h"
#include "vtkTriangleFilter.h"
// 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) )
{
+ 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() );
+
+
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");
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