DataWindow :

- correzione errore split a griglia che scompaiono.
This commit is contained in:
SaraP
2026-07-17 10:30:32 +02:00
parent b156c2d282
commit 4feebb6448
+9 -6
View File
@@ -515,7 +515,7 @@ local function CalcSplitDimensions( vMeasureTypes, vValues, dDim, dDimMax)
end
----------------------------------------------------------------------------------
local function CalcSplitCurves( nLayerId, b3OutlineLayer, dDimMax, nSplitType, vMeasureTypes, vValues)
local function CalcSplitCurves( nLayerId, b3OutlineLayer, dDimMax, dRefCoord, nSplitType, vMeasureTypes, vValues)
-- calcolo le dimensioni assolute di tutti gli split
local dDim = EgtIf( nSplitType == WIN_SPLITORIENTATION.VERTICAL, b3OutlineLayer:getDimX(), b3OutlineLayer:getDimY())
@@ -525,12 +525,12 @@ local function CalcSplitCurves( nLayerId, b3OutlineLayer, dDimMax, nSplitType, v
local vDimensions = CalcSplitDimensions( vMeasureTypes, vValues, dDim, dDimMax)
local vSplitCurves = {}
local dPosition = 0
local dPosition = dRefCoord
for i = 1, #vDimensions - 1 do
-- calcolo la posizione cumulata
dPosition = dPosition + vDimensions[i]
-- creo la curva se rientra nelle dimensione limite
if dPosition < dDimMax - GEO.EPS_SMALL then
if dPosition < dRefCoord + dDimMax - GEO.EPS_SMALL then
local nSplitCrv
if nSplitType == WIN_SPLITORIENTATION.VERTICAL then
-- aree ordinate da sx a dx
@@ -586,7 +586,7 @@ function WinCreate.AddSplits( nParentAreaId, nSplitType, vMeasureTypes, vValues,
EgtSetName( nSplitLayerId, WIN_BASESPLIT)
-- creo le curve di split
local vSplitCurves = CalcSplitCurves( nSplitLayerId, b3OutlineLayer, nil, nSplitType, vMeasureTypes, vValues)
local vSplitCurves = CalcSplitCurves( nSplitLayerId, b3OutlineLayer, nil, 0, nSplitType, vMeasureTypes, vValues)
if #vSplitCurves == 0 then
-- se non ci sono curve valide cancello tutto ed esco
EgtErase( nAreaId)
@@ -655,7 +655,7 @@ function WinCreate.AddGridSplits( nParentAreaId, vVertMeasureTypes, vVertValues,
EgtSetInfo( nAreaId, WIN_PART_DIM, vMainDim)
-- calcolo la suddivisione nella direzione principale
local vMainSplit = CalcSplitCurves( nSplitLayerId, b3OutlineLayer, nil, nMainSplitOrientation, vMainTypes, vMainValues)
local vMainSplit = CalcSplitCurves( nSplitLayerId, b3OutlineLayer, nil, 0, nMainSplitOrientation, vMainTypes, vMainValues)
for i = 1, #vMainSplit do
EgtSetInfo( vMainSplit[i], WIN_GRIDSPLIT_ORDER, 0)
end
@@ -664,15 +664,18 @@ function WinCreate.AddGridSplits( nParentAreaId, vVertMeasureTypes, vVertValues,
-- calcolo gli split nella direzione secondaria. Per non far sparire split nelle sottoregioni più piccole tengo come misura di riferimento per scalare tutte le dimensioni quella
-- della sottoregione più piccola
local dMinDim = GEO.INFINITO
local dMinCoord = 0
for i = 1, #vMainAreas do
local nAreaOutlineLayerId = EgtGetFirstNameInGroup( vMainAreas[i], WIN_AREAOUTLINE)
local b3Curr = EgtGetBBox( nAreaOutlineLayerId, GDB_BB.STANDARD)
local dDim = EgtIf( nOtherSplitOrientation == WIN_SPLITORIENTATION.VERTICAL, b3Curr:getDimX(), b3Curr:getDimY())
if dDim < dMinDim - GEO.EPS_SMALL then
dMinDim = dDim
local ptMin = b3Curr:getMin()
dMinCoord = EgtIf( nOtherSplitOrientation == WIN_SPLITORIENTATION.VERTICAL, ptMin:getX(), ptMin:getY())
end
end
local vOtherSplitOrig = CalcSplitCurves( nSplitLayerId, b3OutlineLayer, dMinDim, nOtherSplitOrientation, vOtherTypes, vOtherValues)
local vOtherSplitOrig = CalcSplitCurves( nSplitLayerId, b3OutlineLayer, dMinDim, dMinCoord, nOtherSplitOrientation, vOtherTypes, vOtherValues)
for i = 1, #vMainAreas do