@@ -624,7 +624,9 @@ bool vtkPolyDataBooleanFilter::GetPolyStrips (vtkPolyData *pd, vtkIdTypeArray *c
624
624
// sucht nach gleichen captPts
625
625
626
626
{
627
- std::map<Point3d, std::map<vtkIdType, std::vector<std::reference_wrapper<StripPt>>>> collapsed;
627
+ // std::map<Point3d, std::map<vtkIdType, std::vector<std::reference_wrapper<StripPt>>>> collapsed;
628
+
629
+ std::map<Point3d, std::set<vtkIdType>> collapsed;
628
630
629
631
PolyStripsType::iterator itr;
630
632
StripPtsType::iterator itr2;
@@ -638,16 +640,24 @@ bool vtkPolyDataBooleanFilter::GetPolyStrips (vtkPolyData *pd, vtkIdTypeArray *c
638
640
StripPt &sp = itr2->second ;
639
641
640
642
if (sp.capt & Capt::BOUNDARY) {
641
- collapsed[{sp.cutPt [0 ], sp.cutPt [1 ], sp.cutPt [2 ]}][sp.ind ].push_back (sp);
643
+ // collapsed[{sp.cutPt[0], sp.cutPt[1], sp.cutPt[2]}][sp.ind].push_back(sp);
644
+
645
+ auto inds = collapsed[{sp.cutPt [0 ], sp.cutPt [1 ], sp.cutPt [2 ]}];
646
+
647
+ inds.emplace (sp.ind );
648
+
649
+ if (inds.size () > 1 ) {
650
+ return true ;
651
+ }
642
652
}
643
653
}
644
654
}
645
655
646
- for (auto &[pt, map] : collapsed) {
647
- if (map.size () > 1 ) {
648
- return true ;
649
- }
650
- }
656
+ // for (auto &[pt, map] : collapsed) {
657
+ // if (map.size() > 1) {
658
+ // return true;
659
+ // }
660
+ // }
651
661
}
652
662
653
663
for (itr = polyLines.begin (); itr != polyLines.end (); ++itr) {
0 commit comments