diff --git a/EXE_GdbModifySurf.cpp b/EXE_GdbModifySurf.cpp index 2188141..d52d8ab 100644 --- a/EXE_GdbModifySurf.cpp +++ b/EXE_GdbModifySurf.cpp @@ -367,6 +367,29 @@ ExeSurfFrRotateSimpleNoCollision( int nId1, int nId2, const Point3d& ptCen, doub return ( bOk && CAvSimpleSurfFrMove( *pSfr1, *pSfr2L).Rotate(ptCenL, dAngDeg)) ; } +//------------------------------------------------------------------------------- +bool +ExeSurfTmRemoveFacet( int nId, int nFacet) +{ + IGeomDB* pGeomDB = GetCurrGeomDB() ; + VERIFY_GEOMDB( pGeomDB, false) + // recupero la superficie TriMesh + ISurfTriMesh* pStm = GetSurfTriMesh( pGeomDB->GetGeoObj( nId)) ; + bool bOk = ( pStm != nullptr) ; + // eseguo la rimozione + bOk = bOk && pStm->RemoveFacet( nFacet) ; + ExeSetModified() ; + // se richiesto, salvo il comando Lua equivalente + if ( IsCmdLog()) { + string sLua = "EgtSurfTmRemoveFacet(" + ToString( nId) + "," + + ToString( nFacet) + ")" + + " -- Ok=" + ToString( bOk) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + // restituisco risultato + return bOk ; +} + //------------------------------------------------------------------------------- bool ExeSurfTmSwapFacets( int nId, int nFacet1, int nFacet2) @@ -391,6 +414,29 @@ ExeSurfTmSwapFacets( int nId, int nFacet1, int nFacet2) return bOk ; } +//------------------------------------------------------------------------------- +bool +ExeSurfTmRemovePart( int nId, int nPart) +{ + IGeomDB* pGeomDB = GetCurrGeomDB() ; + VERIFY_GEOMDB( pGeomDB, false) + // recupero la superficie TriMesh + ISurfTriMesh* pStm = GetSurfTriMesh( pGeomDB->GetGeoObj( nId)) ; + bool bOk = ( pStm != nullptr) ; + // eseguo la rimozione + bOk = bOk && pStm->RemovePart( nPart) ; + ExeSetModified() ; + // se richiesto, salvo il comando Lua equivalente + if ( IsCmdLog()) { + string sLua = "EgtSurfTmRemovePart(" + ToString( nId) + "," + + ToString( nPart) + ")" + + " -- Ok=" + ToString( bOk) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + // restituisco risultato + return bOk ; +} + //------------------------------------------------------------------------------- bool ExeCutSurfTmPlane( int nId, const Point3d& ptOn, const Vector3d& vtN, bool bSaveOnEq, int nRefType) diff --git a/EgtExecutor.rc b/EgtExecutor.rc index 27c0353..0fee2b7 100644 Binary files a/EgtExecutor.rc and b/EgtExecutor.rc differ diff --git a/LUA_GdbModifySurf.cpp b/LUA_GdbModifySurf.cpp index 4b16a82..4655eb5 100644 --- a/LUA_GdbModifySurf.cpp +++ b/LUA_GdbModifySurf.cpp @@ -123,6 +123,23 @@ LuaSurfFrOffset( lua_State* L) return 1 ; } +//---------------------------------------------------------------------------- +static int +LuaSurfTmRemoveFacet( lua_State* L) +{ + // 2 parametri : nId, nFacet + int nId ; + LuaCheckParam( L, 1, nId) + int nFacet ; + LuaCheckParam( L, 2, nFacet) + LuaClearStack( L) ; + // eseguo rimozione della faccia dalla superficie + bool bOk = ExeSurfTmRemoveFacet( nId, nFacet) ; + // restituisco il risultato + LuaSetParam( L, bOk) ; + return 1 ; +} + //---------------------------------------------------------------------------- static int LuaSurfTmSwapFacets( lua_State* L) @@ -142,6 +159,23 @@ LuaSurfTmSwapFacets( lua_State* L) return 1 ; } +//---------------------------------------------------------------------------- +static int +LuaSurfTmRemovePart( lua_State* L) +{ + // 2 parametri : nId, nPart + int nId ; + LuaCheckParam( L, 1, nId) + int nPart ; + LuaCheckParam( L, 2, nPart) + LuaClearStack( L) ; + // eseguo rimozione della parte dalla superficie + bool bOk = ExeSurfTmRemovePart( nId, nPart) ; + // restituisco il risultato + LuaSetParam( L, bOk) ; + return 1 ; +} + //---------------------------------------------------------------------------- static int LuaCutSurfTmPlane( lua_State* L) @@ -264,7 +298,9 @@ LuaInstallGdbModifySurf( LuaMgr& luaMgr) bOk = bOk && luaMgr.RegisterFunction( "EgtSurfFrSubtract", LuaSurfFrSubtract) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSurfFrIntersect", LuaSurfFrIntersect) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSurfFrOffset", LuaSurfFrOffset) ; + bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmRemoveFacet", LuaSurfTmRemoveFacet) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmSwapFacets", LuaSurfTmSwapFacets) ; + bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmRemovePart", LuaSurfTmRemovePart) ; bOk = bOk && luaMgr.RegisterFunction( "EgtCutSurfTmPlane", LuaCutSurfTmPlane) ; bOk = bOk && luaMgr.RegisterFunction( "EgtCutSurfTmClosedCurve", LuaCutSurfTmClosedCurve) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmAdd", LuaSurfTmAdd) ;