mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-29 14:00:49 +03:00
0030092: Modeling Algorithms - Invalid result of Section operation
The following improvements have been made in Boolean operations algorithm in order to fix the problem: 1. Initialization of the pave blocks which vertices have acquired the SD ones. 2. Removing from Data Structure the small edges having the same vertices on both ends (either initially or acquired). 3. Avoid adding empty SD connections when one vertex points to itself. Test case for the issue.
This commit is contained in:
@@ -629,9 +629,13 @@ void BOPAlgo_PaveFiller::FillShrunkData(Handle(BOPDS_PaveBlock)& thePB)
|
||||
const TopoDS_Vertex& aV1=(*(TopoDS_Vertex *)(&myDS->Shape(nV1)));
|
||||
const TopoDS_Vertex& aV2=(*(TopoDS_Vertex *)(&myDS->Shape(nV2)));
|
||||
// Get the edge
|
||||
Standard_Integer nE = thePB->OriginalEdge();
|
||||
if (nE < 0 && !thePB->HasEdge(nE))
|
||||
return;
|
||||
Standard_Integer nE = -1;
|
||||
if (!thePB->HasEdge(nE))
|
||||
{
|
||||
nE = thePB->OriginalEdge();
|
||||
if (nE < 0)
|
||||
return;
|
||||
}
|
||||
|
||||
const TopoDS_Edge& aE=(*(TopoDS_Edge *)(&myDS->Shape(nE)));
|
||||
// Range
|
||||
|
Reference in New Issue
Block a user