Aggiunta DeepCopy libreria Config delle strategie

This commit is contained in:
andrea.villa
2025-03-14 08:42:48 +01:00
parent 89d92bdcb4
commit 1a455e66de
3 changed files with 25 additions and 18 deletions
+10 -8
View File
@@ -571,29 +571,31 @@ local function GetFeatureForcedStrategy( Proc)
if sStrategyId then
-- eseguo file config con i parametri di default
local StrategyData = require( sStrategyId .. '\\' .. sStrategyId .. 'Config')
-- se ID strategia non esiste oppure ID letto in NGE è differente da quello letto nella strategia, esco subito
if not StrategyData or StrategyData.sStrategyId ~= sStrategyId then
return nil
end
-- si copiano i dati
local UpdatedParamList = BeamLib.TableCopyDeep( StrategyData)
-- salvo che questa strategia è stata forzata, e che quindi ho già letto il file config con i parametri di default
-- quando si calcolerà la lavorazione non servirà leggere/riverificare i parametri di default
StrategyData.bForcedStrategy = true
UpdatedParamList.bForcedStrategy = true
-- cerco e aggiorno i parametri come sono settati nel processing
for i = 1, #StrategyData.Parameters do
local sParameterToRead = StrategyData.sStrategyId .. '_' .. StrategyData.Parameters[i].sNameNge
for i = 1, #UpdatedParamList.Parameters do
local sParameterToRead = UpdatedParamList.sStrategyId .. '_' .. UpdatedParamList.Parameters[i].sNameNge
local sForcedParameterForProc = EgtGetInfo( Proc.id, sParameterToRead, 's')
-- se ho trovato il valore, lo sovrascrivo al default
if sForcedParameterForProc then
StrategyData.Parameters[i].sValue = sForcedParameterForProc
UpdatedParamList.Parameters[i].sValue = sForcedParameterForProc
end
end
-- ritorno la lista strategia con parametri
local StrategyToProc = {}
table.insert( StrategyToProc, StrategyData)
table.insert( StrategyToProc, UpdatedParamList)
return StrategyToProc
end
return nil
@@ -783,7 +785,7 @@ local function GetFeatureInfoAndDependency( vProcSingleRot, Part)
end
-------------------------------------------------------------------------------------------------------------
-- TODO contemplare anche strategie speciali
-- caricamento librerie strategie (standard o speciali) se presenti nella Proc come strategie disponibili per questo Processing
local function RunStrategyLibraries( sStrategyId)
local StrategyConfigName = sStrategyId .. '\\' .. sStrategyId .. 'Config'
local StrategyScriptName = sStrategyId .. '\\' .. sStrategyId