+//=====
+// 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)
+//=====
+#include "bbcreaVtkBooleanOperationPolyDataFilter.h"
+#include "bbcreaVtkPackage.h"
+
+#include "vtkBooleanOperationPolyDataFilter.h"
+#include "vtkCleanPolyData.h"
+#include "vtkTriangleFilter.h"
+
+namespace bbcreaVtk
+{
+
+BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaVtk,BooleanOperationPolyDataFilter)
+BBTK_BLACK_BOX_IMPLEMENTATION(BooleanOperationPolyDataFilter,bbtk::AtomicBlackBox);
+//=====
+// 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::Process()
+{
+
+// THE MAIN PROCESSING METHOD BODY
+// Here we simply set the input 'In' value to the output 'Out'
+// And print out the output value
+// INPUT/OUTPUT ACCESSORS ARE OF THE FORM :
+// void bbSet{Input|Output}NAME(const TYPE&)
+// const TYPE& bbGet{Input|Output}NAME() const
+// Where :
+// * NAME is the name of the input/output
+// (the one provided in the attribute 'name' of the tag 'input')
+// * TYPE is the C++ type of the input/output
+// (the one provided in the attribute 'type' of the tag 'input')
+// bbSetOutputOut( bbGetInputIn() );
+// std::cout << "Output value = " <<bbGetOutputOut() << std::endl;
+
+ 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");
+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();
+
+ vtkBooleanOperationPolyDataFilter *booleanOperation = vtkBooleanOperationPolyDataFilter::New();
+ booleanOperation->SetInputData(0, triangle1->GetOutput() );
+ booleanOperation->SetInputData(1, triangle2->GetOutput() );
+
+ if (bbGetInputOperation()==0 )
+ {
+ booleanOperation->SetOperationToUnion();
+ }
+ if (bbGetInputOperation()==1 )
+ {
+ booleanOperation->SetOperationToIntersection();
+ }
+ if (bbGetInputOperation()==2 )
+ {
+ booleanOperation->SetOperationToDifference();
+ }
+ booleanOperation->Update();
+ bbSetOutputOut( booleanOperation->GetOutput() );
+ } else {
+ 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);
+
+}
+//=====
+// 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
+
+
+}
+//=====
+// 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
+
+