EgtGeomKernel 1.6k2 :

- corretto calcolo bounding box di regioni multi-chunk
- corretto offset di regioni multi-chunk.
This commit is contained in:
Dario Sassi
2015-11-05 13:41:52 +00:00
parent 41f8b0d103
commit 2de710bad1
3 changed files with 46 additions and 10 deletions
+18 -4
View File
@@ -527,8 +527,15 @@ SurfFlatRegion::GetLocalBBox( BBox3d& b3Loc, int nFlag) const
// verifico lo stato
if ( m_nStatus != OK || m_vpLoop.empty())
return false ;
// è il bounding box del loop esterno
return m_vpLoop[0]->GetBBox( m_frF, b3Loc, nFlag) ;
// reset del bbox
b3Loc.Reset() ;
// è il bounding box dei loop esterni
for ( auto i : m_vExtInd) {
BBox3d b3Tmp ;
if ( m_vpLoop[i]->GetBBox( m_frF, b3Loc, nFlag))
b3Loc.Add( b3Tmp) ;
}
return ( ! b3Loc.IsEmpty()) ;
}
//----------------------------------------------------------------------------
@@ -540,8 +547,15 @@ SurfFlatRegion::GetBBox( const Frame3d& frRef, BBox3d& b3Ref, int nFlag) const
return false ;
// frame composito
Frame3d frCompo = m_frF * frRef ;
// è il bounding box del loop esterno
return m_vpLoop[0]->GetBBox( frCompo, b3Ref, nFlag) ;
// reset del bbox
b3Ref.Reset() ;
// è il bounding box dei loop esterni
for ( auto i : m_vExtInd) {
BBox3d b3Tmp ;
if ( m_vpLoop[i]->GetBBox( frCompo, b3Ref, nFlag))
b3Ref.Add( b3Tmp) ;
}
return ( ! b3Ref.IsEmpty()) ;
}
//----------------------------------------------------------------------------