diff --git a/SurfBezier.cpp b/SurfBezier.cpp index 27a6cae..b697cdb 100644 --- a/SurfBezier.cpp +++ b/SurfBezier.cpp @@ -1622,7 +1622,6 @@ SurfBezier::GetAuxSurf( void) const return m_pSTM ; // eseguo calcolo m_pSTM = GetApproxSurf( 1000 * EPS_SMALL, 100 * EPS_SMALL) ; - //m_pSTM = GetApproxSurf( 50 * EPS_SMALL, 100 * EPS_SMALL) ; return m_pSTM ; } @@ -1652,7 +1651,7 @@ SurfBezier::GetApproxSurf( double dTol, double dSideMin) const return nullptr ; // se c'è ausiliaria di visualizzazione con gli stessi parametri, ne restituisco una copia - if ( m_pSTM!= nullptr && + if ( m_pSTM != nullptr && abs( dTol - 1000 * EPS_SMALL) < EPS_SMALL && abs( dSideMin - 100 * EPS_SMALL) < EPS_SMALL) return m_pSTM->Clone() ; // se c'è ausiliaria e richiesta con gli stessi parametri, ne restituisco una copia diff --git a/Tree.cpp b/Tree.cpp index a5a4c05..47f0bfc 100644 --- a/Tree.cpp +++ b/Tree.cpp @@ -1680,6 +1680,8 @@ Tree::GetPolygonsBasic( POLYLINEVECTOR& vPolygonsBasic, POLYLINEVECTOR& vPolygon vVertices3d.push_back( pt3d) ; vnVert.push_back( int(vVertices.size()) - 1) ; } + else + vnVert.push_back( int(vVertices.size()) - 1) ; // ho già aggiunto il punto bottom right, ne salvo la posizione vNeigh.clear() ; vVertices.push_back( cell.GetTopRight()) ; pt3d = ORIG ; GetPoint( cell.GetTopRight().x, cell.GetTopRight().y, pt3d) ; @@ -1688,7 +1690,7 @@ Tree::GetPolygonsBasic( POLYLINEVECTOR& vPolygonsBasic, POLYLINEVECTOR& vPolygon GetTopNeigh ( nId, vNeigh) ; std::reverse( vNeigh.begin(), vNeigh.end()) ; // aggiungo i vertici che sono sul lato top, solo se ho più di un vicino top - if ( ! vNeigh.empty() && vNeigh.size() != 1) { + if ( vNeigh.size() > 1) { // se la superficie è chiusa lungo il parametro V e la cella è sul lato top // devo aggiungere i vertici tenendo conto della periodicità dello spazio parametrico. vnVert.push_back( int(vVertices.size())) ; @@ -1749,6 +1751,8 @@ Tree::GetPolygonsBasic( POLYLINEVECTOR& vPolygonsBasic, POLYLINEVECTOR& vPolygon vVertices3d.push_back( pt3d) ; vnVert.push_back( int(vVertices.size()) - 1) ; } + else + vnVert.push_back( int(vVertices.size()) - 1) ; vNeigh.clear() ; vVertices.push_back( cell.GetBottomLeft()) ; pt3d = ORIG ; GetPoint( cell.GetBottomLeft().x, cell.GetBottomLeft().y, pt3d) ;