EgtExecutor 2.2f4 :
- a funzioni Exe e Lua SurfTmAdd, SurfTmSubtract e SurfTmIntersect aggiunto parametro opzionale bTwoColors - aggiunta funzione Exe e Lua SurfTmResetTwoColors.
This commit is contained in:
+39
-5
@@ -504,7 +504,7 @@ ExeCutSurfTmClosedCurve( int nSurfId, int nCurveId, bool bSaveOnEq)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ExeSurfTmAdd( int nId1, int nId2)
|
||||
ExeSurfTmAdd( int nId1, int nId2, bool bTwoColors)
|
||||
{
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
|
||||
@@ -520,6 +520,9 @@ ExeSurfTmAdd( int nId1, int nId2)
|
||||
bOk = bOk && ( pStm2L != nullptr) ;
|
||||
// eseguo l'unione tra le due superfici
|
||||
bOk = bOk && pStm1->Add( *pStm2L) ;
|
||||
// se non richiesti due colori
|
||||
if ( bOk && ! bTwoColors)
|
||||
pStm1->ResetTFlags() ;
|
||||
ExeSetModified() ;
|
||||
// se richiesto, salvo il comando Lua equivalente
|
||||
if ( IsCmdLog()) {
|
||||
@@ -533,7 +536,7 @@ ExeSurfTmAdd( int nId1, int nId2)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ExeSurfTmSubtract( int nId1, int nId2)
|
||||
ExeSurfTmSubtract( int nId1, int nId2, bool bTwoColors)
|
||||
{
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
|
||||
@@ -550,8 +553,13 @@ ExeSurfTmSubtract( int nId1, int nId2)
|
||||
// eseguo la sottrazione tra le due superfici
|
||||
bOk = bOk && pStm1->Subtract( *pStm2L) ;
|
||||
// se il risultato è vuoto, cancello la superficie
|
||||
if ( bOk && ! pStm1->IsValid())
|
||||
if ( bOk && ! pStm1->IsValid()) {
|
||||
pGeomDB->Erase( nId1) ;
|
||||
pStm1 = nullptr ;
|
||||
}
|
||||
// se non richiesti due colori
|
||||
if ( bOk && ! bTwoColors && pStm1 != nullptr)
|
||||
pStm1->ResetTFlags() ;
|
||||
ExeSetModified() ;
|
||||
// se richiesto, salvo il comando Lua equivalente
|
||||
if ( IsCmdLog()) {
|
||||
@@ -565,7 +573,7 @@ ExeSurfTmSubtract( int nId1, int nId2)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ExeSurfTmIntersect( int nId1, int nId2)
|
||||
ExeSurfTmIntersect( int nId1, int nId2, bool bTwoColors)
|
||||
{
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
|
||||
@@ -582,8 +590,13 @@ ExeSurfTmIntersect( int nId1, int nId2)
|
||||
// eseguo l'intersezione tra le due superfici
|
||||
bOk = bOk && pStm1->Intersect( *pStm2L) ;
|
||||
// se il risultato è vuoto, cancello la superficie
|
||||
if ( bOk && ! pStm1->IsValid())
|
||||
if ( bOk && ! pStm1->IsValid()) {
|
||||
pGeomDB->Erase( nId1) ;
|
||||
pStm1 = nullptr ;
|
||||
}
|
||||
// se non richiesti due colori
|
||||
if ( bOk && ! bTwoColors && pStm1 != nullptr)
|
||||
pStm1->ResetTFlags() ;
|
||||
ExeSetModified() ;
|
||||
// se richiesto, salvo il comando Lua equivalente
|
||||
if ( IsCmdLog()) {
|
||||
@@ -595,6 +608,27 @@ ExeSurfTmIntersect( int nId1, int nId2)
|
||||
return bOk ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ExeSurfTmResetTwoColors( int nId)
|
||||
{
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
|
||||
// recupero la superficie TriMesh
|
||||
ISurfTriMesh* pStm = GetSurfTriMesh( pGeomDB->GetGeoObj( nId)) ;
|
||||
bool bOk = ( pStm != nullptr) ;
|
||||
// reset dei flag sui triangoli per i due colori
|
||||
bOk = bOk && pStm->ResetTFlags() ;
|
||||
ExeSetModified() ;
|
||||
// se richiesto, salvo il comando Lua equivalente
|
||||
if ( IsCmdLog()) {
|
||||
string sLua = "EgtSurfTmResetTwoColors(" + ToString( nId) + ")" +
|
||||
" -- Ok=" + ToString( bOk) ;
|
||||
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
||||
}
|
||||
return bOk ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static ISurfTriMesh*
|
||||
MyCreateSubSurfTm( const ISurfTriMesh* pStm, const INTVECTOR& vTria)
|
||||
|
||||
Reference in New Issue
Block a user