EgtGeomKernel :
- aggiunta funzione per richiedere Part e Shell cui appartiene una faccia.
This commit is contained in:
@@ -4415,6 +4415,35 @@ SurfTriMesh::ClonePart( int nPart) const
|
||||
return Release( pSurfTM) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
SurfTriMesh::GetPartAndShellFromFacet( int nFacet, int& nPart, int& nShell) const
|
||||
{
|
||||
// l'indice della faccia deve essere nei limiti
|
||||
if ( nFacet < 0 || nFacet >= int( m_vFacet.size()))
|
||||
return false ;
|
||||
|
||||
// mi assicuro che siano calcolate il numero di parti e di shell
|
||||
int nParts = GetPartCount() ;
|
||||
|
||||
int nTria = m_vFacet[nFacet] ;
|
||||
nShell = m_vTria[nTria].nShell ;
|
||||
|
||||
// scopro in quale part è la shell
|
||||
int nPartTemp = 0 ;
|
||||
nPart = - 1 ;
|
||||
while ( nPartTemp < nParts && nPart == - 1) {
|
||||
for ( int i : m_vPart[nPartTemp].vShell) {
|
||||
if ( i == nShell) {
|
||||
nPart = nPartTemp ;
|
||||
break ;
|
||||
}
|
||||
}
|
||||
++nPartTemp ;
|
||||
}
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
SurfTriMesh::ResetTFlags( void)
|
||||
|
||||
@@ -347,6 +347,7 @@ class SurfTriMesh : public ISurfTriMesh, public IGeoObjRW
|
||||
bool GetPartVolume( int nPart, double& dVolume) const override ;
|
||||
bool GetPartLoops( int nPart, POLYLINEVECTOR& vPL) const override ;
|
||||
SurfTriMesh* ClonePart( int nPart) const override ;
|
||||
bool GetPartAndShellFromFacet( int nFacet, int& nPart, int& nShell) const override ;
|
||||
bool SetTFlag( int nId, int nTFlag) override ;
|
||||
bool GetTFlag( int nId, int& nFlag) const override ;
|
||||
int GetMaxTFlag( void) const override
|
||||
|
||||
Reference in New Issue
Block a user