diff --git a/EXE_GdbModifyVol.cpp b/EXE_GdbModifyVol.cpp index 3f57943..eddf97d 100644 --- a/EXE_GdbModifyVol.cpp +++ b/EXE_GdbModifyVol.cpp @@ -535,3 +535,29 @@ ExeCutVolZmapPlane( int nId, const Point3d& ptOn, const Vector3d& vtN, int nRefT // restituisco risultato return bOk ; } + +//---------------------------------------------------------------------------- +bool +ExeVolZMapOffset( int nId, double dDist, int nType) +{ + IGeomDB* pGeomDB = GetCurrGeomDB() ; + VERIFY_GEOMDB( pGeomDB, false) + // recupero lo Zmap + IVolZmap* pVolZmap = GetVolZmap( pGeomDB->GetGeoObj( nId)) ; + bool bOk = ( pVolZmap != nullptr) ; + // eseguo l'offset + bOk = bOk && pVolZmap->Offset( dDist, nType) ; + // se il risultato è vuoto, cancello lo Zmap + if ( bOk && ! pVolZmap->IsValid()) + pGeomDB->Erase( nId) ; + ExeSetModified() ; + // se richiesto, salvo il comando Lua equivalente + if ( IsCmdLog()) { + string sLua = "EgtVolZmapOffset(" + ToString( nId) + "," + + ToString( dDist) + "," + + ToString( nType) + ")" + + " -- Ok=" + ToString( bOk) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + return bOk ; +} diff --git a/LUA_GdbModifyVol.cpp b/LUA_GdbModifyVol.cpp index 96a76df..7332437 100644 --- a/LUA_GdbModifyVol.cpp +++ b/LUA_GdbModifyVol.cpp @@ -378,7 +378,7 @@ LuaCutVolZmapPlane( lua_State* L) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 4, nRefType) ; LuaClearStack( L) ; - // taglio la superficie con ilpiano + // taglio la superficie con il piano bool bOk = ExeCutVolZmapPlane( nId, ptOn, vtN, nRefType) ; // restituisco il risultato LuaSetParam( L, bOk) ; @@ -415,6 +415,24 @@ LuaUniformVolZmap( lua_State* L) return 1 ; } +//------------------------------------------------------------------------------- +static int +LuaVolZmapOffset( lua_State* L) +{ + // 3 parametri : Id, dDist, nType + int nId ; + LuaCheckParam( L, 1, nId) + double dDist ; + LuaCheckParam( L, 2, dDist) + int nType = VolZmapOffset::FILLET ; + LuaGetParam( L, 3, nType) ; + LuaClearStack( L) ; + // eseguo l'offset della regione + bool bOk = ExeVolZMapOffset( nId, dDist, nType) ; + LuaSetParam( L, bOk) ; + return 1 ; +} + //------------------------------------------------------------------------------- bool LuaInstallGdbModifyVol( LuaMgr& luaMgr) @@ -437,5 +455,6 @@ LuaInstallGdbModifyVol( LuaMgr& luaMgr) bOk = bOk && luaMgr.RegisterFunction( "EgtCutVolZmapPlane", LuaCutVolZmapPlane) ; bOk = bOk && luaMgr.RegisterFunction( "EgtUpdateVolZmapByAddingSurfTm", LuaUpdateVolZmapByAddingSurfTm ) ; bOk = bOk && luaMgr.RegisterFunction( "EgtUniformZmap", LuaUniformVolZmap) ; + bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapOffset", LuaVolZmapOffset) ; return bOk ; } \ No newline at end of file