From 4247a6893fa6d8080fc9c5bc1c0925041b46fa65 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Tue, 28 Oct 2025 16:19:18 +0100 Subject: [PATCH] EgtExecutor : - a funzione exe/lua SurfTmGetFacetOutlineInfo aggiunto parametro vettore di punti iniziali. --- EXE_GdbGetSurf.cpp | 7 ++++++- LUA_GdbGetSurf.cpp | 6 ++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/EXE_GdbGetSurf.cpp b/EXE_GdbGetSurf.cpp index 05c4f99..2f89b9e 100644 --- a/EXE_GdbGetSurf.cpp +++ b/EXE_GdbGetSurf.cpp @@ -1280,7 +1280,8 @@ ExeSurfTmGetFacetBBoxRef( int nId, int nFacet, int nFlag, const Frame3d& frRef, //----------------------------------------------------------------------------- bool ExeSurfTmGetFacetOutlineInfo( int nId, int nFacet, int nRefId, - int& nStatus, BOOLVECTOR& vbOpen, INTVECTOR& vnAdj, DBLVECTOR& vdLen, VCT3DVECTOR& vvtNorm, DBLVECTOR& vdElev) + int& nStatus, BOOLVECTOR& vbOpen, INTVECTOR& vnAdj, DBLVECTOR& vdLen, + PNTVECTOR& vptStart, VCT3DVECTOR& vvtNorm, DBLVECTOR& vdElev) { IGeomDB* pGeomDB = GetCurrGeomDB() ; VERIFY_GEOMDB( pGeomDB, false) @@ -1325,6 +1326,7 @@ ExeSurfTmGetFacetOutlineInfo( int nId, int nFacet, int nRefId, vbOpen.clear() ; vbOpen.reserve( nDim) ; vnAdj.clear() ; vnAdj.reserve( nDim) ; vdLen.clear() ; vdLen.reserve( nDim) ; + vptStart.clear() ; vptStart.reserve( nDim) ; vvtNorm.clear() ; vvtNorm.reserve( nDim) ; vdElev.clear() ; vdElev.reserve( nDim) ; // recupero riferimento alla lista dei punti @@ -1354,12 +1356,15 @@ ExeSurfTmGetFacetOutlineInfo( int nId, int nFacet, int nRefId, double dDist = ( PU.first - ptIni) * vtN ; dElev = ( bOpen ? min( dElev, dDist) : max( dElev, dDist)) ; } + // porto punto iniziale nel riferimento desiderato + TransformPoint( pGeomDB, nId, nRefId, ptIni) ; // porto normale nel riferimento desiderato TransformVector( pGeomDB, nId, nRefId, vtN) ; // inserisco dati nei parametri di ritorno vbOpen.emplace_back( bOpen) ; vnAdj.emplace_back( nAdj) ; vdLen.emplace_back( dLen) ; + vptStart.emplace_back( ptIni) ; vvtNorm.emplace_back( vtN) ; vdElev.emplace_back( dElev) ; // passo al prossimo lato diff --git a/LUA_GdbGetSurf.cpp b/LUA_GdbGetSurf.cpp index 5bf326e..cee8fbd 100644 --- a/LUA_GdbGetSurf.cpp +++ b/LUA_GdbGetSurf.cpp @@ -499,19 +499,21 @@ LuaSurfTmGetFacetOutlineInfo( lua_State* L) int nStatus ; BOOLVECTOR vbOpen ; INTVECTOR vnAdj ; + PNTVECTOR vptStart ; VCT3DVECTOR vvtNorm ; DBLVECTOR vdElev ; DBLVECTOR vdLen ; - bool bOk = ExeSurfTmGetFacetOutlineInfo( nId, nFacet, nRefId, nStatus, vbOpen, vnAdj, vdLen, vvtNorm, vdElev) ; + bool bOk = ExeSurfTmGetFacetOutlineInfo( nId, nFacet, nRefId, nStatus, vbOpen, vnAdj, vdLen, vptStart, vvtNorm, vdElev) ; // restituisco il risultato if ( bOk) { LuaSetParam( L, nStatus) ; LuaSetParam( L, vbOpen) ; LuaSetParam( L, vnAdj) ; LuaSetParam( L, vdLen) ; + LuaSetParam( L, vptStart) ; LuaSetParam( L, vvtNorm) ; LuaSetParam( L, vdElev) ; - return 6 ; + return 7 ; } else { LuaSetParam( L) ;