From 8f13d8d198797ff538ea09060627b65335fe8d01 Mon Sep 17 00:00:00 2001 From: Daniele Bariletti Date: Tue, 1 Apr 2025 16:27:50 +0200 Subject: [PATCH] EgtGeomKernel : - aggiunto un controllo nel TraceLoop. --- Tree.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Tree.cpp b/Tree.cpp index 4c97432..c911a49 100644 --- a/Tree.cpp +++ b/Tree.cpp @@ -2350,6 +2350,8 @@ Tree::TraceLoopLabelCell( const POLYLINEVECTOR& vplPolygons) Point3d ptCurr ; auto iter = find( m_vnLeaves.begin(), m_vnLeaves.end(), nId) ; int nIdPolygon = distance( m_vnLeaves.begin(), iter) ; + if ( nIdPolygon > int( vplPolygons.size()) - 1) + return false ; bool bEraseNextPoint = false ; while ( plLoop.GetNextPoint( ptCurr)) { Point3d ptTStart, ptTEnd ; @@ -2385,6 +2387,8 @@ Tree::TraceLoopLabelCell( const POLYLINEVECTOR& vplPolygons) // ricalcolo la posizione di nId nel vettore delle foglie iter = find( m_vnLeaves.begin(), m_vnLeaves.end(), nId) ; nIdPolygon = distance( m_vnLeaves.begin(), iter) ; + if ( nIdPolygon > int( vplPolygons.size()) - 1) + return false ; // aggiorno il puntatore alla cella pCell = &m_mTree[nId] ; // salvo il verso del loop