Hi everyone,<div><br></div><div>I'm trying to compute an XOR boolean operation between two NON manifold surfaces (see figure <a href="http://shareimage.org/images/3s5diyk1oypdib5fvx80.png">http://shareimage.org/images/3s5diyk1oypdib5fvx80.png</a>). The surface A is the white one (top panel of previous figure) and the surface B is the red one (bottom panel). B is simply a region extracted from A using vtkExtractPolyDataGeometry.</div>
<div><br></div><div>Now I want to compute a boolean XOR between A and B in order to get C: the green colored surface. I'm using vtkBooleanOperationPolyDataFilter:</div><div><br></div><div><div>vtkSmartPointer<vtkBooleanOperationPolyDataFilter> boolean = vtkSmartPointer<vtkBooleanOperationPolyDataFilter>::New();</div>
<div>boolean->SetOperationToDifference();</div><div>boolean->SetInput(0,meshA);</div><div>boolean->SetInput(1,meshB);</div><div>boolean->Update();</div></div><div><br></div><div>vtkPolyData* meshC = boolean->GetOutput();</div>
<div><br></div><div>However, when using this approach I obtain a surface like this (the blue one): <a href="http://shareimage.org/images/gva77uyrmog4n2j1ndo.png">http://shareimage.org/images/gva77uyrmog4n2j1ndo.png</a>; that clearly is not the expected XOR operation.</div>
<div><br></div><div>I know I'm not using manifold surfaces (as explicitly required by vtkBooleanOperationPolyDataFilter) so I don't know if that's why I'm getting these results. If so, is there another way of computing this XOR operation?</div>
<div><br></div><div>Thanks,</div><div>Miguel</div><div><br></div>