EgtExecutor 2.6g5 :
- aggiunta funzione exe e lua SurfFrEraseChunk - migliorata ExeSurfFrTestExternal.
This commit is contained in:
+30
-4
@@ -324,7 +324,7 @@ ExeSurfFrSubtract( int nId1, int nId2)
|
||||
// eseguo la sottrazione della seconda superficie dalla prima
|
||||
bOk = bOk && pSfr1->Subtract( *pSfr2L) ;
|
||||
// se il risultato è vuoto, cancello la FlatRegion
|
||||
if ( bOk && ! pSfr1->IsValid())
|
||||
if ( bOk && ! pSfr1->IsValid())
|
||||
pGeomDB->Erase( nId1) ;
|
||||
ExeSetModified() ;
|
||||
// se richiesto, salvo il comando Lua equivalente
|
||||
@@ -356,7 +356,7 @@ ExeSurfFrIntersect( int nId1, int nId2)
|
||||
// eseguo l'intersezione tra le due superfici
|
||||
bOk = bOk && pSfr1->Intersect( *pSfr2L) ;
|
||||
// se il risultato è vuoto, cancello la FlatRegion
|
||||
if ( bOk && ! pSfr1->IsValid())
|
||||
if ( bOk && ! pSfr1->IsValid())
|
||||
pGeomDB->Erase( nId1) ;
|
||||
ExeSetModified() ;
|
||||
// se richiesto, salvo il comando Lua equivalente
|
||||
@@ -381,7 +381,7 @@ ExeSurfFrOffset( int nId, double dDist, int nType)
|
||||
// eseguo l'offset
|
||||
bOk = bOk && pSfr->Offset( dDist, nType) ;
|
||||
// se il risultato è vuoto, cancello la FlatRegion
|
||||
if ( bOk && ! pSfr->IsValid())
|
||||
if ( bOk && ! pSfr->IsValid())
|
||||
pGeomDB->Erase( nId) ;
|
||||
ExeSetModified() ;
|
||||
// se richiesto, salvo il comando Lua equivalente
|
||||
@@ -400,7 +400,7 @@ bool
|
||||
ExeSurfFrOffsetAdv( int nId, double dDist, int nType, int& nNewId)
|
||||
{
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
|
||||
VERIFY_GEOMDB( pGeomDB, false)
|
||||
// recupero la superficie FlatRegion
|
||||
ISurfFlatRegion* pSfr = GetSurfFlatRegion( pGeomDB->GetGeoObj( nId)) ;
|
||||
if ( pSfr == nullptr)
|
||||
@@ -421,6 +421,32 @@ ExeSurfFrOffsetAdv( int nId, double dDist, int nType, int& nNewId)
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ExeSurfFrEraseChunk( int nId, int nChunk)
|
||||
{
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
VERIFY_GEOMDB( pGeomDB, false)
|
||||
// recupero la superficie FlatRegion
|
||||
ISurfFlatRegion* pSfr = GetSurfFlatRegion( pGeomDB->GetGeoObj( nId)) ;
|
||||
if ( pSfr == nullptr)
|
||||
return false ;
|
||||
// elimino il chunk indicato
|
||||
bool bOk = pSfr->EraseChunk( nChunk) ;
|
||||
// se il risultato è vuoto, cancello la FlatRegion
|
||||
if ( bOk && ! pSfr->IsValid())
|
||||
pGeomDB->Erase( nId) ;
|
||||
ExeSetModified() ;
|
||||
// se richiesto, salvo il comando Lua equivalente
|
||||
if ( IsCmdLog()) {
|
||||
string sLua = "EgtSurfFrEraseChunk(" + ToString( nId) + "," +
|
||||
ToString( nChunk) + ")" +
|
||||
" -- Ok=" + ToString( bOk) ;
|
||||
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
||||
}
|
||||
return bOk ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ExeSurfFrMoveSimpleNoCollision( int nId1, int nId2, const Vector3d& vtDir, double& dLen, int nRefType)
|
||||
|
||||
Reference in New Issue
Block a user