Hi everyone,<div><br></div><div>I&#39;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&#39;m using vtkBooleanOperationPolyDataFilter:</div><div><br></div><div><div>vtkSmartPointer&lt;vtkBooleanOperationPolyDataFilter&gt; boolean = vtkSmartPointer&lt;vtkBooleanOperationPolyDataFilter&gt;::New();</div>
<div>boolean-&gt;SetOperationToDifference();</div><div>boolean-&gt;SetInput(0,meshA);</div><div>boolean-&gt;SetInput(1,meshB);</div><div>boolean-&gt;Update();</div></div><div><br></div><div>vtkPolyData* meshC = boolean-&gt;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&#39;m not using manifold surfaces (as explicitly required by vtkBooleanOperationPolyDataFilter) so I don&#39;t know if that&#39;s why I&#39;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>