DataWindow :
- dimensioni degli split date come luce o esterno anta - aree split orizzontali ordinate dal basso all'alto ( e non più dall'alto al basso) - dimensioni dei pezzi di split a griglia differenziate per direzioni e non per pezzi.
This commit is contained in:
@@ -277,7 +277,7 @@ end
|
||||
|
||||
----------------------------------------------------------------------------------
|
||||
-- funzione che aggiunge un gruppo di ante
|
||||
function WinCreate.AddSashGroup( nParentAreaId, vMeasureTypes, vDimensions, vJoints, vPartsDim, vSashTypes, vOpeningTypes, nAreaNbr, vSashNbrs)
|
||||
function WinCreate.AddSashGroup( nParentAreaId, vMeasureTypes, vDimensions, bDayLight, vJoints, vPartsDim, vSashTypes, vOpeningTypes, nAreaNbr, vSashNbrs)
|
||||
|
||||
-- se già presente sottoarea errore
|
||||
if EgtGetFirstNameInGroup( nParentAreaId, WIN_AREA .. '*') then
|
||||
@@ -285,7 +285,7 @@ function WinCreate.AddSashGroup( nParentAreaId, vMeasureTypes, vDimensions, vJoi
|
||||
end
|
||||
|
||||
-- creo gli split di tipo french
|
||||
local vAreas = WinCreate.AddSplits( nParentAreaId, WIN_SPLITORIENTATION.VERTICAL, vMeasureTypes, vDimensions, {}, true, nAreaNbr)
|
||||
local vAreas = WinCreate.AddSplits( nParentAreaId, WIN_SPLITORIENTATION.VERTICAL, vMeasureTypes, vDimensions, {}, true, bDayLight, nAreaNbr)
|
||||
-- trasformo le aree risultanti ( che sono null) nelle aree dell'anta settando le info opportune
|
||||
for i = 1, #vAreas do
|
||||
EgtSetName( vAreas[i], EgtGetName( vAreas[i]) .. '(' .. WIN_SASH .. ')')
|
||||
@@ -356,9 +356,8 @@ end
|
||||
|
||||
----------------------------------------------------------------------------------
|
||||
-- funzione che taglia lo split con il bordo della regione
|
||||
local function AdjustSplitCurve( nSplitId, nCompo, vOutlineCrvs, nOutlineLayerId)
|
||||
local function AdjustSplitCurve( nSplitId, nCompo)
|
||||
|
||||
-- trimmo lo split a filo con l'outline
|
||||
EgtExtendCurveStartByLen( nSplitId, 10)
|
||||
EgtExtendCurveEndByLen( nSplitId, 10)
|
||||
local ptS = EgtIP( nSplitId, nCompo, EgtSP( nSplitId))
|
||||
@@ -367,37 +366,6 @@ local function AdjustSplitCurve( nSplitId, nCompo, vOutlineCrvs, nOutlineLayerId
|
||||
local dParE = EgtCurveParamAtPoint( nSplitId, ptE)
|
||||
EgtTrimCurveStartEndAtParam( nSplitId, dParS, dParE)
|
||||
|
||||
-- recupero le curve con cui avviene l'intersezione e le salvo come info
|
||||
-- start
|
||||
local dParCrvS = EgtCurveParamAtPoint( nCompo, ptS)
|
||||
if abs( dParCrvS - ceil( dParCrvS)) < GEO.EPS_ZERO then
|
||||
local nCrv = vOutlineCrvs[ ceil( dParCrvS) + 1]
|
||||
local nOther = EgtGetPrev( nCrv) or EgtGetLastInGroup( nOutlineLayerId)
|
||||
EgtSetInfo( nSplitId, WIN_SPLIT_STARTINTERS, { nOther, nCrv})
|
||||
elseif abs( dParCrvS - floor( dParCrvS)) < GEO.EPS_ZERO then
|
||||
local nCrv = vOutlineCrvs[ floor( dParCrvS) + 1]
|
||||
local nOther = EgtGetPrev( nCrv) or EgtGetLastInGroup( nOutlineLayerId)
|
||||
EgtSetInfo( nSplitId, WIN_SPLIT_STARTINTERS, { nOther, nCrv})
|
||||
else
|
||||
-- se il parametro non è intero allora l'intersezione coinvolge una sola curva
|
||||
local nCrv = vOutlineCrvs[ floor( dParCrvS) + 1]
|
||||
EgtSetInfo( nSplitId, WIN_SPLIT_STARTINTERS, { nCrv})
|
||||
end
|
||||
|
||||
-- end
|
||||
local dParCrvE = EgtCurveParamAtPoint( nCompo, ptE)
|
||||
if abs( dParCrvE - ceil( dParCrvE)) < GEO.EPS_ZERO then
|
||||
local nCrv = vOutlineCrvs[ ceil( dParCrvE) + 1]
|
||||
local nOther = EgtGetPrev( nCrv) or EgtGetLastInGroup( nOutlineLayerId)
|
||||
EgtSetInfo( nSplitId, WIN_SPLIT_ENDINTERS, { nOther, nCrv})
|
||||
elseif abs( dParCrvE - floor( dParCrvE)) < GEO.EPS_ZERO then
|
||||
local nCrv = vOutlineCrvs[ floor( dParCrvE) + 1]
|
||||
local nOther = EgtGetPrev( nCrv) or EgtGetLastInGroup( nOutlineLayerId)
|
||||
EgtSetInfo( nSplitId, WIN_SPLIT_ENDINTERS, { nOther, nCrv})
|
||||
else
|
||||
local nCrv = vOutlineCrvs[ floor( dParCrvE) + 1]
|
||||
EgtSetInfo( nSplitId, WIN_SPLIT_ENDINTERS, { nCrv})
|
||||
end
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------------------
|
||||
@@ -414,17 +382,12 @@ local function GetBorderRegions( nSplitId, nCompo, nAreaId)
|
||||
|
||||
-- aggiungo la curva di split al bordo per chiuderlo orientandola opportunamente
|
||||
local nSplitId1 = EgtCopyGlob( nSplitId, nAreaId)
|
||||
if AreSamePointApprox( EgtSP( nSplitId1), EgtSP( nCrv1)) then
|
||||
EgtInvertCurve( nSplitId1)
|
||||
end
|
||||
EgtAddCurveCompoCurve( nCrv1, nSplitId1)
|
||||
local _, dParE1 = EgtCurveDomain( nCrv1)
|
||||
EgtCurveCompoSetTempProp( nCrv1, dParE1 - 1, nSplitId)
|
||||
|
||||
local nSplitId2 = EgtCopyGlob( nSplitId, nAreaId)
|
||||
if AreSamePointApprox( EgtSP( nSplitId2), EgtSP( nCrv2)) then
|
||||
EgtInvertCurve( nSplitId2)
|
||||
end
|
||||
EgtInvertCurve( nSplitId2)
|
||||
EgtAddCurveCompoCurve( nCrv2, nSplitId2)
|
||||
local _, dParE2 = EgtCurveDomain( nCrv2)
|
||||
EgtCurveCompoSetTempProp( nCrv2, dParE2 - 1, nSplitId)
|
||||
@@ -452,7 +415,7 @@ local function CreateAreasFromSplits( nAreaId, vSplitCrvs)
|
||||
for i = 1, #vSplitCrvs do
|
||||
|
||||
-- aggiusto lo split per averlo a filo con l'outline
|
||||
AdjustSplitCurve( vSplitCrvs[i], nCompo, vOutlineCrvs, nOutlineLayerId)
|
||||
AdjustSplitCurve( vSplitCrvs[i], nCompo)
|
||||
|
||||
-- calcolo i bordi delle due regioni definite dallo split
|
||||
local nCrv1, nCrv2 = GetBorderRegions( vSplitCrvs[i], nCompoRef, nGrpTmp)
|
||||
@@ -507,7 +470,7 @@ end
|
||||
|
||||
----------------------------------------------------------------------------------
|
||||
-- funzione che calcola le dimensioni assolute delle divisioni
|
||||
local function CalcSplitDimensions( vMeasureTypes, vValues, dDim)
|
||||
local function CalcSplitDimensions( vMeasureTypes, vValues, dDim, dDimMax)
|
||||
|
||||
local vDimensions = {}
|
||||
-- calcolo le dimensioni di tutti gli split assoluti e percentuali e calcolo i valori di riferimento per eventuali split proporzionali
|
||||
@@ -539,46 +502,47 @@ local function CalcSplitDimensions( vMeasureTypes, vValues, dDim)
|
||||
end
|
||||
end
|
||||
|
||||
-- se dimensione massima diversa da quella di calcolo ( e.g. sottoaree di griglia) scalo le dimensioni delle aree sulla dimensione massima per fare in modo che gli split non scompaiano
|
||||
if dDimMax < dDim - GEO.EPS_SMALL then
|
||||
for i = 1, #vDimensions do
|
||||
vDimensions[i] = vDimensions[i] * dDimMax / dDim
|
||||
end
|
||||
end
|
||||
|
||||
return vDimensions
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------------------
|
||||
local function CalcSplitCurves( nLayerId, b3OutlineLayer, b3Limit, nSplitType, vMeasureTypes, vValues)
|
||||
local function CalcSplitCurves( nLayerId, b3OutlineLayer, dDimMax, nSplitType, vMeasureTypes, vValues)
|
||||
|
||||
-- calcolo le dimensioni assolute di tutti gli split
|
||||
local vDimensions = CalcSplitDimensions( vMeasureTypes, vValues, EgtIf( nSplitType == WIN_SPLITORIENTATION.VERTICAL, b3OutlineLayer:getDimX(), b3OutlineLayer:getDimY()))
|
||||
|
||||
local dDim = EgtIf( nSplitType == WIN_SPLITORIENTATION.VERTICAL, b3OutlineLayer:getDimX(), b3OutlineLayer:getDimY())
|
||||
if not dDimMax then
|
||||
dDimMax = dDim
|
||||
end
|
||||
local vDimensions = CalcSplitDimensions( vMeasureTypes, vValues, dDim, dDimMax)
|
||||
|
||||
local vSplitCurves = {}
|
||||
local dPosition = 0
|
||||
for i = 1, #vDimensions do
|
||||
-- calcolo la posizione cumulata
|
||||
dPosition = dPosition + vDimensions[i]
|
||||
|
||||
local nSplitCrv
|
||||
if nSplitType == WIN_SPLITORIENTATION.VERTICAL then
|
||||
-- aree ordinate da sx a dx
|
||||
local dCurrPosition = dPosition
|
||||
-- creo la linea se rientra nella regione limite
|
||||
local dX = b3OutlineLayer:getMin():getX() + dCurrPosition
|
||||
if dX > b3Limit:getMin():getX() + GEO.EPS_SMALL and dX < b3Limit:getMax():getX() - GEO.EPS_SMALL then
|
||||
nSplitCrv = EgtLinePVL( nLayerId, b3OutlineLayer:getMin() + X_AX() * dCurrPosition, Y_AX(), b3OutlineLayer:getDimY())
|
||||
-- creo la curva se rientra nelle dimensione limite
|
||||
if dPosition < dDimMax - GEO.EPS_SMALL then
|
||||
local nSplitCrv
|
||||
if nSplitType == WIN_SPLITORIENTATION.VERTICAL then
|
||||
-- aree ordinate da sx a dx
|
||||
nSplitCrv = EgtLinePVL( nLayerId, b3OutlineLayer:getMin() + X_AX() * dPosition, Y_AX(), b3OutlineLayer:getDimY())
|
||||
elseif nSplitType == WIN_SPLITORIENTATION.HORIZONTAL then
|
||||
-- aree ordinate dal basso all'alto
|
||||
nSplitCrv = EgtLinePVL( nLayerId, b3OutlineLayer:getMin() + Y_AX() * dPosition, X_AX(), b3OutlineLayer:getDimX())
|
||||
EgtInvertCurve( nSplitCrv)
|
||||
end
|
||||
|
||||
elseif nSplitType == WIN_SPLITORIENTATION.HORIZONTAL then
|
||||
-- aree ordinate dall'alto al basso
|
||||
local dCurrPosition = b3OutlineLayer:getDimY() - dPosition
|
||||
-- creo la linea se rientra nella regione limite
|
||||
local dY = b3OutlineLayer:getMin():getY() + dCurrPosition
|
||||
if dY > b3Limit:getMin():getY() + GEO.EPS_SMALL and dY < b3Limit:getMax():getY() - GEO.EPS_SMALL then
|
||||
nSplitCrv = EgtLinePVL( nLayerId, b3OutlineLayer:getMin() + Y_AX() * dCurrPosition, X_AX(), b3OutlineLayer:getDimX())
|
||||
end
|
||||
end
|
||||
|
||||
if nSplitCrv then
|
||||
|
||||
EgtSetName( nSplitCrv, WIN_SPLIT)
|
||||
table.insert( vSplitCurves, nSplitCrv)
|
||||
EgtSetInfo( nSplitCrv, WIN_SPLIT_POSITION, dPosition)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return vSplitCurves
|
||||
@@ -586,7 +550,7 @@ end
|
||||
|
||||
----------------------------------------------------------------------------------
|
||||
-- funzione che crea tagli split multipli
|
||||
function WinCreate.AddSplits( nParentAreaId, nSplitType, vMeasureTypes, vValues, vPartsDim, bFrench, nAreaNbr)
|
||||
function WinCreate.AddSplits( nParentAreaId, nSplitType, vMeasureTypes, vValues, vPartsDim, bFrench, bDaylight, nAreaNbr)
|
||||
|
||||
-- se area ha già sottoarea errore
|
||||
if EgtGetFirstNameInGroup( nParentAreaId, WIN_AREA .. '*') then
|
||||
@@ -605,21 +569,21 @@ function WinCreate.AddSplits( nParentAreaId, nSplitType, vMeasureTypes, vValues,
|
||||
EgtSetInfo( nAreaId, WIN_SPLIT_DIR, nSplitType)
|
||||
EgtSetInfo( nAreaId, WIN_MEASURE_TYPE, vMeasureTypes)
|
||||
EgtSetInfo( nAreaId, WIN_MEASURE_VALUE, vValues)
|
||||
EgtSetInfo( nAreaId, WIN_SPLIT_REF_DIM, EgtIf( nSplitType == WIN_SPLITORIENTATION.VERTICAL, b3OutlineLayer:getDimX(), b3OutlineLayer:getDimY()))
|
||||
EgtSetInfo( nAreaId, WIN_PART_DIM, vPartsDim)
|
||||
|
||||
if bFrench then
|
||||
EgtSetInfo( nAreaId, WIN_SPLITTYPE, WIN_SPLITTYPES.FRENCH)
|
||||
EgtSetInfo( nAreaId, WIN_DAYLIGHT_MEASURE, bDaylight)
|
||||
end
|
||||
|
||||
-- copio il contorno dall'area parent
|
||||
CopyParentOutline( nAreaId, nParentAreaId)
|
||||
|
||||
-- creo layer per split
|
||||
local nSplitLayerId = EgtGroup( nAreaId)
|
||||
EgtSetName( nSplitLayerId, WIN_BASESPLIT)
|
||||
-- verifico se va impostato il tipo french
|
||||
if bFrench then
|
||||
EgtSetInfo( nSplitLayerId, WIN_SPLITTYPE, WIN_SPLITTYPES.FRENCH)
|
||||
end
|
||||
|
||||
-- creo le curve di split
|
||||
local vSplitCurves = CalcSplitCurves( nSplitLayerId, b3OutlineLayer, b3OutlineLayer, nSplitType, vMeasureTypes, vValues)
|
||||
local vSplitCurves = CalcSplitCurves( nSplitLayerId, b3OutlineLayer, nil, nSplitType, vMeasureTypes, vValues)
|
||||
if #vSplitCurves == 0 then
|
||||
-- se non ci sono curve valide cancello tutto ed esco
|
||||
EgtErase( nAreaId)
|
||||
@@ -633,7 +597,7 @@ end
|
||||
|
||||
----------------------------------------------------------------------------------
|
||||
-- funzione che crea tagli split grid
|
||||
function WinCreate.AddGridSplits( nParentAreaId, vVertMeasureTypes, vVertValues, vHorizMeasureTypes, vHorizValues, bStartVertical, vPartsDim, nAreaNbr)
|
||||
function WinCreate.AddGridSplits( nParentAreaId, vVertMeasureTypes, vVertValues, vHorizMeasureTypes, vHorizValues, bStartVertical, vVertDim, vHorizDim, nAreaNbr)
|
||||
|
||||
local AreaResult = {}
|
||||
|
||||
@@ -649,7 +613,6 @@ function WinCreate.AddGridSplits( nParentAreaId, vVertMeasureTypes, vVertValues,
|
||||
EgtSetInfo( nAreaId, WIN_AREATYPE, WIN_AREATYPES.SPLIT)
|
||||
EgtSetInfo( nAreaId, WIN_AREA_NBR, nAreaNbr)
|
||||
EgtSetInfo( nAreaId, WIN_GRID_SPLIT, true)
|
||||
EgtSetInfo( nAreaId, WIN_PART_DIM, vPartsDim)
|
||||
|
||||
-- copio il contorno dall'area parent e setto opportune corrispondenze sou/child
|
||||
local nOutlineLayerId = CopyParentOutline( nAreaId, nParentAreaId)
|
||||
@@ -659,57 +622,75 @@ function WinCreate.AddGridSplits( nParentAreaId, vVertMeasureTypes, vVertValues,
|
||||
local nSplitLayerId = EgtGroup( nAreaId)
|
||||
EgtSetName( nSplitLayerId, WIN_BASESPLIT)
|
||||
|
||||
-- stabilisco direzione principale e secondaria
|
||||
local vMainTypes, vOtherTypes, vMainValues, vOtherValues, nMainSplitOrientation, nOtherSplitOrientation
|
||||
-- stabilisco dati per direzione principale e secondaria
|
||||
local vMainTypes, vOtherTypes, vMainValues, vOtherValues, nMainSplitOrientation, nOtherSplitOrientation, vMainDim, vOtherDim
|
||||
if bStartVertical then
|
||||
vMainTypes = vVertMeasureTypes
|
||||
vMainValues = vVertValues
|
||||
nMainSplitOrientation = WIN_SPLITORIENTATION.VERTICAL
|
||||
vMainDim = vVertDim
|
||||
vOtherTypes = vHorizMeasureTypes
|
||||
vOtherValues = vHorizValues
|
||||
nOtherSplitOrientation = WIN_SPLITORIENTATION.HORIZONTAL
|
||||
vOtherDim = vHorizDim
|
||||
else
|
||||
vMainTypes = vHorizMeasureTypes
|
||||
vMainValues = vHorizValues
|
||||
nMainSplitOrientation = WIN_SPLITORIENTATION.HORIZONTAL
|
||||
vMainDim = vHorizDim
|
||||
vOtherTypes = vVertMeasureTypes
|
||||
vOtherValues = vVertValues
|
||||
nOtherSplitOrientation = WIN_SPLITORIENTATION.VERTICAL
|
||||
vOtherDim = vVertDim
|
||||
end
|
||||
|
||||
-- salvo i dati dello split principale nell'area principale, i dati dello split secondario verranno salvati nelle aree virtuali
|
||||
EgtSetInfo( nAreaId, WIN_SPLIT_DIR, nMainSplitOrientation)
|
||||
EgtSetInfo( nAreaId, WIN_MEASURE_TYPE, vMainTypes)
|
||||
EgtSetInfo( nAreaId, WIN_MEASURE_VALUE, vMainValues)
|
||||
EgtSetInfo( nAreaId, WIN_SPLIT_REF_DIM, EgtIf( nMainSplitOrientation == WIN_SPLITORIENTATION.VERTICAL, b3OutlineLayer:getDimX(), b3OutlineLayer:getDimY()))
|
||||
EgtSetInfo( nAreaId, WIN_PART_DIM, vMainDim)
|
||||
|
||||
-- calcolo la suddivisione nella direzione principale
|
||||
local vMainSplit = CalcSplitCurves( nSplitLayerId, b3OutlineLayer, b3OutlineLayer, nMainSplitOrientation, vMainTypes, vMainValues)
|
||||
local vMainSplit = CalcSplitCurves( nSplitLayerId, b3OutlineLayer, nil, nMainSplitOrientation, vMainTypes, vMainValues)
|
||||
for i = 1, #vMainSplit do
|
||||
EgtSetInfo( vMainSplit[i], WIN_GRIDSPLIT_ORDER, 0)
|
||||
end
|
||||
local vMainAreas = CreateAreasFromSplits( nAreaId, vMainSplit)
|
||||
|
||||
-- per ogni area della direzione principale calcolo la suddivisione nella direzione secondaria
|
||||
-- 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
|
||||
for i = 1, #vMainAreas do
|
||||
-- recupero outline per calcolare il limite delle curve di split
|
||||
local nAreaOutlineLayerId = EgtGetFirstNameInGroup( vMainAreas[i], WIN_AREAOUTLINE)
|
||||
local b3Limit = EgtGetBBox( nAreaOutlineLayerId, GDB_BB.STANDARD)
|
||||
|
||||
-- calcolo gli split nella direzione secondaria
|
||||
local vOtherSplit = CalcSplitCurves( nSplitLayerId, b3OutlineLayer, b3Limit, nOtherSplitOrientation, vOtherTypes, vOtherValues)
|
||||
if #vOtherSplit > 0 then
|
||||
for j = 1, #vOtherSplit do
|
||||
EgtSetInfo( vOtherSplit[j], WIN_GRIDSPLIT_ORDER, tostring( i))
|
||||
end
|
||||
-- calcolo le aree generate dagli split secondari
|
||||
local vNewAreas = CreateAreasFromSplits( vMainAreas[i], vOtherSplit)
|
||||
AreaResult = EgtJoinTables( AreaResult, vNewAreas)
|
||||
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
|
||||
end
|
||||
end
|
||||
local vOtherSplitOrig = CalcSplitCurves( nSplitLayerId, b3OutlineLayer, dMinDim, nOtherSplitOrientation, vOtherTypes, vOtherValues)
|
||||
|
||||
for i = 1, #vMainAreas do
|
||||
|
||||
-- copio gli split della direzione secondaria
|
||||
local vOtherSplit = {}
|
||||
for j = 1, #vOtherSplitOrig do
|
||||
vOtherSplit[j] = EgtCopyGlob( vOtherSplitOrig[j], nSplitLayerId)
|
||||
EgtSetInfo( vOtherSplit[j], WIN_GRIDSPLIT_ORDER, i)
|
||||
end
|
||||
|
||||
-- calcolo le aree generate dagli split secondari
|
||||
local vNewAreas = CreateAreasFromSplits( vMainAreas[i], vOtherSplit)
|
||||
for j = 1, #vNewAreas do
|
||||
EgtSetInfo( vNewAreas[j], WIN_GRIDSPLIT_ORDER, i)
|
||||
end
|
||||
AreaResult = EgtJoinTables( AreaResult, vNewAreas)
|
||||
end
|
||||
|
||||
EgtErase( vOtherSplitOrig)
|
||||
|
||||
-- sposto le aree secondarie nell'area di split e le rinomino
|
||||
for i = 1, #AreaResult do
|
||||
for i = 1, #AreaResult do
|
||||
EgtRelocateGlob( AreaResult[i], nAreaId)
|
||||
EgtSetName( AreaResult[i], WIN_AREA .. EgtNumToString( i))
|
||||
end
|
||||
@@ -720,7 +701,7 @@ function WinCreate.AddGridSplits( nParentAreaId, vVertMeasureTypes, vVertValues,
|
||||
EgtSetInfo( vMainAreas[i], WIN_SPLIT_DIR, nOtherSplitOrientation)
|
||||
EgtSetInfo( vMainAreas[i], WIN_MEASURE_TYPE, vOtherTypes)
|
||||
EgtSetInfo( vMainAreas[i], WIN_MEASURE_VALUE, vOtherValues)
|
||||
EgtSetInfo( vMainAreas[i], WIN_SPLIT_REF_DIM, EgtIf( nOtherSplitOrientation == WIN_SPLITORIENTATION.VERTICAL, b3OutlineLayer:getDimX(), b3OutlineLayer:getDimY()))
|
||||
EgtSetInfo( vMainAreas[i], WIN_PART_DIM, vOtherDim)
|
||||
end
|
||||
|
||||
return AreaResult
|
||||
|
||||
Reference in New Issue
Block a user