mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-29 14:00:49 +03:00
# Warning: Building 2D curve of edge on face has failed.
(cherry picked from commit d0d712265120631f5cc58c3d480492e79a6c5123)
This commit is contained in:
@@ -294,6 +294,8 @@ void BOPAlgo_PaveFiller::PerformInternal()
|
||||
//
|
||||
UpdateBlocksWithSharedVertices();
|
||||
//
|
||||
myDS->RefineFaceInfoIn();
|
||||
//
|
||||
MakeSplitEdges();
|
||||
if (HasErrors()) {
|
||||
return;
|
||||
|
@@ -1418,6 +1418,44 @@ void BOPDS_DS::RefineFaceInfoOn()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : RefineFaceInfoIn
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void BOPDS_DS::RefineFaceInfoIn()
|
||||
{
|
||||
for (Standard_Integer i = 0; i < myNbSourceShapes; ++i)
|
||||
{
|
||||
const BOPDS_ShapeInfo& aSI = ShapeInfo(i);
|
||||
if (aSI.ShapeType() != TopAbs_FACE)
|
||||
continue;
|
||||
|
||||
if (!aSI.HasReference())
|
||||
continue;
|
||||
|
||||
BOPDS_FaceInfo& aFI = ChangeFaceInfo(i);
|
||||
|
||||
const BOPDS_IndexedMapOfPaveBlock& aMPBOn = aFI.PaveBlocksOn();
|
||||
BOPDS_IndexedMapOfPaveBlock& aMPBIn = aFI.ChangePaveBlocksIn();
|
||||
|
||||
if (aMPBIn.IsEmpty() || aMPBOn.IsEmpty())
|
||||
continue;
|
||||
|
||||
BOPDS_IndexedMapOfPaveBlock aMPBInNew;
|
||||
|
||||
const Standard_Integer aNbPBIn = aMPBIn.Extent();
|
||||
for (Standard_Integer j = 1; j <= aNbPBIn; ++j)
|
||||
{
|
||||
if (!aMPBOn.Contains(aMPBIn(j)))
|
||||
aMPBInNew.Add(aMPBIn(j));
|
||||
}
|
||||
|
||||
if (aMPBInNew.Extent() < aNbPBIn)
|
||||
aMPBIn = aMPBInNew;
|
||||
}
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : AloneVertices
|
||||
//purpose :
|
||||
|
@@ -302,6 +302,9 @@ Standard_EXPORT virtual ~BOPDS_DS();
|
||||
//! ++
|
||||
Standard_EXPORT void RefineFaceInfoOn();
|
||||
|
||||
//! Removes faces with state ON from the
|
||||
//! list of IN-faces
|
||||
Standard_EXPORT void RefineFaceInfoIn();
|
||||
|
||||
//! Returns information about ON/IN subshapes of the given faces.
|
||||
//! @param theMVOnIn the indices of ON/IN vertices from both faces
|
||||
|
Reference in New Issue
Block a user