From 5c7ed7e3c1c68af5e750ab8ef0f104ae94351473 Mon Sep 17 00:00:00 2001 From: DarioS Date: Wed, 17 Aug 2022 19:14:00 +0200 Subject: [PATCH] EgtExecutor 2.4h1 : - modifiche per gestione SelInfo di ultimi due oggetti selezionati - corrette macro di doppia verifica come VERIFY_CTX_GEOMDB - aggiunta gestione flag RUL_TYPE_ISOPAR_SMOOTH in creazione superficie rigata. --- EXE_GdbObjSelection.cpp | 17 +++++++++++++++-- EXE_Macro.h | 20 ++++++++++---------- EgtExecutor.rc | Bin 18890 -> 18890 bytes GseContext.h | 4 ++++ LUA_GdbCreateSurf.cpp | 6 +++++- 5 files changed, 34 insertions(+), 13 deletions(-) diff --git a/EXE_GdbObjSelection.cpp b/EXE_GdbObjSelection.cpp index 90aec2c..4f9441f 100644 --- a/EXE_GdbObjSelection.cpp +++ b/EXE_GdbObjSelection.cpp @@ -84,10 +84,16 @@ ExeSelectObj( int nId) bool ExeDeselectObj( int nId) { + GseContext* pGseCtx = GetCurrGseContext() ; + VERIFY_CTX_GEOMDB( pGseCtx, false) IGeomDB* pGeomDB = GetCurrGeomDB() ; - VERIFY_GEOMDB( pGeomDB, false) // deseleziono l'oggetto bool bOk = pGeomDB->DeselectObj( nId) ; + // eventuale sistemazione ultimi selezionati + if ( nId == pGseCtx->m_siSel.nLastId) + pGseCtx->m_siSel.ResetLast() ; + else if ( nId == pGseCtx->m_siSel.nPrevId) + pGseCtx->m_siSel.ResetPrev() ; // se richiesto, salvo il comando Lua equivalente if ( IsCmdLog()) { string sLua = "EgtDeselectObj(" + ToString( nId) + ")" + @@ -125,6 +131,8 @@ ExeSelectAll( bool bOnlyIfVisible) // passo al successivo nId1 = ExeGetNextPart( nId1, bOnlyIfVisible) ; } + // reset info ultimi due selezionati + pGseCtx->m_siSel.Reset() ; // se richiesto, salvo il comando Lua equivalente if ( IsCmdLog()) { string sLua = "EgtSelectAll(" + string( bOnlyIfVisible ? "true" : "false") + ")" + @@ -139,10 +147,13 @@ ExeSelectAll( bool bOnlyIfVisible) bool ExeDeselectAll( void) { + GseContext* pGseCtx = GetCurrGseContext() ; + VERIFY_CTX_GEOMDB( pGseCtx, false) IGeomDB* pGeomDB = GetCurrGeomDB() ; - VERIFY_GEOMDB( pGeomDB, false) // deseleziono tutto bool bOk = pGeomDB->ClearSelection() ; + // reset info ultimi due selezionati + pGseCtx->m_siSel.Reset() ; // se richiesto, salvo il comando Lua equivalente if ( IsCmdLog()) { string sLua = "EgtDeselectAll()" @@ -164,6 +175,8 @@ ExeSelectGroupObjs( int nGroupId) // verifico sia un gruppo if ( pGeomDB->GetGdbType( nGroupId) == GDB_TY_GROUP) { bOk = pGeomDB->SelectGroupObjs( nGroupId, pGseCtx->m_nObjFilterForSelect) ; + // reset info ultimi due selezionati + pGseCtx->m_siSel.Reset() ; } else bOk = false ; diff --git a/EXE_Macro.h b/EXE_Macro.h index 03c5314..ac5307d 100644 --- a/EXE_Macro.h +++ b/EXE_Macro.h @@ -1,7 +1,7 @@ //---------------------------------------------------------------------------- -// EgalTech 2014-2020 +// EgalTech 2014-2022 //---------------------------------------------------------------------------- -// File : EXE_Macro Data : 02.09.20 Versione : 2.2i1 +// File : EXE_Macro Data : 15.08.22 Versione : 2.4h1 // Contenuto : Macro locali per moduli EXE. // // @@ -41,31 +41,31 @@ #endif //----------------------------------------------------------------------------- -#define VERIFY_CTX( pC, Ret) VERIFY_NULL( pC, "Context invalid", Ret) +#define VERIFY_CTX( pC, Ret) VERIFY_NULL( pC, "Context invalid", Ret) //----------------------------------------------------------------------------- -#define VERIFY_GEOMDB( pG, Ret) VERIFY_NULL( pG, "GeomDB invalid", Ret) +#define VERIFY_GEOMDB( pG, Ret) VERIFY_NULL( pG, "GeomDB invalid", Ret) //----------------------------------------------------------------------------- -#define VERIFY_CTX_GEOMDB( pC, Ret) VERIFY_2NULL( pC, pC->m_pGeomDB, "Context or GeomDB invalid", Ret) +#define VERIFY_CTX_GEOMDB( pC, Ret) VERIFY_2NULL( pC, ( pC != nullptr ? pC->m_pGeomDB : nullptr), "Context or GeomDB invalid", Ret) //----------------------------------------------------------------------------- #define VERIFY_MACHMGR( pM, Ret) VERIFY_NULL( pM, "MachMgr invalid", Ret) //----------------------------------------------------------------------------- -#define VERIFY_CTX_MACHMGR( pC, Ret) VERIFY_2NULL( pC, pC->m_pMachMgr, "Context or MachMgr invalid", Ret) +#define VERIFY_CTX_MACHMGR( pC, Ret) VERIFY_2NULL( pC, ( pC != nullptr ? pC->m_pMachMgr : nullptr), "Context or MachMgr invalid", Ret) //----------------------------------------------------------------------------- -#define VERIFY_SCENE( pS, Ret) VERIFY_NULL( pS, "Scene invalid", Ret) +#define VERIFY_SCENE( pS, Ret) VERIFY_NULL( pS, "Scene invalid", Ret) //----------------------------------------------------------------------------- -#define VERIFY_CTX_SCENE( pC, Ret) VERIFY_2NULL( pC, pC->m_pScene, "Context or Scene invalid", Ret) +#define VERIFY_CTX_SCENE( pC, Ret) VERIFY_2NULL( pC, ( pC != nullptr ? pC->m_pScene : nullptr), "Context or Scene invalid", Ret) //----------------------------------------------------------------------------- -#define VERIFY_TSCEXEC( pT, Ret) VERIFY_NULL( pT, "TscExecutor invalid", Ret) +#define VERIFY_TSCEXEC( pT, Ret) VERIFY_NULL( pT, "TscExecutor invalid", Ret) //----------------------------------------------------------------------------- #define VERIFY_BEAMMGR( pM, Ret) VERIFY_NULL( pM, "BeamMgr invalid", Ret) //----------------------------------------------------------------------------- -#define VERIFY_CTX_BEAMMGR( pC, Ret) VERIFY_2NULL( pC, pC->m_pBeamMgr, "Context or BeamMgr invalid", Ret) +#define VERIFY_CTX_BEAMMGR( pC, Ret) VERIFY_2NULL( pC, ( pC != nullptr ? pC->m_pBeamMgr : nullptr), "Context or BeamMgr invalid", Ret) diff --git a/EgtExecutor.rc b/EgtExecutor.rc index 7c9bc29fa12d62205c5b3a1b9a96f958debf9188..832453c00ea359f7fe7994d18503e2575b73c4f3 100644 GIT binary patch delta 273 zcmX>#neo(Q#trM3wOtwV7}6PX7%~}(88R3Y7&I6{fg+gVdLuMw<($xY7UGTYoGWC4>u zE{3GfN(xn9jUuYPC?!65QXILt-?5mH7vv95u*-88Dnag^{DC=Z^9*MlW(=u=o2R*( GFaZGP=|xBY delta 260 zcmX>#neo(Q#trM3)jb*V7}6PX7*ZLEfmne-gCUrqgdq`#Gl9HNpll|Hz4<1yEHkS) zgARl7=HG12%*^RPh9lQv7P#1PrpX%wD?s9t9l4S>_X%0R