EgtGeomKernel :

- aggiunta a PolyLine IsFlat che restituisce direttamente un piano, se esiste
- a GetSurfTriMeshByScrewing aggiunto parametro per tappare gli estremi
- migliorata GetSurfTriMeshSwept.
This commit is contained in:
Dario Sassi
2019-05-15 19:01:14 +00:00
parent 5b707f1799
commit dabbd3eae5
3 changed files with 66 additions and 17 deletions
+28
View File
@@ -558,6 +558,34 @@ PolyLine::IsFlat( int& nRank, Point3d& ptCen, Vector3d& vtDir, double dToler) co
return true ;
}
//----------------------------------------------------------------------------
bool
PolyLine::IsFlat( Plane3d& plPlane, double dToler) const
{
// verifico non sia vuota
if ( GetPointNbr() == 0) {
plPlane.Reset() ;
return false ;
}
// recupero dati sulla planarità della polilinea
int nRank ;
Point3d ptCen ;
Vector3d vtDir ;
bool bFlat = IsFlat( nRank, ptCen, vtDir, dToler) ;
// imposto il piano a seconda della dimensionalità
switch ( nRank) {
case 0 : // punto
plPlane.Set( ptCen, Z_AX) ;
case 1 : // linea
plPlane.Set( ptCen, FromUprightOrtho( vtDir)) ;
break ;
default : // piana o 3d
plPlane.Set( ptCen, vtDir) ;
break ;
}
return bFlat ;
}
//----------------------------------------------------------------------------
bool
PolyLine::IsClosedAndFlat( Plane3d& plPlane, double& dArea, double dToler) const