@@ -3641,10 +3641,10 @@ Tree::GetEdges3D( POLYLINEMATRIX& mPLEdges)
|
||||
// scorro sui gruppi di polyline che rappresentano i poligoni delle celle lungo un lato
|
||||
for ( int i = 0 ; i < int( mPL.size()) ; ++i) {
|
||||
mPLEdges.emplace_back() ;
|
||||
mPLEdges.back().emplace_back() ;
|
||||
int nPtCount = 0 ;
|
||||
// scorro sui poligoni delle celle di un lato
|
||||
for ( int c = 0 ; c < int( mPL[i].size()) ; ++c) {
|
||||
mPLEdges.back().emplace_back() ;
|
||||
Point3d pt ; mPL[i][c].GetFirstPoint( pt) ;
|
||||
Point3d pt3d ;
|
||||
// a seconda del lato controllo di stare scorrendo il poligono prendendo solo i punti su quel lato
|
||||
@@ -3719,17 +3719,21 @@ Tree::GetEdges3D( POLYLINEMATRIX& mPLEdges)
|
||||
INTVECTOR vId ;
|
||||
Point3d ptNear = m_mTree.at(-1).GetBottomLeft() ;
|
||||
while( m_vCEdge2D[i].second.GetChainFromNear(ptNear, false, vId) ) {
|
||||
PolyLine pl2D ;
|
||||
PolyLine pl3D ;
|
||||
int nInd = abs( vId[0]) - 1 ;
|
||||
pl2D.AddUPoint( 0, m_vCEdge2D[i].first[nInd].first) ;
|
||||
Point3d pt2D = m_vCEdge2D[i].first[nInd].first ;
|
||||
Point3d pt3D ; m_pSrfBz->GetPointD1D2( pt2D.x / SBZ_TREG_COEFF, pt2D.y / SBZ_TREG_COEFF, ISurfBezier::FROM_MINUS, ISurfBezier::FROM_MINUS, pt3D) ;
|
||||
pl3D.AddUPoint( 0, pt3D) ;
|
||||
int nCount = 1 ;
|
||||
for ( int j = 1 ; j < int( vId.size()) ; ++j) {
|
||||
nInd = abs( vId[j]) - 1 ;
|
||||
if ( pl2D.AddUPoint( nCount, m_vCEdge2D[i].first[nInd].second))
|
||||
pt2D = m_vCEdge2D[i].first[nInd].second ;
|
||||
m_pSrfBz->GetPointD1D2( pt2D.x / SBZ_TREG_COEFF, pt2D.y / SBZ_TREG_COEFF, ISurfBezier::FROM_MINUS, ISurfBezier::FROM_MINUS, pt3D) ;
|
||||
if ( pl3D.AddUPoint( nCount, pt3D))
|
||||
++ nCount ;
|
||||
}
|
||||
// qui devo fare dei controlli prima di aggiungere questa polyline?
|
||||
mPLEdges[i].emplace_back( pl2D) ;
|
||||
mPLEdges[i].emplace_back( pl3D) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user