EgtGeomKernel:
- piccole correzioni.
This commit is contained in:
@@ -2292,7 +2292,7 @@ Tree::TraceLoopLabelCell( const POLYLINEVECTOR& vplPolygons)
|
||||
SetRightEdgeIn( nId) ;
|
||||
}
|
||||
|
||||
// devo riconoscere le celle dentro i loop che sono ancora con label nFlag2 = 0
|
||||
// devo riconoscere le celle dentro i loop che sono ancora con label m_bLabelled = false
|
||||
ResetTree() ;
|
||||
INTVECTOR vNeigh, vFirst ;
|
||||
GetRootNeigh( 1, vFirst) ;
|
||||
@@ -2308,7 +2308,7 @@ Tree::TraceLoopLabelCell( const POLYLINEVECTOR& vplPolygons)
|
||||
// mentre torno indietro a sinistra, mi fermo quando trovo una cella non processata ( con vicini a destra da cui non sono passato)
|
||||
while ( ! bAllDone) {
|
||||
// categorizzo la cella
|
||||
m_mTree[nCell].m_nFlag2 = 1 ;
|
||||
m_mTree[nCell].m_bLabelled = true ;
|
||||
CategorizeCell( nCell) ;
|
||||
bool bDone = false ;
|
||||
// fintanto che la cella ha tra i vicini a destra una cella non elaborata mi sposto a destra
|
||||
@@ -2317,7 +2317,7 @@ Tree::TraceLoopLabelCell( const POLYLINEVECTOR& vplPolygons)
|
||||
// verso la cella a destra più in basso da cui non sono ancora passato
|
||||
bool bProceeded = false ;
|
||||
for ( int i = 0 ; i < (int)vNeigh.size() ; ++ i) {
|
||||
if ( m_mTree[vNeigh[i]].m_nFlag2 == 0) {
|
||||
if ( m_mTree[vNeigh[i]].m_bLabelled == false) {
|
||||
nCell = vNeigh[i] ;
|
||||
bProceeded = true ;
|
||||
break ;
|
||||
@@ -2328,7 +2328,7 @@ Tree::TraceLoopLabelCell( const POLYLINEVECTOR& vplPolygons)
|
||||
}
|
||||
else {
|
||||
//categorizzo la cella
|
||||
m_mTree[nCell].m_nFlag2 = 1 ;
|
||||
m_mTree[nCell].m_bLabelled = true ;
|
||||
CategorizeCell( nCell) ;
|
||||
}
|
||||
|
||||
@@ -2340,7 +2340,7 @@ Tree::TraceLoopLabelCell( const POLYLINEVECTOR& vplPolygons)
|
||||
//controllo che tra i vicini di destra ce ne sia almeno uno da cui non sono passato
|
||||
// ( e controllo che non sia una cella sul lato sinistro ( adiacenza in caso di superficie chiusa))
|
||||
for ( int t: vNeigh) {
|
||||
if ( m_mTree[t].m_nFlag2 == 0 ) {
|
||||
if ( m_mTree[t].m_bLabelled == false ) {
|
||||
if ( ! m_bClosedU) {
|
||||
bDone = false ;
|
||||
break ;
|
||||
@@ -2368,7 +2368,7 @@ Tree::TraceLoopLabelCell( const POLYLINEVECTOR& vplPolygons)
|
||||
// però se sono già sul lato sinistro non cerco di spostarmi ancora più a sinistra.
|
||||
if ( ! m_mTree[nCell].m_bOnLeftEdge) {
|
||||
for ( int p = 0 ; p < (int)vNeigh.size() ; ++ p) {
|
||||
if ( m_mTree[vNeigh[p]].m_nFlag2 != 0) {
|
||||
if ( m_mTree[vNeigh[p]].m_bLabelled != false) {
|
||||
nCell = vNeigh[p] ;
|
||||
break ;
|
||||
}
|
||||
@@ -2379,7 +2379,7 @@ Tree::TraceLoopLabelCell( const POLYLINEVECTOR& vplPolygons)
|
||||
// se questa cella non è processata devo procedere alla cella più bassa non processata sul lato sinistro
|
||||
if ( vNeigh.empty() && m_mTree[nCell].IsProcessed()) {
|
||||
for ( int p = 0 ; p < (int)vFirst.size() ; ++ p) {
|
||||
if ( m_mTree[vFirst[p]].m_nFlag2 == 0) {
|
||||
if ( m_mTree[vFirst[p]].m_bLabelled == false) {
|
||||
nCell = vFirst[p] ;
|
||||
break ;
|
||||
}
|
||||
@@ -2418,8 +2418,8 @@ Tree::TraceLoopLabelCell( const POLYLINEVECTOR& vplPolygons)
|
||||
}
|
||||
if ( bDone) {
|
||||
m_mTree[nCell].SetProcessed( bDone) ;
|
||||
if ( m_mTree[nCell].m_nFlag2 == 0) {
|
||||
m_mTree[nCell].m_nFlag2 = 1 ;
|
||||
if ( m_mTree[nCell].m_bLabelled == false) {
|
||||
m_mTree[nCell].m_bLabelled = true ;
|
||||
CategorizeCell( nCell) ;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user