Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
zippy84 committed Aug 29, 2023
1 parent 812e89a commit a26bb98
Showing 1 changed file with 25 additions and 8 deletions.
33 changes: 25 additions & 8 deletions vtkPolyDataBooleanFilter.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ limitations under the License.
#include <vtkModifiedBSPTree.h>
#include <vtkCellArrayIterator.h>
#include <vtkKdTree.h>
#include <vtkCellIterator.h>

#include "vtkPolyDataBooleanFilter.h"
#include "vtkPolyDataContactFilter.h"
Expand Down Expand Up @@ -2872,25 +2873,41 @@ bool vtkPolyDataBooleanFilter::CombineRegions () {
vtkPolyData *regsA = cfA->GetOutput();
vtkPolyData *regsB = cfB->GetOutput();

scalarsA = vtkIdTypeArray::SafeDownCast(regsA->GetCellData()->GetScalars());
scalarsB = vtkIdTypeArray::SafeDownCast(regsB->GetCellData()->GetScalars());
scalarsA = vtkIdTypeArray::SafeDownCast(regsA->GetPointData()->GetScalars());
scalarsB = vtkIdTypeArray::SafeDownCast(regsB->GetPointData()->GetScalars());

if (OperMode != OPER_INTERSECTION) {
vtkCellIterator *cellItr;

vtkIdType cellId;
vtkIdList *ptIds;

if (comb[0] == Loc::INSIDE) {
for (i = 0; i < regsA->GetNumberOfCells(); i++) {
if (locsA.count(scalarsA->GetValue(i)) == 1) {
regsA->ReverseCell(i);
cellItr = regsA->NewCellIterator();

for (cellItr->InitTraversal(); !cellItr->IsDoneWithTraversal(); cellItr->GoToNextCell()) {
cellId = cellItr->GetCellId();
ptIds = cellItr->GetPointIds();

if (locsA.count(scalarsA->GetValue(ptIds->GetId(0))) == 1) {
regsA->ReverseCell(cellId);
}
}
}

if (comb[1] == Loc::INSIDE) {
for (i = 0; i < regsB->GetNumberOfCells(); i++) {
if (locsB.count(scalarsB->GetValue(i)) == 1) {
regsB->ReverseCell(i);
cellItr = regsB->NewCellIterator();

for (cellItr->InitTraversal(); !cellItr->IsDoneWithTraversal(); cellItr->GoToNextCell()) {
cellId = cellItr->GetCellId();
ptIds = cellItr->GetPointIds();

if (locsB.count(scalarsB->GetValue(ptIds->GetId(0))) == 1) {
regsB->ReverseCell(cellId);
}
}
}

}

// OrigCellIds und CellData
Expand Down

0 comments on commit a26bb98

Please sign in to comment.