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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user