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:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
|
Reference in New Issue
Block a user