EgtGeomKernel 1.6b2 :

- aggiunta funzione di inerti poliarco
- roportate in executor migliorie su costruzione superfici trimesh.
This commit is contained in:
Dario Sassi
2015-02-02 16:13:56 +00:00
parent 2dd5001940
commit 48df8ea18c
5 changed files with 86 additions and 146 deletions
+28
View File
@@ -475,3 +475,31 @@ PolyArc::IsFlat( int& nRank, Point3d& ptCen, Vector3d& vtDir, double dToler) con
return ( nRank == 0 || nRank == 2) ;
}
//----------------------------------------------------------------------------
bool
PolyArc::Invert( bool bInvertU)
{
// verifico non sia vuota
if ( m_lUPointBs.empty())
return true ;
// inverto la lista
m_lUPointBs.reverse() ;
// sposto il bulge all'estremo iniziale di ogni tratto (l'ultimo non conta)
for ( UPNTBLIST::iterator iter = m_lUPointBs.begin() ; iter != m_lUPointBs.end() ; ++ iter) {
if ( next( iter) != m_lUPointBs.end())
iter->dB = next( iter)->dB ;
else
iter->dB = 0 ;
}
// se richiesto, inverto anche il parametro U
if ( bInvertU) {
// recupero il primo valore di U che è il vecchio finale ed è il riferimento di inversione
double dUfin = m_lUPointBs.front().dU ;
// ciclo su tutti gli elementi
for ( UPNTBLIST::iterator iter = m_lUPointBs.begin() ; iter != m_lUPointBs.end() ; ++ iter) {
iter->dU = dUfin - iter->dU ;
}
}
return true ;
}