From 87486fcffddab8295ed83ef8d2a3b97ca60f358b Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Tue, 10 Jul 2018 09:15:16 +0000 Subject: [PATCH] EgtExecutor : - aggiunta funzione Exe e Lua SurfFrGrossArea. --- EXE_GeoSnap.cpp | 15 +++++++++++++++ LUA_GeoSnap.cpp | 18 ++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/EXE_GeoSnap.cpp b/EXE_GeoSnap.cpp index 769a6ed..6e52ff5 100644 --- a/EXE_GeoSnap.cpp +++ b/EXE_GeoSnap.cpp @@ -951,6 +951,21 @@ ExeSurfFrNormVersor( int nId, int nRefId, Vector3d& vtNorm) return TrasformVector( pGeomDB, nId, nRefId, vtNorm) ; } +//---------------------------------------------------------------------------- +bool +ExeSurfFrGrossArea( int nId, double& dArea) +{ + IGeomDB* pGeomDB = GetCurrGeomDB() ; + VERIFY_GEOMDB( pGeomDB, false) + // verifico il parametro + if ( &dArea == nullptr) + return false ; + // recupero la Regione + const ISurfFlatRegion* pSfr = GetSurfFlatRegion( pGeomDB->GetGeoObj( nId)) ; + // ne restituisco l'area senza eventuali buchi + return ( pSfr != nullptr && pSfr->GetGrossArea( dArea)) ; +} + //---------------------------------------------------------------------------- int ExeSurfFrChunkCount( int nId) diff --git a/LUA_GeoSnap.cpp b/LUA_GeoSnap.cpp index b68e29d..f42584c 100644 --- a/LUA_GeoSnap.cpp +++ b/LUA_GeoSnap.cpp @@ -634,6 +634,23 @@ LuaSurfFrNormVersor( lua_State* L) return 1 ; } +//---------------------------------------------------------------------------- +static int +LuaSurfFrGrossArea( lua_State* L) +{ + // 1 parametro : Id + int nId ; + LuaCheckParam( L, 1, nId) + LuaClearStack( L) ; + // recupero la sua area senza eventuali buchi + double dArea ; + if ( ExeSurfFrGrossArea( nId, dArea)) + LuaSetParam( L, dArea) ; + else + LuaSetParam( L) ; + return 1 ; +} + //---------------------------------------------------------------------------- static int LuaSurfFrChunkCount( lua_State* L) @@ -1044,6 +1061,7 @@ LuaInstallGeoSnap( LuaMgr& luaMgr) bOk = bOk && luaMgr.RegisterFunction( "EgtSurfArea", LuaSurfArea) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSurfVolume", LuaSurfVolume) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSurfFrNormVersor", LuaSurfFrNormVersor) ; + bOk = bOk && luaMgr.RegisterFunction( "EgtSurfFrGrossArea", LuaSurfFrGrossArea) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSurfFrChunkCount", LuaSurfFrChunkCount) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSurfFrChunkSimpleClassify", LuaSurfFrChunkSimpleClassify) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmFacetCount", LuaSurfTmFacetCount) ;