- for (; myDSIt.More(); myDSIt.Next()) {
- myDSIt.Current(n1, n2, bJustAddInterference);
- //
- if (!myIntrPool->IsComputed(n1, n2)) {
- anIndexIn=0;
- aWhat=n1;
- aWith=n2;
- SortTypes(aWhat, aWith);
- if (!bJustAddInterference) {
- const TopoDS_Shape& aS1=myDS->GetShape(aWhat);
- const TopoDS_Shape& aS2=myDS->GetShape(aWith);
- //
- const TopoDS_Vertex& aV1=TopoDS::Vertex(aS1);
- const TopoDS_Vertex& aV2=TopoDS::Vertex(aS2);
- aFlag=IntTools_Tools::ComputeVV (aV1, aV2);
- //
- if (!aFlag) {
- BOPTools_VVInterference anInterf (aWhat, aWith);
- anIndexIn=aVVs.Append(anInterf);
- }
- }
- myIntrPool->AddInterference(aWhat, aWith, BooleanOperations_VertexVertex, anIndexIn);
- }
+ // BlockLength correction
+ myDSIt->Initialize(TopAbs_VERTEX, TopAbs_VERTEX);
+ aNbVVs=myDSIt->BlockLength();
+ aBL=aVVs.BlockLength();
+ if (aNbVVs > aBL) {
+ aVVs.SetBlockLength(aNbVVs);