1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-04 13:13:25 +03:00

0030497: [REGRESSION] Mesh - wrong Poly_Polygon3D within local selection of located shape

The previous code has a condition to avoid processing the same faces if the face has a location.
The similar condition should be applied during the edges processing.
If not doing this, in the previous implementation, IMeshData_Edge instances are created for all edges(even located), but edges of faces located are not filled with curves.
As a result we had wrong local selection of edges.

Limit addition of edges to data model by ones with unique TShape and location using edges map already available in BRepMesh_ShapeVisitor.
This commit is contained in:
nds
2019-02-28 09:55:53 +03:00
committed by apn
parent 4ec8ee66a0
commit 967d2f4f30
4 changed files with 57 additions and 21 deletions

View File

@@ -57,8 +57,11 @@ BRepMesh_ShapeVisitor::~BRepMesh_ShapeVisitor ()
//=======================================================================
void BRepMesh_ShapeVisitor::Visit(const TopoDS_Edge& theEdge)
{
myModel->AddEdge(theEdge);
myDEdgeMap.Bind(theEdge, myModel->EdgesNb() - 1);
if (!myDEdgeMap.IsBound (theEdge))
{
myModel->AddEdge (theEdge);
myDEdgeMap.Bind (theEdge, myModel->EdgesNb () - 1);
}
}
//=======================================================================