EgtExecutor :
- eliminate funzioni Exe e Lua CreateSurfTmBySurfBezier perchè doppioni di ApproxSurface a cui è stato aggiunto il parametro dTriaMinSide.
This commit is contained in:
@@ -1581,42 +1581,6 @@ ExeCreateSurfTmBySewing( int nParentId, const INTVECTOR& vIds, bool bErase)
|
||||
return nNewId ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
int
|
||||
ExeCreateSurfTmBySurfBezier( int nParentId, int nSbezId, double dTol, double dSideMin)
|
||||
{
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
|
||||
nParentId = AdjustId( nParentId) ;
|
||||
// recupero la superficie di Bezier
|
||||
const ISurfBezier* pSbez = GetSurfBezier( pGeomDB->GetGeoObj( nSbezId)) ;
|
||||
bool bOk = ( pSbez != nullptr) ;
|
||||
// recupero il riferimento della superficie sorgente
|
||||
Frame3d frSou ;
|
||||
bOk = bOk && pGeomDB->GetGlobFrame( nSbezId, frSou) ;
|
||||
// recupero il riferimento locale
|
||||
Frame3d frLoc ;
|
||||
bOk = bOk && pGeomDB->GetGroupGlobFrame( nParentId, frLoc) ;
|
||||
// copio la superficie ausiliaria della Bezier
|
||||
const ISurfTriMesh* pAuxSurf = ( bOk ? pSbez->GetAuxSurf( dTol, dSideMin) : nullptr) ;
|
||||
PtrOwner<ISurfTriMesh> pStm( pAuxSurf != nullptr ? pAuxSurf->Clone() : nullptr) ;
|
||||
bOk = bOk && ! IsNull( pStm) ;
|
||||
// la porto nel riferimento destinazione
|
||||
bOk = bOk && pStm->LocToLoc( frSou, frLoc) ;
|
||||
// inserisco la superficie trimesh nel DB
|
||||
int nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pStm)) : GDB_ID_NULL) ;
|
||||
ExeSetModified() ;
|
||||
// se richiesto, salvo il comando Lua equivalente
|
||||
if ( IsCmdLog()) {
|
||||
string sLua = "EgtSurfTmBySurfBezier(" + IdToString( nParentId) + "," +
|
||||
IdToString( nSbezId) + ")" +
|
||||
" -- Id=" + ToString( nNewId) ;
|
||||
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
||||
}
|
||||
// restituisco il risultato
|
||||
return nNewId ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
int
|
||||
ExeCreateSurfTmByVolZmap( int nParentId, int nZmapId, int nPart)
|
||||
|
||||
@@ -209,7 +209,7 @@ ExeExplodeSurface( int nId, int* pnCount)
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
bool
|
||||
ExeApproxSurface( int nId, double dLinTol)
|
||||
ExeApproxSurface( int nId, double dLinTol, double dTriaMinSide)
|
||||
{
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
VERIFY_GEOMDB( pGeomDB, false)
|
||||
@@ -230,8 +230,7 @@ ExeApproxSurface( int nId, double dLinTol)
|
||||
else if ( nType == SRF_BEZIER) {
|
||||
// recupero la superficie ausiliaria della Bezier
|
||||
const ISurfBezier* pSbez = GetSurfBezier( pGeomDB->GetGeoObj( nId)) ;
|
||||
const ISurfTriMesh* pAuxSurf = ( pSbez != nullptr ? pSbez->GetAuxSurf() : nullptr) ;
|
||||
pStm.Set( pAuxSurf != nullptr ? pAuxSurf->Clone() : nullptr) ;
|
||||
pStm.Set( ( pSbez != nullptr ? pSbez->GetApproxSurf( dLinTol, dTriaMinSide) : nullptr)) ;
|
||||
}
|
||||
bool bOk = ( ! IsNull( pStm)) ;
|
||||
// semplificazione della trimesh
|
||||
@@ -242,7 +241,8 @@ ExeApproxSurface( int nId, double dLinTol)
|
||||
// se richiesto, salvo il comando Lua equivalente
|
||||
if ( IsCmdLog()) {
|
||||
string sLua = "EgtApproxSurf(" + ToString( nId) + "," +
|
||||
ToString( dLinTol) + ")" +
|
||||
ToString( dLinTol) + "," +
|
||||
ToString( dTriaMinSide) + ")" +
|
||||
" -- Ok=" + ToString( bOk) ;
|
||||
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
||||
}
|
||||
|
||||
@@ -796,31 +796,6 @@ LuaCreateSurfTmBySewing( lua_State* L)
|
||||
return 1 ;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
static int
|
||||
LuaCreateSurfTmBySurfBezier( lua_State* L)
|
||||
{
|
||||
// 2 parametri : ParentId, nSbezId
|
||||
int nParentId ;
|
||||
LuaCheckParam( L, 1, nParentId)
|
||||
int nBezId ;
|
||||
LuaCheckParam( L, 2, nBezId)
|
||||
double dTol = 50 * EPS_SMALL ; // valore di default
|
||||
LuaGetParam( L, 3, dTol) ;
|
||||
double dSideMin = 0.1 ; // valore di default
|
||||
LuaGetParam( L, 4, dSideMin) ;
|
||||
|
||||
LuaClearStack( L) ;
|
||||
// creo STM partendo da superficie di Bezier
|
||||
int nId = ExeCreateSurfTmBySurfBezier( nParentId, nBezId, dTol, dSideMin) ;
|
||||
// restituisco il risultato
|
||||
if ( nId != GDB_ID_NULL)
|
||||
LuaSetParam( L, nId) ;
|
||||
else
|
||||
LuaSetParam( L) ;
|
||||
return 1 ;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
static int
|
||||
LuaCreateSurfTmByVolZmap( lua_State* L)
|
||||
@@ -1035,7 +1010,6 @@ LuaInstallGdbCreateSurf( LuaMgr& luaMgr)
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmRuled", LuaCreateSurfTmRuled) ;
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmByTriangles", LuaCreateSurfTmByTriangles) ;
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmBySewing", LuaCreateSurfTmBySewing) ;
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmBySurfBezier", LuaCreateSurfTmBySurfBezier) ;
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmByVolZmap", LuaCreateSurfTmByVolZmap) ;
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtSurfBezier", LuaCreateSurfBezier) ;
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtSurfBezierRat", LuaCreateSurfBezierRational) ;
|
||||
|
||||
@@ -61,14 +61,16 @@ LuaExplodeSurf( lua_State* L)
|
||||
static int
|
||||
LuaApproxSurf( lua_State* L)
|
||||
{
|
||||
// 1 o 2 parametri : Id [, dLinTol]
|
||||
// 1 o 2 parametri : Id [, dLinTol [, dTriaMinSide]]
|
||||
int nId ;
|
||||
LuaCheckParam( L, 1, nId)
|
||||
double dLinTol = LIN_TOL_SRF ;
|
||||
LuaGetParam( L, 2, dLinTol) ;
|
||||
double dTriaMinSide = 100 * EPS_SMALL ;
|
||||
if ( LuaGetParam( L, 2, dLinTol))
|
||||
LuaGetParam( L, 3, dTriaMinSide) ;
|
||||
LuaClearStack( L) ;
|
||||
// approssimazione della superficie
|
||||
bool bOk = ExeApproxSurface( nId, dLinTol) ;
|
||||
bool bOk = ExeApproxSurface( nId, dLinTol, dTriaMinSide) ;
|
||||
// restituisco il risultato
|
||||
LuaSetParam( L, bOk) ;
|
||||
return 1 ;
|
||||
|
||||
Reference in New Issue
Block a user