diff --git a/EXE_GdbModifySurf.cpp b/EXE_GdbModifySurf.cpp index 1859831..0d378ba 100644 --- a/EXE_GdbModifySurf.cpp +++ b/EXE_GdbModifySurf.cpp @@ -1185,7 +1185,10 @@ ExeSurfTmGetShowEdges( int nId, bool& bShow) ISurfTriMesh* pStm = GetSurfTriMesh( pGeomDB->GetGeoObj( nId)) ; bool bOk = ( pStm != nullptr) ; // recupero lo stato di visualizzazione degli spigoli vivi - bShow = ( bOk && pStm->GetShowEdges()) ; + if ( bOk) + bShow = pStm->GetShowEdges() ; + else + bShow = false ; return bOk ; } @@ -1199,6 +1202,7 @@ ExeSurfTmSetSmoothAng( int nId, double dAngDeg) ISurfTriMesh* pSrfTm = GetSurfTriMesh( pGeomDB->GetGeoObj( nId)) ; if ( pSrfTm == nullptr) return false ; + // imposto l'angolo discriminante degli spigoli vivi pSrfTm->SetSmoothAngle( dAngDeg) ; ExeSetModified() ; // se richiesto, salvo il comando Lua equivalente @@ -1210,6 +1214,23 @@ ExeSurfTmSetSmoothAng( int nId, double dAngDeg) return true ; } +//---------------------------------------------------------------------------- +bool +ExeSurfTmGetSmoothAng( int nId, double& dAngDeg) +{ + IGeomDB* pGeomDB = GetCurrGeomDB() ; + VERIFY_GEOMDB( pGeomDB, false) + // recupero la superficie trimesh + ISurfTriMesh* pStm = GetSurfTriMesh( pGeomDB->GetGeoObj( nId)) ; + bool bOk = ( pStm != nullptr) ; + // recupero l'angolo discriminante degli spigoli vivi + if ( bOk) + dAngDeg = pStm->GetSmoothAngle() ; + else + dAngDeg = 0 ; + return bOk ; +} + //---------------------------------------------------------------------------- static double GetStmOffsPrec( double dOffs, double dLinTol) diff --git a/EXE_GdbModifyVol.cpp b/EXE_GdbModifyVol.cpp index 3866ea2..32b30da 100644 --- a/EXE_GdbModifyVol.cpp +++ b/EXE_GdbModifyVol.cpp @@ -142,6 +142,23 @@ ExeVolZmapSetShowEdges( int nId, bool bShow) return bOk ; } +//---------------------------------------------------------------------------- +bool +ExeVolZmapGetShowEdges( int nId, bool& bShow) +{ + IGeomDB* pGeomDB = GetCurrGeomDB() ; + VERIFY_GEOMDB( pGeomDB, false) + // recupero lo Zmap + IVolZmap* pVZM = GetVolZmap( pGeomDB->GetGeoObj( nId)) ; + bool bOk = ( pVZM != nullptr) ; + // leggo lo stato di visualizzazione degli spigoli vivi + if ( bOk) + bShow = pVZM->GetShowEdges() ; + else + bShow = false ; + return bOk ; +} + //------------------------------------------------------------------------------- bool ExeRemoveVolZmapPart( int nId, int nPart) diff --git a/EXE_Scene.cpp b/EXE_Scene.cpp index be755fc..00d0a18 100644 --- a/EXE_Scene.cpp +++ b/EXE_Scene.cpp @@ -267,6 +267,21 @@ ExeDraw( void) return true ; } +//----------------------------------------------------------------------------- +bool +ExeRedraw( void) +{ + // se interfaccia disabilitata, esco subito + if ( ! ExeGetEnableUI()) + return true ; + + IEGrScene* pScene = GetCurrScene() ; + VERIFY_SCENE( pScene, false) + // forzo ridisegno + pScene->RedrawWindow() ; + return true ; +} + //----------------------------------------------------------------------------- bool ExeSelect( int nWinX, int nWinY, int nSelW, int nSelH, int* pnSel) diff --git a/EgtExecutor.rc b/EgtExecutor.rc index 504683b..a75731e 100644 Binary files a/EgtExecutor.rc and b/EgtExecutor.rc differ diff --git a/LUA_GdbModifySurf.cpp b/LUA_GdbModifySurf.cpp index a775a48..ee3bbe0 100644 --- a/LUA_GdbModifySurf.cpp +++ b/LUA_GdbModifySurf.cpp @@ -565,7 +565,7 @@ LuaSurfTmGetShowEdges( lua_State* L) static int LuaSurfTmSetSmoothAng( lua_State* L) { - // 2 parametri : nId, nCutterId + // 2 parametri : nId, dAngDeg int nId ; LuaCheckParam( L, 1, nId) double dAngDeg ; @@ -577,6 +577,24 @@ LuaSurfTmSetSmoothAng( lua_State* L) return 1 ; } +//------------------------------------------------------------------------------- +static int +LuaSurfTmGetSmoothAng( lua_State* L) +{ + // 1 parametro : nId + int nId ; + LuaCheckParam( L, 1, nId) + LuaClearStack( L) ; + // recupero lo smooth angle della superficie + double dAngDeg ; + bool bOk = ExeSurfTmGetSmoothAng( nId, dAngDeg) ; + if ( bOk) + LuaSetParam( L, dAngDeg) ; + else + LuaSetParam( L) ; + return 1 ; +} + //------------------------------------------------------------------------------- static int LuaSurfTmOffset( lua_State* L) @@ -664,7 +682,7 @@ LuaSurfBzTrim( lua_State* L) bool LuaInstallGdbModifySurf( LuaMgr& luaMgr) { - bool bOk = ( &luaMgr != nullptr) ; + bool bOk = true ; bOk = bOk && luaMgr.RegisterFunction( "EgtInvertSurf", LuaInvertSurf) ; bOk = bOk && luaMgr.RegisterFunction( "EgtExplodeSurf", LuaExplodeSurf) ; bOk = bOk && luaMgr.RegisterFunction( "EgtApproxSurf", LuaApproxSurf) ; @@ -694,6 +712,7 @@ LuaInstallGdbModifySurf( LuaMgr& luaMgr) bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmSetShowEdges", LuaSurfTmSetShowEdges) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmGetShowEdges", LuaSurfTmGetShowEdges) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmSetSmoothAng", LuaSurfTmSetSmoothAng) ; + bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmGetSmoothAng", LuaSurfTmGetSmoothAng) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmOffset", LuaSurfTmOffset) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmThickeningOffset", LuaSurfTmThickeningOffset) ; bOk = bOk && luaMgr.RegisterFunction( "EgtCutSurfBzPlane", LuaCutSurfBzPlane) ; diff --git a/LUA_GdbModifyVol.cpp b/LUA_GdbModifyVol.cpp index 3ea1e93..3c543d5 100644 --- a/LUA_GdbModifyVol.cpp +++ b/LUA_GdbModifyVol.cpp @@ -73,6 +73,25 @@ LuaVolZmapSetShowEdges( lua_State* L) return 1 ; } +//------------------------------------------------------------------------------- +static int +LuaVolZmapGetShowEdges( lua_State* L) +{ + // 1 parametro : Id + int nId ; + LuaCheckParam( L, 1, nId) + LuaClearStack( L) ; + // imposto flag visualizzazione spigoli vivi + bool bShow ; + bool bOk = ExeVolZmapGetShowEdges( nId, bShow) ; + // restituisco il risultato + if ( bOk) + LuaSetParam( L, bShow) ; + else + LuaSetParam( L) ; + return 1 ; +} + //---------------------------------------------------------------------------- static int LuaRemoveVolZmapPart( lua_State* L) @@ -465,6 +484,7 @@ LuaInstallGdbModifyVol( LuaMgr& luaMgr) bOk = bOk && luaMgr.RegisterFunction( "EgtExplodeVolume", LuaExplodeVolume) ; bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapChangeResolution", LuaVolZmapChangeResolution) ; bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapSetShowEdges", LuaVolZmapSetShowEdges) ; + bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapGetShowEdges", LuaVolZmapGetShowEdges) ; bOk = bOk && luaMgr.RegisterFunction( "EgtRemoveVolZmapPart", LuaRemoveVolZmapPart) ; bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapSetStdTool", LuaVolZmapSetStdTool) ; bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapSetAdvTool", LuaVolZmapSetAdvTool) ; diff --git a/LUA_Scene.cpp b/LUA_Scene.cpp index ddd759f..cabe7de 100644 --- a/LUA_Scene.cpp +++ b/LUA_Scene.cpp @@ -73,6 +73,19 @@ LuaDraw( lua_State* L) return 1 ; } +//------------------------------------------------------------------------------- +static int +LuaRedraw( lua_State* L) +{ + // nessun parametro + LuaClearStack( L) ; + // forzo ridisegno + bool bOk = ExeRedraw() ; + // restituisco il risultato + LuaSetParam( L, bOk) ; + return 1 ; +} + //------------------------------------------------------------------------------- static int LuaSetShowMode( lua_State* L) @@ -378,10 +391,11 @@ LuaSetShowSurfBezierTol( lua_State* L) bool LuaInstallScene( LuaMgr& luaMgr) { - bool bOk = ( &luaMgr != nullptr) ; + bool bOk = true ; bOk = bOk && luaMgr.RegisterFunction( "EgtSetBackground", LuaSetBackground) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetBackground", LuaGetBackground) ; bOk = bOk && luaMgr.RegisterFunction( "EgtDraw", LuaDraw) ; + bOk = bOk && luaMgr.RegisterFunction( "EgtRedraw", LuaRedraw) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSetShowMode", LuaSetShowMode) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSetShowCurveDirection", LuaSetShowCurveDirection) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSetShowTriaAdv", LuaSetShowTriaAdv) ;