diff --git a/LuaLibs/CalcPaths.lua b/LuaLibs/CalcPaths.lua index 76e91c0..3dd6dcf 100644 --- a/LuaLibs/CalcPaths.lua +++ b/LuaLibs/CalcPaths.lua @@ -979,7 +979,7 @@ end -------------------------------------------------------------------- local function UpdateTotalShellSurf( nSrf, nCrv, dStrand, nGrpId) - local nCopyCrv = EgtCopyGlob( nCrv, nGrpId) + --[[local nCopyCrv = EgtCopyGlob( nCrv, nGrpId) -- creo percorso chiuso corrispondente if not EgtCurveIsClosed( nCrv) then local nCopy2 = EgtCopyGlob( nCrv, nGrpId) @@ -1000,17 +1000,29 @@ local function UpdateTotalShellSurf( nSrf, nCrv, dStrand, nGrpId) end local nSrfExtraShell = EgtSurfFlatRegion( nGrpId, vSrfIds) + if not EgtSurfFrSubtract( nSrf, nSrfExtraShell) then EgtInvertSurf( nSrfExtraShell) EgtSurfFrSubtract( nSrf, nSrfExtraShell) end - - EgtErase( nCopyCrv) - for i = 1, #vSrfIds do - EgtErase( vSrfIds[i]) + --EgtErase( nCopyCrv) + --for i = 1, #vSrfIds do + -- EgtErase( vSrfIds[i]) + --end + --EgtErase( nSrfExtraShell) + ]]-- + + local nSrfExtraShell = EgtSurfFrFatCurve( nGrpId, nCrv, dStrand + s_dOffsCorr, false) + if nSrfExtraShell then + local vtSrfN = EgtSurfFrNormVersor( nSrf, GDB_ID.ROOT) + local vtSrfExShN = EgtSurfFrNormVersor( nSrfExtraShell, GDB_ID.ROOT) + if vtSrfExShN * vtSrfN < 0 then + EgtInvertSurf( nSrfExtraShell) + end + EgtSurfFrSubtract( nSrf, nSrfExtraShell) + EgtErase( nSrfExtraShell) end - EgtErase( nSrfExtraShell) - + end ---------------------------------------------------------------------