Clipping a non-manifold mesh leads to crash with vtkBooleanOperationPolyDataFilter
@cory.quammen @tjcorona @seanm
Hi guys,
I just discovered a crash that stems from trying to clip a non-manifold mesh. I've got two meshes one is linearly subdivided and the other isn't, which I then run a boolean filter on both with the operation set to difference and get a crash within vtkOBBTree's DisjointOBBNodes. I noticed that @ line 1805 in vtkOBBTree.cxx this->Tree is NULL, could you guys have a look.
#0 0x00000001056a887c in vtkOBBTree::DisjointOBBNodes(vtkOBBNode*, vtkOBBNode*, vtkMatrix4x4*) at /Users/seun/Documents/VTK/vtk/Filters/General/vtkOBBTree.cxx:1447
#1 0x00000001056a9e11 in vtkOBBTree::IntersectWithOBBTree(vtkOBBTree*, vtkMatrix4x4*, int (*)(vtkOBBNode*, vtkOBBNode*, vtkMatrix4x4*, void*), void*) at /Users/seun/Documents/VTK/vtk/Filters/General/vtkOBBTree.cxx:1813
#2 0x00000001056c721d in vtkIntersectionPolyDataFilter::RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) at /Users/seun/Documents/VTK/vtk/Filters/General/vtkIntersectionPolyDataFilter.cxx:2469
#3 0x0000000104b93b98 in vtkPolyDataAlgorithm::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkPolyDataAlgorithm.cxx:88
#4 0x0000000104b84e90 in vtkExecutive::CallAlgorithm(vtkInformation*, int, vtkInformationVector**, vtkInformationVector*) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkExecutive.cxx:773
#5 0x0000000104b7c5bd in vtkDemandDrivenPipeline::ExecuteData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkDemandDrivenPipeline.cxx:490
#6 0x0000000104b6e664 in vtkCompositeDataPipeline::ExecuteData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkCompositeDataPipeline.cxx:169
#7 0x0000000104b7b943 in vtkDemandDrivenPipeline::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkDemandDrivenPipeline.cxx:273
#8 0x0000000104ba2b2a in vtkStreamingDemandDrivenPipeline::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkStreamingDemandDrivenPipeline.cxx:328
#9 0x0000000104b7c3a5 in vtkDemandDrivenPipeline::UpdateData(int) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkDemandDrivenPipeline.cxx:440
#10 0x0000000104ba2f2a in vtkStreamingDemandDrivenPipeline::Update(int, vtkInformationVector*) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkStreamingDemandDrivenPipeline.cxx:403
#11 0x0000000104ba2d96 in vtkStreamingDemandDrivenPipeline::Update(int) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkStreamingDemandDrivenPipeline.cxx:365
#12 0x0000000104b67f22 in vtkAlgorithm::Update(int) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkAlgorithm.cxx:1456
#13 0x0000000104b67ee6 in vtkAlgorithm::Update() at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkAlgorithm.cxx:1450
#14 0x00000001056d41fc in vtkBooleanOperationPolyDataFilter::RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) at /Users/seun/Documents/VTK/vtk/Filters/General/vtkBooleanOperationPolyDataFilter.cxx:111
#15 0x0000000104b93b98 in vtkPolyDataAlgorithm::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkPolyDataAlgorithm.cxx:88
#16 0x0000000104b84e90 in vtkExecutive::CallAlgorithm(vtkInformation*, int, vtkInformationVector**, vtkInformationVector*) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkExecutive.cxx:773
#17 0x0000000104b7c5bd in vtkDemandDrivenPipeline::ExecuteData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkDemandDrivenPipeline.cxx:490
#18 0x0000000104b6e664 in vtkCompositeDataPipeline::ExecuteData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkCompositeDataPipeline.cxx:169
#19 0x0000000104b7b943 in vtkDemandDrivenPipeline::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkDemandDrivenPipeline.cxx:273
#20 0x0000000104ba2b2a in vtkStreamingDemandDrivenPipeline::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkStreamingDemandDrivenPipeline.cxx:328
#21 0x0000000104b7c3a5 in vtkDemandDrivenPipeline::UpdateData(int) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkDemandDrivenPipeline.cxx:440
#22 0x0000000104ba2f2a in vtkStreamingDemandDrivenPipeline::Update(int, vtkInformationVector*) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkStreamingDemandDrivenPipeline.cxx:403
#23 0x0000000104ba2d96 in vtkStreamingDemandDrivenPipeline::Update(int) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkStreamingDemandDrivenPipeline.cxx:365
#24 0x0000000104b67f22 in vtkAlgorithm::Update(int) at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkAlgorithm.cxx:1456
#25 0x0000000104b67ee6 in vtkAlgorithm::Update() at /Users/seun/Documents/VTK/vtk/Common/ExecutionModel/vtkAlgorithm.cxx:1450