mirror of
https://github.com/Open-Cascade-SAS/OCCT.git
synced 2026-09-05 04:07:58 +08:00
This reverts commit 7d2efad9c8.
This commit is contained in:
@@ -142,19 +142,6 @@ public:
|
||||
private:
|
||||
NCollection_LinearVector<Frame> myFrames; // Container of frames.
|
||||
};
|
||||
|
||||
//! Returns a snapshot of the neighbor link ids of the given node.
|
||||
NCollection_Array1<int> getSnapshotsOfNeighborLinkIds(
|
||||
const IMeshData::ListOfInteger& theNeighborLinkIds)
|
||||
{
|
||||
NCollection_Array1<int> aNeighborLinkIdsArray(theNeighborLinkIds.Size());
|
||||
size_t anIndex = 0;
|
||||
for (const auto& aLinkId : theNeighborLinkIds)
|
||||
{
|
||||
aNeighborLinkIdsArray.ChangeAt(anIndex++) = aLinkId;
|
||||
}
|
||||
return aNeighborLinkIdsArray;
|
||||
}
|
||||
} // anonymous namespace
|
||||
|
||||
//=================================================================================================
|
||||
@@ -1556,24 +1543,18 @@ void BRepMesh_Delaun::killTrianglesAroundVertex(
|
||||
IMeshData::MapOfIntegerInteger& theLoopEdges,
|
||||
IMeshData::VectorOfInteger& theVictimNodes)
|
||||
{
|
||||
// Snapshot the neighbor link ids before iterating
|
||||
const NCollection_Array1<int> aNeighborLinkIdsArray =
|
||||
getSnapshotsOfNeighborLinkIds(myMeshData->LinksConnectedTo(theZombieNodeId));
|
||||
IMeshData::ListOfInteger::Iterator aNeighborsIt = myMeshData->LinksConnectedTo(theZombieNodeId);
|
||||
|
||||
// Try to infect neighbor nodes
|
||||
for (const int aNeighborLinkId : aNeighborLinkIdsArray)
|
||||
for (; aNeighborsIt.More(); aNeighborsIt.Next())
|
||||
{
|
||||
const int& aNeighborLinkId = aNeighborsIt.Value();
|
||||
if (theSurvivedLinks.Contains(aNeighborLinkId))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
const BRepMesh_Edge& aNeighborLink = GetEdge(aNeighborLinkId);
|
||||
if (aNeighborLink.Movability() == BRepMesh_Deleted)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (aNeighborLink.Movability() == BRepMesh_Frontier)
|
||||
{
|
||||
// Though, if it lies onto the polygon boundary -
|
||||
@@ -1702,19 +1683,13 @@ void BRepMesh_Delaun::killTrianglesOnIntersectingLinks(
|
||||
|
||||
killLinkTriangles(theLinkToCheckId, theLoopEdges);
|
||||
|
||||
// Snapshot the neighbor link ids before iterating
|
||||
const NCollection_Array1<int> aNeighborLinkIds =
|
||||
getSnapshotsOfNeighborLinkIds(myMeshData->LinksConnectedTo(theEndPoint));
|
||||
IMeshData::ListOfInteger::Iterator aNeighborsIt(myMeshData->LinksConnectedTo(theEndPoint));
|
||||
|
||||
for (const int aNeighborLinkId : aNeighborLinkIds)
|
||||
for (; aNeighborsIt.More(); aNeighborsIt.Next())
|
||||
{
|
||||
const BRepMesh_Edge& aNeighborLink = GetEdge(aNeighborLinkId);
|
||||
if (aNeighborLink.Movability() == BRepMesh_Deleted)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
int anOtherNode = aNeighborLink.FirstNode();
|
||||
const int& aNeighborLinkId = aNeighborsIt.Value();
|
||||
const BRepMesh_Edge& aNeighborLink = GetEdge(aNeighborLinkId);
|
||||
int anOtherNode = aNeighborLink.FirstNode();
|
||||
if (anOtherNode == theEndPoint)
|
||||
{
|
||||
anOtherNode = aNeighborLink.LastNode();
|
||||
|
||||
Reference in New Issue
Block a user